Archive for the ‘programming’ Category

Test Driven Program Synthesis

July 9, 2014

The idea of generating a program has been around for quite some time.

Now there are IDE’s which can create the scaffolding code so that programmers need to fill in just the application logic.

What I am thinking is little math and little of code generation. I am trying to link 2 different concepts

  1. Newton–Raphson method (http://en.wikipedia.org/wiki/Newton’s_method): briefly this helps us approximating a function (f) by  going over a given set of x and f(x). the more the set of x -> f(x) the more accurate our f will be.
  2. TDD (http://en.wikipedia.org/wiki/Test-driven_development): here we have a set of tests and we write code so that the tests pass, test is an input/output mapping like x -> f(x)

Clubbing them together:

can we use both of these together to generate the function (f) ?

one issue would be that newton-raphson method works on real numbers, and we can say our functions work on byte arrays or strings.

for this can we map a string to a real number so that test cases are converted from string -> f(string) to x -> f(x)

 

some links to read further:

http://en.wikipedia.org/wiki/Program_synthesis

http://research.microsoft.com/en-us/um/people/sumitg/pubs/synthesis.html

http://dl.acm.org/citation.cfm?id=2594297

if ( programmer version)

March 18, 2013

if you can write code and debug it
if you have not written but can debug
if you can visualize multiple threads and their execution

if you can treat bugs and optimization opportunities same and spend equal effort on both
if you can debug issue for days together without any progress
and still don’t give in but focus and spend more time to make some progress

if you can accommodate change requests and not get frustrated by it
if you can change your/not your’s code without any request but for beautifying it further
if you can feel less about bugs in code but as much as you would not repeat it

if you can treat PM(product manager),QE and your self as equal
and treat all of their suggestions with some importance
but not to give in completely for the whims and fancies of others