Skip to content
Spec-oriented-development. Write Input's/Outputs, computer generates program based on the given specs
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
prototypes
LICENSE
README.md

README.md

spec-dev

Spec-oriented-development. Write Input's/Outputs, computer generates program based on the given specs.

COLLABORATERS COLLABORATERS COLLABORATERS COLLABORATERS
WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED COLLABORATERS COLLABORATERS COLLABORATERS COLLABORATERS WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED COLLABORATERS COLLABORATERS COLLABORATERS COLLABORATERS WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED COLLABORATERS COLLABORATERS COLLABORATERS COLLABORATERS
WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED COLLABORATERS COLLABORATERS COLLABORATERS COLLABORATERS WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED COLLABORATERS COLLABORATERS COLLABORATERS COLLABORATERS WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED WANTED

How?

  • Don't write programs, write inputs & outputs only. Software is incomplete without solid tests.
  • Minimal IO sets required (Input's & Outputs)

But machine learning requires lot's of data?

  • Yes, tho chunked algorithms are written simply. So the computer only needs to use little to none recursion.
  • Every wonder why your given a few inputs & outputs and write correct code based on those sets?

Why?

  • state of the art algorithms as the backend can produce security hardened, optimized algorithms, and snap of a finger changes.

  • great for complex programs, large projects, huge groups.

  • TDD (Test-Driven-Development) is all about tests, so make the tests write for you

  • imagine scenario: huge project written, you find out fatal wide open problem with computer language, so you switch to another programming language, and for some odd reason, you decide to not allow certain datatypes allowed, because there slow. Are you going to wrewrite the entire program or let the machine wrewrite since you have specs/tests? Exactly.

Programming languages available in?

  • currently javascript to impact frontend & backend developers
  • javascripts perfect to prototype in ... focus purley on the science than managing memory
  • eventually all through state of the art transpilers
  • your perfect for this project not knowing the language, why? You'll be able to program the right questions a program needs to use the language.

Concept Code Demo

const specDev = require("spec-dev-paradigm");

let generatedAlg = specDev({

name: "add2",

// validations: "numbers only", // data not required, can be infered numbers only because of given data

ioSets: [
  // [input,output]
  [0,2],
  [1,3],
  [5,7],
  [undefined, Error("1st arg undefined")],
],

})

console.log(generatedAlg);

/* prints

function add2(n) {
  if (!n) {throw new Error("must be integer");}
  if (!Number.isSafeInteger(n)) {throw new Error("must be integer");}
  return n + 2;
}

*/

How does specDev produce algorithms with little IO sets?

  • normally, computer code is sliced into maneagable/modular/non-trivial-debuggable code.

  • algorithms are made of computer operators, a few loops, process of elimination decision making, and infinite loop prevention is all thats needed

  • ever took calculus? by definition most functions are considered simple, meaning little cpu time to produce. The book clean code doctrined our styles.

  • infer infer infer infer

Is this reverse engineering? ABSOLUTELY :-) 100% reverse engineering

How does calculus function complexity align/integrate realistically with programming?

How do we produce simple functions?

How do we produce compound functions?

How do we produce complex functions?

Given there are algorithmic equivalents, do there complexities differ?

Since there are algorithmic equivalents, how do we rank returns?

Common Contextual basis ... there must be one, otherwise, how do we produce algorithms with little data inputs?

Should we combine Machine Learning Pattern recognition algorithms alongside or code niche system from scratch? If so what ML algorithms are best?

Algorithms are full of human constructs. Does the computer have a construct medium to enhance producing algorithms?

Big Picture Thinking,

How do we produce a large application with specDev?

  • write inputs & outputs
  • point to point interfaces is foundational architecture
  • eventually, information gaps filled allowing specDev to produce possible software

Future thinking,

  • updating errors, how to update for the developers/users?
  • proccessing time delays, maybe cloud is the answer?

Code Concept Demo Continued

// CONTINUED PREVIOUS EXAMPLE

const specDev = require("spec-dev-paradigm");

let generatedAlg = specDev({

name: "add2",

validations: "??", // not required, infered by datasets

ioSets: [
  // [input,output]
  [0,2],
  [1,3],
  [5,7],
  
  [undefined, Error("1st arg undefined")],
  
  ["0","2"],                              // strings mirror number
  ["1","3"],                              // strings mirror number
  ["5","7"]                               // strings mirror number
],

})

console.log(generatedAlg);

/* prints

function add2(n) {
  if (!n) {throw new Error("must be integer");}
  
  if (Number.isSafeInteger(n))    return n+2;
  else if (typeof n !== "string") return String(n+2);
  
  else {throw new Error("must be integer or string");}
}

*/

// CONTINUED PREVIOUS EXAMPLE

const specDev = require("spec-dev-paradigm");

let generatedAlg = specDev({

name: "add2",

validations: "??", // not required, infered by datasets

ioSets: [
  // [input,output]
  [0,2],
  [1,3],
  [5,7],
  
  [undefined, Error("1st arg undefined")],
  
  ["0","2"],                              // strings mirror number
  ["1","3"],                              // strings mirror number
  ["5","7"]                               // strings mirror number
],

})

console.log(generatedAlg);

/* prints

function add2(n) {
  if (!n) {throw new Error("must be integer");}
  
  if (Number.isSafeInteger(n))    return n+2;
  else if (typeof n !== "string") return String(n+2);
  
  else {throw new Error("must be integer or string");}
}

*/

Concept Discussions

?Why little data required?
?Similar to speedy customer preferences such as fast shopping checkout?
?When to use non io_set inputs? -> when describing important pivots?

Input Output Analysis


Keep in mind. Number systems are systems. Permutational number systems can catch you off guard. We view our number system as 0,1,2,3,4,5,6 but another systems equivalent could be 6,5,3,2,4,1,0


  1. one IO set

  2. many IO's set

  3. one IO set 0.0 does the same input cause a different output? 0.0.0 algorithm may be self modifying? 0.0.1 algorithm might use random generaotr? 0.0.2 algorithm may depend on other data/algorithm? 0.0.3 algorithm might be modified by other algorithm for whatever reason? 0.1 possibility underlying system modded? 0.1.0 underlying programming language algorithm impurities 0.1.1 a system malfunction such as lower power disrupting credibility 0.1.2 unwanted visitors 0.2 what datatypes? 0.2.0 input output data types the same? 0.2.1 do the datatypes different or not mathematically noticeablely align? 0.2.2 do the inputs different datatype equate to a boolean or close of that like 0 or 1? 0.2.3 do the inputs & outputs different datatypes or not match truthy? 0.3 quantitative analysis? 0.3.0 does the IO quantity match up? 0.3.1 does the IO quantity match ... Whole number proportionality? 0.3.2 datas element qty? 0.3.3 does the data have elements in the elements? 0.3.4 does the data contain even nestations 0.3.5 do the input & output datastructures keys match? 0.4 Am I being Volkswagened? 0.5 Are there benchmarks available?

  4. many IO's set 1.x does the same input cause a different output? 1.0 input output change detected between sets? 1.0.1 change indicates no constants unless hardcoded constants 1.1 possibility underlying system modded? 1.2 what datatypes? 1.3 quantitative analysis 1.3.0 the the io's proportionaly align? 1.4 Am I being Volkswagened? 1.5 Are there benchmarks available?

You can’t perform that action at this time.