|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
A number of small Scheme and Lisp implementations have been designed for embedding into applications, to allow the latter to be conveniently programmable and customizable: xlisp, xscheme, elk, Scheme->C, and GNU emacs Lisp (which is hardly small...). One problem with Lisp is that the syntax is somewhat clumsy for interactive use (though many would disagree). Also, Lisp is rather low-level for a shell.
Tcl has similar uses [John Ousterhout: "Tcl: An Embeddable Command Language", Proc. USENIX Winter Conference, January 1990, 133-146]. It takes a very minimalist approach: The only data type is string. This is enough for an embedded command language, but would be unsuitable for non-trivial programs. Python [Guido van Rossum, Amsterdam] is also designed for embedded uses. It has a more sophisticated syntax and data types than Tcl. However, Python is very procedural (statement-oriented), and does not seem suitable as a shell.
EZ assumes a self-contained environment and is not well integrated into Unix. Also, the syntax could be terser. [Christopher Fraser and David R Hanson: A High-Level Programming and Command Language. Sigplan Notices XVIII(6) p. 212-219, June 1983.]
Q shares many of the goals of APL-derivatives like J. [Roger Hui, Kenneth Iverson, E. McDonnel and Arthur Whitney: APL\? APL90 Conference Proceedings, APL Quote Quad XX(4), 192-200, July 1990.] Both are intended as very high-level languages, to improve the productivity of programmers and users. Both use powerful builtins that work on first-class function and builtin data types (arrays in J, sequences in Q). But while J has a less idiosyncratic character set than APL, it is still designed to be used in its own little universe, and is not well-integrated into the Unix universe of programs and files.
Perl (by Larry Wall) is a popular utility language. However, the shell support is rather low level. Worse, the language is essentially a collection of useful features without an overall design.
|[ << ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|