Menu Content/Inhalt
Home arrow --- Source Code arrow Compilers / Assemblers
Compilers / Assemblers Print
Written by Sergei Kostigoff   
Tuesday, 11 March 2008

Source code of the compilers and assemblers, grouped by source language.

Assembler

ALINK - A free linker for creating Win32 EXE's and DLL's with both OMF and MS-COFF files. Also can build DOS programs. Great for TASM users who want to link to COFF libraries supplied by Microsoft.

ANASM is an assembler, which is written completely in assembly language.

flat assembler - Fast and efficient self-assembling 80x86 assembler for DOS/Win32/Linux; with 8086-80486/Pentium/MMX/SSE/SSE2 instructions support, 16-bit/32-bit code, binary/MZ/PE/COFF/ELF output formats.

IDEA85 is an IDE and assembler for the 8085 microprocessor.

IsForth is a direct threaded Linux-only x86 Forth implementation coded in pure assembly using NASM macros to create forth high-level definitions. All I/O is done with syscalls. It is almost a complete replacement for both libc and libncurses.

mixal is an assembler and interpreter for Donald Knuth's mythical MIX computer, defined in his book, "The Art of Computer Programming, Vol. 1: Fundamental Algorithms."

red bulletRosAsm (ex. SpAsm, The Specific Assembler), the Bottom-Up Assembler. (ReactOS, WINE, Windows 95/98, NT/2000, XP,...). The easy way for writing full 32 Bits Applications in Assembly. RosAsm is free and GPLed.

 

C / C++

CppCC - C++ Compiler Compiler - CppCC is an object-oriented scanner and LL(k) parser generator. It aims to replace LEX&YACC for those who write C++ applications that involve parsing.

CASMSIM is a microassembler and simulator package for the Classic series of HP handheld calculators. It currently simulates the HP-35 and HP-45 scientific, HP-55 programmable scientific, and HP-80 financial calculators. The necessary microcode is included.

CLISP is a portable ANSI Common Lisp implementation by Bruno Haible. Interpreter, compiler, debugger, CLOS, FFI, Unicode, sockets, CLX. UI in English, German, French, Spanish, Dutch and Russian.

CSL is a programming language with C syntax and comprehensive libraries. The compact scripting engine can also be embedded into your own applications as a powerful macro language.

CTTL - Common Text Transformation Library is a library of C++ classes and functions to parse and modify STL strings. CTTL substring classes may be compared, inserted, replaced, and parsed with EBNF grammars. The compiled program implements a recursive descent parser.

ctool - a library to scan and parse C code, building a tree data structure that can be accessed by other programs to assist in analyzing the code.

GDB - The GNU Debugger is a source-level debugger for C, C++, Java, Modula-2, and several other languages. It runs on GNU/Linux, the BSD's, and almost every major proprietary OS. GDB can debug programs running on the same machine as itself, or it can communicate over a network or serial line with a debugging stub on another machine; thus, it can be used for embedded and kernel debugging.

GNUSim8085 is a graphical simulator for the Intel 8085 microprocessor. It contains an inline assembler and a debugger.

DICE - The Amiga/embedded/generic 68000 C compiler - Free source code for a the complete DICE C compiler core. Will compile easily on the Amiga, FreeBSD, Linux and other Unix systems. Able to create both relocable and fixed address (ROM) based code. Quite suitable for embedded 68K development on chips such as the 68000 / 68302 / 68306.

dis6502 is a flow-tracing 6502 disassembler. It includes support for more input file formats and additional control file directives allowing for better disassembly of references to multi-byte variables.

Gameboy Development Kit - A C compiler, assembler, linker and set of libraries for the Z80 like Nintendo Gameboy.

green bulletGCC - The GNU Compiler Collection contains frontends for C, C++, Objective-C, Fortran, Java, and Ada as well as libraries for these languages. It is a full-featured ANSI C compiler with support for K&R C as well. GCC provides many levels of source code error checking traditionally provided by other tools (such as lint), produces debugging information, and can perform many different optimizations to the resulting object code.

GCC for Palm OS - The prc-tools project currently consists of patches to binutils, gdb, and GCC to support Palm OS, along with several post-linker tools.

GCC toolchain for MSP430 - This is a port of the GNU C Compiler (GCC) and GNU Binutils (as, ld) for the embedded processor MSP430.

GNU/Liberty Basic Compiler Collection   - GLBCC is a front-end to the GNU Compiler Collection. GLBCC adds Liberty Basic to the GCC language collection so that Liberty Basic code can be compiled directly to an executable. Since GLBCC uses GCC, the object files can also be linked with object file

GNU Prolog is a free implementation (under GPL) of the logic programming language PROLOG. It can compile to native machine code which is extremely fast in execution. Another feature is the included constraint solver.

The Harbour Project is a Free Software effort to build a cross platform Clipper language compiler

inger - a compiler for an imperative programming language (inger), which is much like C (but cleaner). Apart from the Inger compiler, we have written the e-book 'Compiler Construction: A Practical Approach', which is available for download.

NASM - the famous Netwide Assembler. Back at SourceForge and in intensive development!

nesC compiler - nesC is a compiler for a new language (based on C) designed to support the TinyOS project. nesC provides several advantages over the existing TinyOS compiler infrastructure: nicer syntax, complete error reporting, and interfaces to group related functions.

ncc is a compiler that produces program analysis information. ncc is a decent replacement of cflow and cscope able to analyse any program using the gcc compiler. The program also incliudes a graphical call-graph navigator and source browser which is extremely practical for hacking and comprehending large projects.

TCC (Tiny C Compiler) is small, fast, unlimited, and safe. You can compile and execute C code everywhere (e.g., on rescue disks). It generates optimized x86 code, and can compile, assemble, and link several times faster than 'gcc -O0'. Any C dynamic library can be used directly. It includes an optional memory and bounds checker, and bounds-checked code can be mixed freely with standard code. C script is also supported--just add '#!/usr/bin/tcc' at the first line of your C source, and execute it directly from the command line.

ThinLisp is a practical dialect of lisp for real world applications. You develop in Common Lisp, you deploy in C. ThinLisp programs are as fast as C, by design. Used for a decade in million line systems.

blue bulletOnBoard C is a C compiler that runs on and creates executables for the Palm OS. OnBoard C creates stand-alone, fully-fledged PRCs -- there's no need for run time libraries or any other software to run an executable created by OnBoard C.

OpenCOBOL is an open-source COBOL compiler, which translates COBOL programs to C code and compiles it using GCC.

OpenZz is a dynamic parser which allows its grammar to be extended by commands written in its own Zz language. Due to the interpreted and dynamic nature of the parser OpenZz can be used to develop both fast language prototypes and full compilers.

Pasmo is a multi-platform Z80 cross assembler that is simple to compile and easy to use.

PEReaDeR - a disassembler of PE (Portable Executable, also known as windows executable) file.

The Portable Forth Environment implements the ANSI Forth Standard, it is fully written in C, the newer version has a module concept, and it is fully multithreaded. Autoconf used. Tested in embedded environments.

Small Device C Compiler - SDCC is an open source retargettable, optimizing ANSI - C compiler. The current version targets the Intel 8051, Zilog Z80 and Dallas 80C390 MCUs. Atmel AVR support coming soon.

SWIG is compiler that connects C and C++ with a variety of scripting languages including Perl, Python, Tcl, Guile, and Ruby. People often use it to create scripting language extensions or to create interpreted environments for existing software.

The Tiny COBOL compiler project - A COBOL compiler being developed on the Linux OS. It generates GNU x86 assembler code.

xBaseScript (PP.exe) is an open source enhanced Clipper compatible Pre-Processor, DOT Prompt Environment, and Clipper/xBase Script Engine.

Yet Another Prolog - The Yap Prolog System is a ISO-compatible high-performance Prolog compiler. Yap is widely considered one of the fastest available Prolog systems. Yap supports coroutining, CLP(QR), CHR, and depth-bound search. Tabling and parallelism are in development.

 

