Quote:
Originally Posted by mike_bike_kite
RPN is definitely easier to parse than standard notation but I don't think that's the reason for the layout. The whole language seems to be built around a simple list parser. If you're going to process the items in a list then you should say what you want to do with each item at the start. The advantage of building the whole language around a simple construct (like a list) is that it makes the language easier to learn and also straightforward to expand. In lisp at least, I don't think there is a distinction between the syntax, the programs and the data.
|
IIRC, AutoLISP is actually based on David Betz's
XLisp, which is a superset of the
Scheme dialect of LISP.
But yes, LISP is intended to be a list processor. Emacs was originally implemented as a set of macros in the
TECO language that ran under the ITS OS on a DEC-10 at MIT. Richard Stallman unified and extended several extant TECO macro packages in common use, and called the result Editing MACroS. They reached the point where everyone used it and often weren't even aware TECO was under the hood.
When TECO was going away, Stallman rewrote in LISP. The nature of the language was a good for the sort of string processing tasks an editor would do, and it was available on the machines where emacs would be used. (Other available high level languages presented implementation issues, mostly because the machines in question didn't have facilities for handling character I/O.)
James Gosling (who created Java) did the first version of emacs in C, implementing a language called mocklisp. Stallman later did his own C language port with a genuine LISP interpreter as the core and most of emacs written in LISP.
One valid criticism of LISP in emacs is that the macro language used in an editor ought to be usable elsewhere as well, and even if you are a die-hard emacs user, what
else do you do with LISP? Likely, nothing. Eric S. Raymond (who is a Gnu Emacs contributor) was going on a while back about what emacs got wrong, and thought that Python would be a better underlying language. (There are an assortment of editors written in Python - see
http://texteditors.org/cgi-bin/wiki....onEditorFamily for a partial list.) I suggested he should rewrite emacs to use Python and was told "Don't tempt me!"

______
Dennis