Free Compilers and Interpreters
PL/I, COMAL, Ruby, Rexx, Eiffel, Lua, etc
Free Compilers and Interpreters for Miscellaneous Programming Languages
This page lists free compilers and interpreters for the following programming languages. If you can't find a particular language in this list, check up the miscellaneous category. Numerous compilers, interpreters from different computer programming languages are dumped there.
If you are looking for a printed book for a particular programming language, you might want to search Amazon.com.
If you still can't find it, try the main Free Compilers and Interpreters index. There may be a separate page for it that I forgot to list here.
Free Logo Implementations
Please go to the Free Logo Compilers and Interpreters page for the free Logo implementations previously listed here.
The free Smalltalk implementations have been moved to their own page, since there were just too many to cram into this miscellaneous page. Please see the Free Smalltalk Compilers and Interpreters instead.
- Digital Research PL/I for PC-DOS
This is a MSDOS PL/I compiler that compiles a subset of the PL/I language (G subset). It comes with a linker and samples. It is apparently free if you use it for non-commercial purposes. (Update: the site originally linked to here appears to have disappeared, and I can't find an official replacement. I suppose you can always search for it, but there's no guarantee that the sites you find are legitimate.)
F# is a programming language for the .NET Framework, originally developed by Microsoft Research. The language itself is multi-paradigm, supporting functional programming, object-oriented programming as well as procedural or imperative programming. It has some resemblance to the ML language. The language is already included in Visual Studio, but you can also download the (free) standalone compiler and tools for integration into the free Visual Studio 2010 shell or Mono. If you're confused by the download page at the F# site, see the corresponding F# download page at Microsoft Research, which is more explicit about what you need to do. (Note: if the Microsoft Research page disappears, please let me know. Microsoft's site tends to have pages disappearing all the time. Many of their webmasters don't seem to know how to redirect a relocated page.)
- The Go Programming Language
The Go programming language, created by Robert Griesemer, Rob Pike, and Ken Thompson, is a language designed to be suitable for modern systems programming and fast compilation and linking. It incorporates built-in support for concurrent programming (with processes that can communicate with each other) and garbage collection. It is type safe and memory safe (you can't do pointer arithmetic like in C/C++, although you can use pointers). Compilers for the language, at the time of this writing, are available only for Linux and Mac OS X. Note that due to a name collision with an earlier programming language called Go!, the language may change its name in the future. Another thing to note (before you rush to write your critical systems with it) is that the language appears to be still under development.
- The R Project for Statistical Computing
R is a language and environment for statistical computing and graphics. It is similar to the S language and environment, and some of the code written for S can run unaltered for R (although not all - there are differences). R supports "a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, ...) and graphical techniques, and is highly extensible." It allows you to easily produce publication-quality plots that include mathematical formulae and symbols. The software is available in source code under the GNU General Public License (GPL), and can be compiled and run under Linux, Windows, MacOS, FreeBSD, etc.
- OpenComal - Comal Interpreter
OpenComal is a free interpreter for the Comal programming language. Comal is supposed to be a crossover between the BASIC programming language and Pascal. Platforms supported include Windows, MSDOS, and Unix-type systems (such as Linux). The interpreter is licensed under the GNU General Public License (GPL).
XPL0 is a block structured programming language that supports recursion, integers, double-precision floating-point (with or without a math coprocessor), generalized I/O for the console, printers, files and serial ports, unlimited-dimensional arrays, complex data structures using pointers, procedure and function nesting (up to 8 levels), built-in graphics and transcendental routines, peek, poke, port I/O, etc. According to its creator, the language is similar to Pascal although less restrictive, less cryptic than C and more powerful than BASIC. It can generate interpreted as well as native code. The compiler runs under DOS. To use the native and optimizing compilers, you will need an assembler. You can get many free assemblers from the Free Assemblers, Linkers and Object Module Librarians page.
- The Harbour Project
Harbour is a free compiler that handles the Clipper superset of the xBase language (the language that originated with dBase). It can compile and run on Windows, MS-DOS, OS/2 and Linux. It is currently under development.
REBOL, or the Relative Expression-Based Object Language, is an interpreted language for distributed Internet applications that runs on a variety of devices. The core interpreter is free for all uses, while the version that supports graphics is free only for non-commercial use. REBOL runs on Windows XP/CE/NT/2K/9x, Linux, FreeBSD, OpenBSD, Mac OS and OS X, Solaris Sparc, BeOS, NetBSD, HP-UX, AIX, etc.
- Lua Programming Language
Lua is an interpreted procedural language with "data description constructs based on associative arrays and extensible semantics". It has dynamic typing, automatic garbage collection, etc. It is free, open source, and supports Windows, Windows CE, Linux, OS/2, BEOS, etc.
Erlang is a general purpose programming language with built-in support for writing concurrent programs. It is suitable for distributed, reliable, soft real-time concurrent systems like servers for Internet applications (eg, web servers, mail servers), telecommunications systems, database applications that require soft realtime behaviour, etc. Erlang is released free with source code, libraries of code, and documentation. Those serious about learning Erlang can also find books on Erlang on Amazon like ERLANG Programming and Programming Erlang: Software for a Concurrent World.
- FBSL: Free Basic Scripting Language
This is a simple scripting language for Windows systems. You can create script files that run in GUI or console mode for use with this interpreter.
- Regina Rexx Interpreter
Regina is a Rexx interpreter. The developers intend to make it 100% compliant with the ANSI Rexx standard. It has been ported to OS/2, MSDOS, Windows 95, Windows 98, Windows NT, Amiga, QNX, BeOS, OpenVMS, etc.
- Ruby Programming Language
This is an interpreted scripting language designed for "quick and easy object-oriented programming." It has facilities to process text files and do system management tasks. Its syntax was partially inspired by Eiffel and Ada. Supported operating systems include Windows, Unix, DOS, Mac, BeOS, OS/2 etc. It even does OS independent threading.
From their website, Euphoria is "a simple, flexible, and easy-to-learn programming language" that allows you to develop programs for DOS, Windows and Linux. It provides things like subscript checking, uninitialized variable checking and other runtime checks. It has apparently even been used to develop 32 bit games for DOS.
To quote from the FAQ, "Icon is a very high level general-purpose programming language with extensive features for processing strings (text) and data structures." It runs on MSDOS, Unix, Windows 3.1, Windows 95, Windows NT, Macintosh, VAX/VMS, Amiga, and the Acorn Archimedes. Older versions are available for the Atari ST, IBM CMS and MVS and OS/2. There is also a Java implementation called JCON that generates Java classes which can be executed in a Java virtual machine.
JAL, or Just Another Language, is a high level language for Microchip PIC 16x84 (16c68 and 16f84) and Scenix SX (SX18 and SX28) microcontrollers. It is Pascal like, and its libraries are released under the GNU LGPL licence. Versions are available for Linux, Windows and Mac OS X.
- POW! Programmers Open Workbench (with Oberon-2 compiler)
This integrated software development environment for Windows allows you to generate native Windows applications using Oberon-2, and it includes an Oberon-2 compiler. The IDE also supports Java and C/C++. The Oberon-2 compiler is a full implementation of the language and comes with the Oberon-2 library OPAL which allows you to create Windows programs without having to directly access Windows API.
R (a.k.a. GNU S) is a language and environment for statistical computing and graphics. R's implementation of the S language "provides a wide variety of statistical and graphical techniques (linear and non-linear modelling, statistical tests, time series analysis, classification, clustering...)". It is a true computer language and it has support for control flow, facility for adding new functions, and the ability to call C or Fortran code.
- SmartEiffel: The GNU Eiffel Compiler
SmartEiffel (formerly SmallEiffel) is the GNU Eiffel compiler, which can compile to C or Java bytecode. For those not familiar with Eiffel, it is an object-oriented programming language. This implementation supports Linux, GNU HURD, BSD, HP-UX, IRIX, XENIX, Solaris, DOS, OS/2, Windows NT/95, Macintosh, NeXT, Amiga, VMS, BeOS and possibly other Unices. You can get more information on Eiffel from the Eiffel FAQ.
Racket is a descendant of the Scheme programming language. It has support for R6RS (the Revised 6 Report on the Algorithmic Language Scheme) as well as R5RS (not by default). Features include a Just-In-Time (JIT) compiler, support for pre-emptive threads (all platforms), generative structures (record data types), built-in exceptions, compilation units, object oriented system, regular expression matching, simple TCP communication, portable filesystem access, platform specific process control (including AppleEvent support), etc.
A logic/functional programming language that "combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features." The compiler generates C code.
How to Link to This Page
It will appear on your page as: