Separating Source Code Storage and Presentation
Key to the benefits of IP is that source code is not stored in text files, but in a binary file that bears a resemblance to XML. As with XML, there is no need for a specific parser for each piece of code that wishes to operate on the information that forms the program, lowering the barrier to writing analysis or restructuring tools.
Tight integration of the editor with the binary format brings some of the nicer features of database normalization to source code. Redundancy is eliminated by giving each definition a unique identity, and storing the name of variables and operators in exactly one place. This makes it easier to intrinsically distinguish declarations from references, and the environment shows declarations in boldface type. Whitespace is also not stored as part of the source code, and each programmer working on a project can choose an indentation display of the source. More radical visualizations include showing statement lists as nested boxes, editing conditional expressions as logic gates, or re-rendering names in Chinese.
The project appears to standardize a kind of XML Schema for popular languages like C++ and Java, while letting users of the environment mix and match these with ideas from Eiffel and other languages. Often mentioned in the same context as language-oriented programming via domain-specific languages, and aspect-oriented programming, IP purports to provide some breakthroughs in generative programming. These techniques allow developers to extend the language environment to capture domain-specific constructs without investing in writing a full compiler and editor for any new languages.
Read more about this topic: Intentional Programming
Famous quotes containing the words separating, source, code, storage and/or presentation:
“I have reached no conclusions, have erected no boundaries,
shutting out and shutting in, separating inside
from outside: I have
drawn no lines:”
—Archie Randolph Ammons (b. 1926)
“The child knows only that he engages in play because it is enjoyable. He isnt aware of his need to playa need which has its source in the pressure of unsolved problems. Nor does he know that his pleasure in playing comes from a deep sense of well-being that is the direct result of feeling in control of things, in contrast to the rest of his life, which is managed by his parents or other adults.”
—Bruno Bettelheim (20th century)
“Acknowledge your will and speak to us all, This alone is what I will to be! Hang your own penal code up above you: we want to be its enforcers!”
—Friedrich Nietzsche (18441900)
“Many of our houses, both public and private, with their almost innumerable apartments, their huge halls and their cellars for the storage of wines and other munitions of peace, appear to me extravagantly large for their inhabitants. They are so vast and magnificent that the latter seem to be only vermin which infest them.”
—Henry David Thoreau (18171862)
“He uses his folly like a stalking-horse, and under the presentation of that he shoots his wit.”
—William Shakespeare (15641616)