Delphi / Kylix / Pascal

DelphiWebScript is a scripting language for use in Borland Delphi™ projects. The programming language is similar to Delphi. It's HTML features are optimal for web applications and report modules.

Delphi Yacc & Lex is a parser generator toolset for Delphi and Kylix, based on Turbo Pascal Lex and Yacc version 4.1. The primary goal is to clean up the code, and improve compatibility and maintainability. The project started because the original Turbo Pascal Lex and Yacc did not compile well in Delphi 5+ or Kylix, the sourcecode was messy, and the last release or activity dates back to early 2000.

DFM To Pascal is a GPL (Delphi source for a while) application used to port source code from Delphi to Free Pascal Compiler using the Lazarus libs. DFMToPas read a list of DFM files and create 4 Pascal files for each DFM file.

red bulletFree Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal compiler. It is available for different processors: Intel x86, Amd64/x86_64, PowerPC, PowerPC64, Sparc, ARM. The discontinued 1.0 version also supports the Motorola 680x0. The following operating systems are supported: Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, Win64, WinCE, OS/2, Netware (libc and classic) and MorphOS.

HSPascal is a Pascal compiler supporting the Palm Computing(r) platform. It is running on Windows platforms and produces fast, small and optimized native Palm programs. HSPascal has many buildin extensions known from Turbo Pascal, like reals, strings and sets. (Not a free.)

Inno Pascal (Discontinued) - 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.

red bulletThe Lazarus IDE is a stable and feature rich visual programming environment for the FreePascal Compiler. It supports the creation of self-standing graphical and console applications and runs on Linux, FreeBSD, MacOSX and Windows.

OpenC2Pas - C/C++/BCB to Object Pascal (Delphi/Kylix) translator. Do not expect any complete and exhaustive conversion, but it can convert a big portion of code for you.

OpenSource Pascal is a 16 bit pascal compiler. It is available for intel x86 processors and DOS, WIN32 operating systems. The language syntax is compatible with TP 4.0, with some extensions. Compiler is write in Pascal.

P4 pascal - Included here is the Pascal source of a public-domain Pascal compiler and interpreter, the P4 compiler and interpreter. It is coded entirely in Pascal, and produces a high-level so-called intermediate code as output. The program 'pint' is an assembler and interpreter for this language.

green bulletPP Compiler is a freeware standard Pascal compiler for PalmOS that runs directly on the handheld. PP generates true native 68000 and ARM executable code from standard Pascal source code. Console applications, standard Palm applications, shared libraries, DA's, armlets may be generated on board in the train, while waiting the bus, while fishing, on the beach, or wherever you are.

Tcl Scripting Language Components (Tslc) for Delphi. Drag~n~Drop, Double~Click Command Creation, Var Tracing, Channel Creation, and more. Comprehensive BDE support and visual Tk widgets on the Form!

Zen Source Library - resources include debugger, resource analysis, scripting etc.

 

Java

The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the approaches of Eiffel and Larch, with some elements of the refinement calculus.

joeq virtual machine - A Java 2 (JDK 1.3/1.4) compatible virtual machine. joeq is unique in that it is almost entirely implemented in Java, making it reliable and efficient. It is also language-independent, so code from any language can be seamlessly and dynamically compiled.

MultiJava - adds open classes and multiple dispatch to Java. Open classes let one add new operations to existing objects. Multiple dispatch has many uses; one typical example is to write event handlers for Swing applications while avoiding nested ifs.

Nice Programming Language - New object-oriented programming language based on Java, with the following advanced features: parametric types, anonymous functions, multi-methods, tuples, optional parameters. Nice also detects more errors during compilation (null pointers, casts).

Pascal Interpreter in Java - (Polish resource) Simple Pascal interpreter written in Java, which will include: 1) I/O Operations like read/write from/to console 2) Declaration of some subset of simple types and variables 3) Arithmetical operators 4) Dynamic memory allocation 5) For loop 6) IF ..

SableCC - an object-oriented framework that generates compilers and interpreters in the Java programming language. (Includes a collection of interpreters and compilers.)

