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

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 Smalltalk Implementations

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.

Free PL/I (or PL/1) Compilers

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. I prefer to list only official sites.)

Free Eiffel Compilers

Liberty Eiffel New

Liberty Eiffel is the GNU Eiffel Compiler. It was originally derived from SmartEiffel. The compiler is primarily distributed in source form, although you may be able to get binaries for it from their "apt" repository if you use Debian or Ubuntu Linux.


SmartEiffel (formerly SmallEiffel) 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.

Miscellaneous free compilers and interpreters

Rust Programming Language

Rust is a language syntactically similar to C++ but is designed to be memory-safe and thread-safe. It does not have a runtime garbage collector, but manages its memory and resources using a resource acquisition is initialization (RAII) convention with optional reference counting. Platforms supported include Windows, macOS, Linux, FreeBSD, OpenBSD, Android, iOS, and Redox (which is written in Rust).

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.

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.


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.


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.

FBSL: Free Basic Scripting Language

[Update: this site seems to be gone.] 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.

Related Pages

Newest Pages

Popular Pages

How to Link to This Page

It will appear on your page as:

Free Compilers and Interpreters for Miscellaneous Programming Languages Free Webmaster Tutorials, Scripts and Articles Free How-To Guides Free Programmers, Webmasters and Security Resources
If you find this site useful, please link to us.