Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
This directory contains material used to study editing of programs in structured form. All programming tools that are common at the time of writing this document store programs as text. Such programs are easy to edit with a text editor but they need to be parsed before they can be evaluated or analyzed. Parsing converts the source code into a structured form, usually an abstract syntax tree, which is easy to evaluate by the computer. Parsers are difficult to produce, and this produces limits into programming language design, unless they are mitigated by using a syntax linear to structured form, such as in lisp. This in overall makes it difficult to discover the impact of an individual change on language design. When parsing fails, a syntax error is introduced. Syntax errors always prevent the evaluation of the program. Programmers have to learn cope with syntax errors. Programming is intrinsically hard, so excess difficulties aren't nice. Parser needs to be reimplemented inside editor to make the editor aware of the structure. Structure aware text editors are not simple. Multiple different languages in single source file add extra complication to the subject. Least importantly, parsing is a computationally expensive operation. Despite shortcomings, programming is still done with text editors today as they have benefits that cannot be skipped. First of all text is simply what everyone does. Nobody considers alternatives. This is not the only reason for text dominance though. Text files are easy to create and a simple text editor is easy to implement. As a structure the text files are easy to understand, although there are many encodings for text. Text is generic purpose, so once you have a simple text editor, you can use it to write programs. There are tons of tools such as diff and grep, that operate on text files. They can be directly used to source code when it's text. There are many algorithms for text, such as ones used to provide collaborative editing. Lot of editors exists, some that allow text to be folded to hide lines that are irrelevant at the time. Also version control systems can diff text. Programming languages are barely ever strict, so users can add comments and layout the code by adding superfluous spaces and carriages. This is so useful that many editors attempt to help user with a heuristic which adds spaces after carriage. Programming in structured form has a lot of potential as it could eliminate parsers. Therefore it needs to be considered essential to research through. The Essential Editor Research Project studies structured form editing. The latest working editor is seed/, it requires python2.7, pygame and pyopengl. It should run when you type "python main.py" inside it's directory. If you are interested about this project, I recommend you come to chat with others. We use IRC: irc.freenode.net#essence There's also the mailing list: firstname.lastname@example.org https://groups.google.com/forum/?fromgroups#!forum/structuredform