2008 November 21, Friday


Linked tree

 

We shell change a program’s representation from a plain text to a linked tree of nodes, where each node represents a semantic meaning.

This will allow us to

  • easily extend a programming language to reflect a high-level design of a program.

  • such language extensions will not force us to change IDEs (editors, parsers, compilers, code analyzers, debuggers and others tools), if the IDE is able to edit nodes, not text.

  • we can render the program in different ways – as text (compressed or verbose), as a graphic diagram (like UML), as a documentation on itself.

  • we will be able to use in the same code different ‘languages’ and paradigms, like combining compiled code, scripts, SQL statements, business logic language, GUI forms and dialogs, HTML view.

  • we can design a DSL (domain-specific language) or just to extend a given language and so on.