Relations, that is, mathematical relations, define tcharacteristics
between computer languages.  Such relations have only passing
connection with the appearance and syntax of each language.

For example, the differences between C and Python lies fundamentally
in the different kinds of relations that each language provides.  C
has a close set of relations between statements, objects and machine
language.  Python has more general relations between objects.  Such
differences would remain even if one removed all braces from C.

Leo defines, and clarifies, the containment relations between modules,
classes and methods.  Leo's scripting features exploit those relations
in novel ways.

My thinking recently has mainly focused on creating and exploiting new
relations between programming objects.  Unit testing creates an
excellent kind of "double-entry accounting":  the code in each unit
test is quite different from the code being tested, both in form (the
code) and the content (the relations being verified).

So unit tests provide a model or template for scripts that define or
verify arbitrary assertions (relations) about programs.  Furthermore,
any script can become a unit tests, so in one sense the "project"
becomes one of expanding the scope and vision of unit tests.

The fundamental intuition, perhaps deeply flawed, is that we
programmers know very similar kinds of things about our programs,
whether we are programming in C or in Python.  Such "occult knowledge"
isn't typically dealt with explicitly. t may be fundamentally
important to the design and implementation of code, but it does not
lie *in* the code itself, except perhaps as easily ignored comments.

So the project is to create explicit, verifiable constraints on
programs, the verification of which can improve the safety and speed
of our programs.  The goal is to make Python as fast as C, and C as
safe as Python.  The goal need not be met perfectly in order to be
useful.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to leo-editor@googlegroups.com.
To unsubscribe from this group, send email to 
leo-editor+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to