The main sources for the definitions were (in this order):
-
Vital LISP™ / Visual LISP™ extensions
-
ANSI Common Lisp, xlisp
-
My own experience and common sense
-
AutoDesk's™ Sample Code
-
"Maximizing AutoLISP"
-
usenet and email discussion
-
Code collections from the internet and magazines
To summarize the order of importance:
-
Lisp-style over C-style
C-style is short and easier to learn for people coming from C/Pascal, Lisp-style is more explicit and easier to read.
-
Lisp over AutoLISP
AutoLISP programmers developed bad habits over the years. Complexity increased. AutoLISP programs became unreadable. In particular Common Lisp names are favoured over Scheme.
-
If you have to learn new names then better longer ones, but if a function name became common knowledge leave it as it is. (Esp. some string and file functions with clib names)
Stability over Readability over Performance over Compatibility.
We follow all four guidelines plus Extendability if appropriate.
Other visited sources of related software libraries and docs for names, naming conventions, features, style and portability issues were:
-
LPP - The Visual Lisp internals. What is inside Visual Lisp will very likely appear in future versions, vice versa what is not yet inside may not appear in the short term. Also described in the paper "The AutoLISP Programming Language in Computer Aided Design" at the LUGM 1998 in Berkeley by Harold Carr and Robert Holt.
-
CLHS The Common Lisp Hyperspec - based on the ANSI X3.226-1994 Standard for Common Lisp. http://www.harlequin.com/books/HyperSpec/FrontMatter/
-
various ANSI c libs, (yes, there are more L), esp. POSIX compliant libc, Watcom's and MSVC's implementations, the standard libc, the new glibc (GNU)
-
The C++ standard library, as described in Stroustrup, The C++ Reference, including the STL (Standard Template Library) and the new GNU ANSI libstdc++ 2.8.1
-
guile - a new unix standard scripting language, scheme based and used in gnome
-
The perl language and the CPAN modules - The comprehensive perl archive network. Though perl looks like c it's almost lisp is more readable than C and has a huge impact.
-
scheme libraries - The Ongoing Scheme Library Discussions, e.g.
http://www.neci.nj.nec.com/homepages/kelsey/bawden.txt
or the current SRFIs (Scheme Requests for Implementation) at http://srfi.schemers.org/
-
SLIB - a portable scheme library, version 2.01, 1993-1995, by Todd R. Eigenschink, Dave Love, and Aubrey Jaffer.
http://www.cs.indiana.edu/scheme-repository/code.lib.html
-
Sergei Pashkov 's random numbers tests are based on Donald Knuth, The Art of Computer Programming, Vol 2, Seminumerical Algorithms
-
The Erlang programming language and STDLIB, (prolog like) recently licensed as open source http://www.erlang.org/