UICompiler - To use QtDesinger .ui files and generate standard java swing code.

 

Other languages

green bullet4tH is a Forth compiler with a little difference. Instead of the standard Forth engine it features a conventional compiler. 4tH is a very small compiler that can create bytecode, C-embeddable bytecode, standalone executables, but also works fine as a scripting language. It supports over 85% of the ANS Forth CORE wordset and features conditional compilation, pipes, files, assertions, forward declarations, recursion, include files, etc. It comes with an RPN calculator, line editor, compiler, decompiler, C-source generators, and a virtual machine.

Alexey Yakovlev personal page - (Russian resource, English is available). My scientific interests include formal languages (mostly, imperative algorithmic languages) and compilers development. The only project which remains active is Yalgol/02 (stands for Yet Another Algorithmic Language, generation 02) together with its compiler, also written in Yalgol. You can probably find more details about it on the Projects section of this homepage. (Last update 2003)

Andrey Khokhlov page - (Russian resource, English is available). Page related to programming and compiler writing. Most examples are given in Context - author's language and compiler.

Blassic is a classic Basic interpreter. The line numbers are mandatory, and it has PEEK & POKE. The main goal is to execute programs written in old interpreters, even those that use peculiar control flow constructs or automodifiable code. However, it can be used as a scripting language, and has some not-so-classic instructions. It has graphics modes that are compatible with some classic systems and user defined.

Catalog of Free Compilers and Interpreters - This list catalogues freely available software for language tools, which includes the following: compilers, compiler generators, interpreters, translators, important libraries, assemblers, etc. - things whose user interface is a language. Natural language processing tools may also be included. This list is primarily aimed at developers rather than researchers, and consists mainly of citations for production quality systems. There is some overlap of coverage between this document and other lists and catalogs. See the  references section for a list.

