Return to
PyThonic
"Unless reader and compiler both understand the writer, the program is not communicating properly"
- Kernighan and Plauger, "The Elements of Programming Style" (2nd Edn), pg. 15
November 11, 2004
Approximately two months into XAYA --
The slow process of growing confidence -- of being able to let an idea simmer, and find that the algorithm you need simplifies over time, to the point you can write it.
Writing a program is like having two conversations at once -- one with an abstract machine. One with another person. One conversation is about efficiency of implementation, manipulation of the machine. The other is about expression -- can another person read and change this?
December 12, 2004:
After completion of XAYA iteration 001 (pre-pre-alpha).
The fulcrum of XAYA is becoming this:
There is a point of intersection between three areas of computer science: Logic programming, querying/db and routing problems:
- Relationships can be represented as directed graph -- which provides an aid to imagination and visualization of a problem.
- Operations on graphs (set theoretic; input output) provide a basis for rapidly developing complex data manipulations capabilities out of a few primites.
- Querying and routing problems can both be reprensented as searches through graphs.
Along the way, the real lesson I learned was the need to start in a small corner, work forward; and allow the project to veer "off plan" as interesting insights came in the trial-and-error process of prototyping.
Maintaining a working body of code at all times, allows you to be surprised at what you can do.
Critical to the approach taken in XAYA has been:
- All fns input and output to the same graph structure. So output of one fn can be fed back to another.
- Basic search opns on graphs can be combined to build more complex ones.
- Basic set theoretic opns can handle most of data addn/deletion tasks.
- extension of relational algebra to graphs not clear to me yet.
- ????
Finally -- to explain these ideas to others -- I need a concrete tutorial, showing how XAYA could handle "typical" logic programming, db, routing tasks in its own lingo.
I have to keep refining the language so it is simple and intuitive -- and this means testing on others whose intuitions differ from mine.
The basic idea of Pythonic.
- Illustrate the use of programming to solve biological problems
- focus on "Algorithms" illustrated by biological applications
- Context of a "Diary of a Student" over 12 month period. Each one represents a different problem -- using XAYA. Focus on Graphs and Ascendency. Introduce ideas from Probe System Trace. This would almost be like the first "Python Algorithms" book -- but not complete coverage -- just those parts interesting to me. Illustrate the idea of "Thinking with Data". Complementary to a XAYA book focussed on Declarative Programming in Python.
OutLine? for Pythonic
Illustrating computer Science through Biology.
--
MishtuBanerjee - 11 Nov 2004
to top