The Compilers resources page

Here you'll find free compilers including sometimes their sources and articles on writing a compiler. A forum to discuss about compilers and programming is available at http://bloodshed.net/forum. If you want to contact me about this page, send a mail to compilers@bloodshed.net

Last updated: 18/05/2002

If you know of any resources about compilers I could add to this page, please submit it.

This page is divided into 4 sections (some may be added in future).

1°)Free compilers (with source code)

2°)Compiler construction toolkits

3°)Tutorials and articles

4°)Links to compiler-related sites

1°)Free compilers

Here is the free compilers list. If you want to add a new one to this list, click here.

Turbo Pascal and Turbo C: Borland has released for free version 1.0, 3.2 and 5.5 of its famous Turbo Pascal.

Dev-Pascal : Free IDE and compiler for Pascal (with Free Pascal).

Dev-C++ : Free IDE and compiler for the C and C++ languages. Delphi and C source code available.

SmallC : Small C compiler written by J. E. Hendrix. C source code included.

BCX : Very powerful and easy to use system which generates C code capable of compiling under Lcc-Win32 and MingW32 (or Dev-C++) without any modification.  It also comes with a resource translator which can read MS resource's code and produce code in C (Win32).

CoPascal : Co-Pascal is an extension of the Pascal-S compiler developed by N. Wirth. Pascal source code included.

P32 : Pascal compiler. Currently in development but works great. Pascal source included.

PowerPascal : Power Pascal is a fully 32-bit, native Pascal compiler for OS/2 2.0 or better. Pascal source included.

Djgpp : THE free compiler for c, c++, forth, pascal and more including C sources.

TinyPascal : A small implementation of the Pascal language. Full Delphi sources included.

Free Pascal : 32-bit Pascal compiler for Dos, Linux, OS/2. Pascal source code included. Used in Dev-Pascal.

ScriptBasic : Free embeddable and extendable scripting basic interpreter with full C source code. Tested on Windows NT and on Linux.

LCC-Win32 : a free compiler system for Windows by Jacob Navia.

lcc : lcc is a retargetable compiler for ISO Standard C. It generates code for the ALPHA, SPARC, MIPS R3000, and Intel x86 and its successors.

Yabasic : Small basic interpreter (with source code for Visual C++ 6) for Windows and Linux

Pacific C for DOS : Freeware version for MSDOS of a professional C IDE/compiler shareware

TopLogo++ : This is an IDE/compiler tool for developers and scientists. The package includes full documentation, Compiler IDE, demos, help etc...

JavaTM 2 SDK : JavaTM Software Development Kits and Runtimes

XBasic : interactive program development environment, advanced 32-bit/64-bit BASIC, interactive graphical GuiDesigner, multi-platform portable source code, Windows95 - Windows98 - WindowsNT - Linux - UNIX

XSCompiler : This MSDOS compiler generates 32-bit protected mode programs from a language that is C compatible, but includes classes and multiple inheritance. It comes with the standard C library, graphics, sound, multitasking, compression, animation, GIF, PCX, FLI/FLC, and other libraries. The compiler itself is compiled using this language.

GNAT : GNAT is an Ada95 compiler with the source code available in Ada95.

Rapid-Q : Rapid-Q is a free IDE and BASIC op-code compiler system for Win32, Linux, Unix...  It is very easy to use and to integrate with many other goodies like mySQL, cgi, DirectX, Direct3D, GTK ...

Mingw : A very good Win32 port of the GNU GCC compiler (used in Dev-C++)

Cygwin : Another free and good Win32 port of GCC and GNU Utils

GCC : THE one and only GCC compiler system. Runs on nearly any system.

Phoenix/Envelop : Rapid Development under Basic.

B++ : B++ is a BASIC compiler built on top of C++ - it converts BASIC code to C++, and then calls C++ compiler to produce EXE (or DLL). Source code is in Free Pascal.

GNU Ada : Free ADA compiler.

Dev86 / BCC : x86 C/Assembler development tools (C compiler, assembler, linker). Under the GPL. Linux and DOS binary distributions available.

http://www.digitalmars.com : FREE C/C++ Compiler for DOS, Win & NT by theauthor of Zortech C++ .

Virtual Pascal : A tool of choice for 32-bit cross-platform development using the Pascal language. It is compatibile with Borland Pascal and Delphi, including the Run-Time Library (RTL), an optimizing compiler, a powerful integrated debugger, and comprehensive online documentation.

PlugSys Xbase compiler : PlugSys has a free edition and a Professional edition on their web site. It is a character based compiler for the Xbase(dbase, clipper) language. There are both DOSWin95/98/NT and Linux version. Same code compiles on either system. Also has a server page tool (free and pay versions). The documentation that comes with the download is great. Free version only requires registration to download.