Chicken is a Scheme compiler that translates most of R5RS Scheme into relatively portable C. It supports fully general tail-call optimization, first-class continuations, and multiple values. Numerous extensions are available, like support for various SRFIs, record structures, hash-tables, queues, custom I/O ports, extended string operations, regular expressions, Common LISP style `format', TCP sockets, lightweight threads, pattern matching macros, syntax-case macro system, dynamic loading of compiled code, and a simple CLOS-like object-system with MOP.

CI-Link is an object-oriented scripting language dedicated to building dynamic Web pages. It offers a structured and uniform approach to the concepts used to develop Web applications. Several gateways enable CI-link to interact with Java, .NET, COM, or XML applications. CI-Link also offers a strict approach to the notion of project that eases access to the different components and resources of a project: classes, persistent objects, XML sheets, and so on.

CLIP is a Clipper/xBase compatible compiler with initial support other xBase dialects. It features support for international languages and character sets. It also features OOP, a multiplatform GUI based on GTK/GTKextra, all SIX/Comix features (including hypertext indexing), SQL and ODBC drivers, a C-API for third-party developers, a few wrappers for popular libraries (such as BZIP, GZIP, GD, Crypto, and Fcgi), a multitasking client and application server based on TCP/IP sockets, object data base utilities, and a functions library.

Compilers: principles, techniques, development tools - (Russian resource) Collection of the links to sources and documentation related to the compiler development. Page not updated since May 2002.

DevKit Advance - Software Development Kit for the Nintendo™ Gameboy Advance™ based on GCC.

exmortis - (Russian resource, English available) collected a bunch of source texts & now one can find some of them here. But no warez, all copyrights reserved!

Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It uses the Qt toolkit, but is able to use any other toolkit that a module is written for.

Guido van Robot, or GvR for short, is a minimalistic programming language that provides just enough syntax to help students learn the concepts of sequencing, conditional branching, looping, and procedural abstraction. Its biggest strength is that it permits this learning in an environment that combines the thrill of problem-solving with instant visual feedback.

GNU Smalltalk is a free implementation of the Smalltalk-80 language which runs on most versions on Unix and, in general, everywhere you can find a POSIX-compliance library. An uncommon feature of it is that it is well-versed to scripting tasks and headless processing.

yellow bulletLet's Build a Compiler , by Jack Crenshaw - This fifteen-part series, written from 1988 to 1995, is a non-technical introduction to compiler construction. You can read the parts on-line or download them in a ZIP file. Another page of the same articles .

librep - an embeddable Lisp system that is lightweight, reasonably fast, and highly extensible

Io is small prototype-based programming language. It is a pure object language, and it features an incremental garbage collector, exceptions, light weight threads, and embeddability.

MLton Standard ML Compiler - MLton is a whole-program optimizing Standard ML compiler that runs on X86 machines with Linux, FreeBSD or Cygwin/Windows. MLton generates excellent code, has a fast C FFI, profiling, and many useful libraries. Send questions to This e-mail address is being protected from spam bots, you need JavaScript enabled to view it

Nemerle is a hybrid (functional, object-oriented and imperative) programming language for the .NET platform. The key features of the language include C#-like syntax, easy access to functional, object-oriented, and imperative features, powerful code-generating macros, variants, pattern matching, static and on-demand dynamic typing, and type inference.

Onyx is a powerful stack-based, multi-threaded, interpreted, general purpose programming language similar to PostScript and Forth. It can be embedded as an extension language into other applications, and was designed to have a small memory footprint. It is among the smallest embeddable interpreters available.

Optimizing Oberon-2 Compiler - OOC is an Oberon-2 development platform. It consists of an optimizing compiler, a number of related tools, a set of standard library modules, and a reference manual.

PATH is a unique programming language based on the Brainf*ck language. Unlike conventional programming languages which only read left-to-right, top-to-bottom, PATH programs go in all four directions.

programming languages at OpenDirectory - Open Directory - Computers: Programming: Languages.

Q is a powerful and extensible functional programming language based on the term rewriting calculus. When programming with Q, you specify a system of equations which the interpreter uses as rewrite rules to reduce expressions to normal form. Q is useful for scientific programming and other advanced applications, and also as a sophisticated kind of desktop calculator. The distribution includes the Q programming tools, a standard library, add-on modules for interfacing to various third-party libraries, and an Emacs mode.

RetroForth is a compact, open source FORTH-based development system. It can be used under DOS, Linux, or as an operating system. With the included tools, you can also leverage standard libraries like SDL and create tight, stand-alone applications.

sdlBasic is a simple cross-platform basic interpreter written in C for 2D games.

Simple Forth Interpreter is a Java implementation of a subset of the ANS Forth language. The goal of SFI is to develop a small interpreter to be embedded in any application and provide scripting functionality with low resources.

SP-Forth - ANSI Forth for Win32 (used to compile the following SF projects: acWEB, acFTP, acFreeProxy, Forth-Script)

Strannik - (Russian resource, English is available) The compiler Strannik was developed as the multilingual compiler. Strannik is convenient and the powerful tool for the programmer - professional. Compiler is freeware.

Visual Paradigm for UML is a powerful, easy-to-use UML modelling and CASE tool. It lets you draw all types of UML diagrams, reverse source code to UML models, generate source code from UML diagrams, and much more. It features the latest UML support (use case diagrams, class diagrams, component diagrams, etc.), incremental round-trip engineering, instant reverse for Java, C++, Dot NET exe/dll, XML, XML Schema, and CORBA IDL, Rational Rose support, Microsoft Visio integration, and report and HTML/PDF documentation generators.

Win32Forth is ANSI compatible, Forth language application development system with many tools; Interactive console, integrated extensible debugger, a GUI file editor with hypertext rendering. Hyperlinked source files allow easy exploring of the many files.

XBasic is an integrated software development environment including an advanced compiler, edit/run/debug environment, and interactive GuiDesigner.

Last Updated ( Wednesday, 12 March 2008 )
 
Next >

Newsflash

I (hopefully) have finally managed to start joomla! version of the site. As usual, many thanks to APlus.net support - they kindly pointed to a right direction in a few seconds on a very first help request.