13.7. Other Languages
There are many other popular (and not-so-popular) languages available
for Linux. For the most part, however, these work identically on Linux as
on other Unix systems, so there's not much in the way of
news there. There are also so many of them that we can't cover them
in much detail here. We do want to let you know what's out
there, however, and explain some of the differences between the
various languages and compilers.
Python has gained a lot of attention lately, because it is
a powerful mixture of different programming paradigms and
styles. For example, it is one of the very few interpreted
object-oriented programming languages (Perl being another
example, but only relatively late in its existence). Python fans
say it is especially easily
learned. Python was almost entirely written and designed by
Guido van Rossum, who chose the name because he wrote the
interpreter while watching reruns of the British TV show Monty Python's Flying Circus. You can read
all about Python at http://www.python.org
or in Programming Python by Mark Lutz.
LISP is an interpreted language used in many
applications, ranging from
artificial intelligence to statistics. It is used primarily
in computer science, because it defines a clean, logical interface for
working with algorithms. (It also uses a lot of parentheses,
something computer scientists are always fond of.) It is a functional
programming language
and is very generalized. Many operations are defined in terms of recursion
instead of linear loops. Expressions are hierarchical, and data is
represented by lists of items.
There are several LISP interpreters available for
Linux. Emacs LISP is a fairly complete
implementation in itself. It has many features that allow
it to interact directly with Emacs--input and output through Emacs
buffers, for example--but it may be used for non-Emacs-related
applications as well.
Also available is CLISP, a Common
LISP implementation by Bruno Haible of Karlsruhe
University and Michael Stoll of Munich University. It includes an
interpreter, a compiler, and a subset of CLOS
(Common LISP Object System, an object-oriented extension to
LISP). CLX, a Common LISP
interface to the X Window System, is also available, and it runs under
CLISP. CLX allows you to write
X-based applications in LISP. Austin Kyoto Common
LISP, another LISP
implementation, is available and compatible with
CLX as well.
SWI-Prolog, a complete Prolog implementation by Jan
Wielemaker of the University of Amsterdam, is also available. Prolog
is a logic-based language, allowing you to make logical assertions, define heuristics for validating those assertions, and make
decisions based on them. It is a useful language for AI applications.
Also available are several Scheme interpreters, including MIT Scheme,
a complete Scheme interpreter conforming to the
R4 standard. Scheme is a dialect of
LISP that offers a cleaner, more general programming
model. It is a good LISP dialect for
computer-science applications and for studying algorithms.
At least two implementations of Ada are available--AdaEd, an Ada
interpreter, and GNAT, the GNU
Ada Translator. GNAT is actually a full-fledged
optimizing Ada compiler. It is to Ada what gcc is
to C and C++.
Along the same vein, two other popular language translators exist for
Linux--p2c, a Pascal-to-C translator, and
f2c, a FORTRAN-to-C
translator. If you're concerned that these translators won't function
as well as bona fide compilers, don't be. Both p2c
and f2c have proven to be robust and useful for
heavy Pascal and FORTRAN use.
f2c is FORTRAN-77-compliant, and
a number of tools are available for it as
well. ftnchek is a FORTRAN
checker, similar to lint. Both the
LAPACK numerical methods library and the
mpfun multiprecision FORTRAN
library have been ported to Linux using
f2c. toolpack is a collection of
FORTRAN tools, such as a source-code pretty-printer,
a precision converter, and a portability checker.
Among the miscellaneous other languages available for Linux are
interpreters for APL, Rexx, Forth, ML, Eiffel, and a
Simula-to-C translator. The GNU versions of the
compiler tools lex and yacc
(renamed to flex and bison,
respectively), which are used for many software packages, have also
been ported to Linux. lex
and yacc are invaluable for creating any kind of
parser or translator, most commonly used when writing compilers.
 |  |  | 13.6. Java |  | 14. Tools for
Programmers |
Copyright © 2001 O'Reilly & Associates. All rights reserved.
|
|