Context programming language : Simple programming language and compiler for MS-DOS with sources and sample programs on it's own input language by Andrei V. Khokhlov

Babya : B++ compiler for DOS with setup and Windows 9x support.

OpenWatcom : Open Watcom is a joint effort between SciTech Software, SybaseŽ, and a select team of developers, which will bring the Sybase Watcom C/C++ and Fortran compiler products to the Open Source community.

Self : A port of a compiler for the Self programming language to Linux. The system was originally developed at Stanford University and Sun, and it forms the technological base of the Java Hotspot compiler. A nice GUI is included.

SmallEiffel : The GNU compiler for the Eiffel language. Requires an ANSI C compiler. Supports AIX, Amiga, BeOS, BSD, Cygwin, MSDOS, FreeBSD, GNU/Hurd, GNU/Linux, HP-UX, IRIX, MacOS, NetBSD, NeXT, OS/2, OSF1, QNX, SCO, Solaris, OpenVMS, Windows 95/98/NT/2K and XENIX.

Inno Pascal : Inno Pascal is a simple Pascal compiler for Win32. It produces compact, native-code x86 executables without requiring any external assemblers or linkers. It was written entirely from scratch; it is not based on any other existing compilers. Full source code is included under the GPL license.

Harbour Project : Harbour is an Open Source Clipper Compatible Compiler. It includes OO extentions, and lots of useful adds. The Licence is GNU+Harbour Exception, what means that the licence does not infects the programs you produce with the compiler.

 

2°)Compilers construction toolkits

Here is the compilers construction toolkit list. If you want to add a new one to this list, click here.

Bison and Flex : Yacc and Lex clones. Creates parsers and scanners for compilers.
TPYacc and TPLex : Port of the Yacc and Lex tools to Turbo Pascal. This tools creates parsers and lexical scanners for compilers.
Coco/R : Coco/R combines the functionality of the well-known UNIX tools lex and yacc, to form an extremely easy to use
compiler generator that generates recursive descent parsers. Available versions ( Oberon, Modula-2, Pascal, Delphi, C and Java) for more info see http://cs.ru.ac.za/homes/cspt/cocor.htm
antlr : another tool for language recognition Tool written in Java for generating recognizers in Java or C++.  No money required for use, but download requires online registration for authors tracking purposes. Runs with SUN Java SDK.
Delphi Compiler Generator : Runs on Win32 only, written in Delphi, source code included. Free (as in "free beer", not "free speech") for non commercial use
GENTLE Compiler Construction System : This compiler construction tool purports to provide a uniform framework for language recognition, definition of abstract syntax trees, construction of tree walkers based on pattern recognition, smart traversal, simple unparsing for source to source translation and optimal code selection for microprocessors. Note however that if you use it to create an application, the licensing terms require that your applications be licensed under the GNU GPL.
Jacc : Jacc is a general-purpose parser generator that given a LALR(1) context-free grammar generates the source(s) of a C++ class that implements a parser for the language defined by the grammar. Jacc has a robust and powerful semantic value type system that allows the user to benefit by the OO language environment. Another innovative feature is its customizable code generating back end - the Jamp macro processor which generates the final sources based on a template file and attributes defined in the jacc grammar file. This way the user has better control to the style and structure of the generated code.

3°)Tutorials and articles

Here is the tutorials and articles about compiler writing. If you want to add a new one to this list, click here.

Let's build a compiler : A very good tutorial on writing a simple compiler in 16 articles. By Jack W. Crenshaw.
Parsing techniques : Free book to download in postscript or pdf about parsing techniques.

4°)Links to compilers related sites

Compilers.net : Directory and search machine on compilers and programming languages
Free compilers list : Lots of links about compilers and construction tools. One of the best !
The comp.compilers archive : Archive of the comp.compilers newsgroup.
http://www.dunfield.com/downloads.htm : "C" compiler and related files
Free BASIC translators : Free BASIC Translators Home Page
The Free Country - Developer City : Free programming resources including compilers.
Free developer resources : List of free developer resources like: compilers, setup programs, patch makers, and more.
DevLibrary : Huge programming web site with hundreds of tutorials and files on several languages.
http://cspt1.cs.ru.ac.za/compilers/ : An introduction in C++ to Compilers and Compiler Generators.
http://www.dreamwater.org/jamesfox/fciwin.html : An index to many free compilers and interpreters for Windows.

http://www.scriptol.org : List of programming languages and resources: free compilers, IDEs, etc....

 

Submit your resource:

If you want to send a resource to add to this list, please fill the form below and click on Send.

Name:

Type of submit:

If Other, please type a new section where to add it:

URL to file :

E-mail:

Description of the submit (please also include the working systems, requirements and the source code language) :