Semantic search
This entry published by the Free Software Foundation.
4tH 4tH 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 about 95% of the ANS Forth CORE wordset and features conditional compilation, pipes, files, assertions, forward declarations, enumerations, structures, suspended execution, recursion, include files, etc. It comes with an RPN calculator, line editor, preprocessor, compiler, decompiler, C-source generator, a virtual machine, and a multitasking environment.
Acovea ACOVEA (Analysis of Compiler Optimizations via an Evolutionary Algorithm) implements a genetic algorithm to find the "best" options for compiling programs with the GCC C and C++ compilers. "Best" is defined as those options that produce the fastest executable program from a given source code. Acovea can also be extended to test other programming languages and non-GCC compilers.
BigFORTH bigFORTH is a native code Forth for x86 processors. It is 32 bit and complies fully with ANS Forth. Tools include a multitasker; source-able decompiler; source level debugger (even using optimized macros) with single step and trace, and as many breakpoints as you want; post mortem dump and return stack trace; and a Pentium-MMX-assembler/disassembler. MINOS is a portable GUI library, written in object oriented Forth, and includes the GUI development editor Theseus. It is on a separate release schedule from bigFORTH; 0.9.8 beta of MINOS was released 2002-06-23.
Binutils
Includes tools capable of creating and managing binary program files, including handling object files, libraries, profile data, and assembly source code.
Boehm garbage collector A conservative garbage collector which can be used as a garbage collecting replacement for C malloc or C++ new and as a malloc leak detector.
CMUCL CMUCL is a free, high performance implementation of the Common Lisp programming language which runs on most major Unix platforms. It mainly conforms to the ANSI Common Lisp standard. CMUCL provides a sophisticated native code compiler; a powerful foreign function interface; an implementation of CLOS, the Common Lisp Object System; which includes multimethods and a metaobject protocol; a source-level debugger and code profiler; and an Emacs-like editor implemented in Common Lisp.
COBOL for gcc
The Cobol for GCC project is an effort to create a free Cobol compiler, compliant with the Cobol 85 standard, that will be integrated into the GNU Complier Collection (GCC). The project is not yet finished. Current status is that roughly 73,000 lines of code have been written since March 1999. The following tasks have already been done:
- All COBOL preprocesing (COPY,REPLACE, line continuations, etc.) (done and tested)
- Parsing and lexical analysis for the COBOL nucleus
- Integration into GCC (including integration into the GCC code generation back end)
- Some runtime routines
Some code has been generated via the GCC back end, including most of the data division. Approximately 7,000 lines of code remain to be written.
CP: Cerebral Procreation CP (Cerebral Procreation) is a BF (BrainF***) interpreter and compiler. It is different from other compilers in that instead of trying to understand the BF code, it simply transfers it to Perl code, which it then evaluates using the handy eval() function. It can also translate to C code, for easy compilation into a stand-alone binary.
Ccache 'Ccache' is a fast compiler cache. It acts as a caching pre-processor to C/C++ compilers, using the -E compiler switch and a hash to detect when a compilation can be satisfied from cache. When the same code is compiled again the cached output is used, giving a significant speedup (typically 5x). You can also create symbolic links from your compiler's name to ccache; this lets you use ccache without any changes to your build system. 'Ccache' produces the same output that the real compiler would, including the same object files and compiler warnings that the real compiler would produce. The only way to tell you are using ccache is the speed.
Chicken CHICKEN is a simple Scheme-to-C compiler supporting the language features as defined in the 'Revised^5 Report on Scheme'. It supports full tail-recursion and first-class continuations. The code it generates is quite portable; compiled files generated by it (including itself) should work with either no or minor changes on other systems. Linking to C modules and C library functions is straightforward, and compiled programs can easily be embedded into existing C code. The package includes many extra libraries.
Cim
GNU cim offers a class concept, separate compilation with full type checking, interface to external C routines, an application package for process simulation and a coroutine concept. The portability of the GNU Simula Compiler is based on the C programming language. The compiler and the run-time system is written in C, and the compiler produces C code, that is passed to a C compiler for further processing towards machine code.
Clisp
ANSI Common Lisp is a high-level, general-purpose programming language. GNU CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe University and Michael Stoll of Munich University, both in Germany. It mostly supports the Lisp described in the ANSI Common Lisp standard. It runs on most GNU and Unix systems (GNU/Linux, GNU/Hurd, FreeBSD, NetBSD, OpenBSD, Solaris, Tru64, HP-UX, BeOS, IRIX, AIX, Mac OS X and others) and on other systems and needs only 4 MB of RAM. The user interface comes in English, German, French, Spanish, Dutch, Russian and Danish, and can be changed during run time. GNU CLISP includes an interpreter, a compiler, a debugger, CLOS, MOP, a foreign language interface, a socket interface, i18n, fast bignums, arbitrary precision floats and more. An X11 interface is available through CLX, Garnet, CLUE/CLIO. GNU CLISP runs Maxima, ACL2 and many other Common Lisp packages.
Compilercache 'Compilercache' is a wrapperscript around your C and C++ compilers. Each time you compile something, it puts the result into a cache. If you compile the same thing again, the result will be picked from the cache instead of being recompiled. The same applies if you change your compiler options: the old compilation is picked up from the cache, which speeds things up considerably. No Makefiles, no cleaning up dependencies, and no recompilation if you switch compiler options. Additionally, if you download an updated version of a package already on your system and compile it using compilercache, only the changed sources will be recompiled.
Cpphs 'cpphs' is a simplified Haskell re-implementation of cpp, the C pre-processor, in Haskell. The C pre-processor is widely used in Haskell source code, but a true cpp is not often available on some systems, and the common cpp provided by the gcc 3.x series is changing in ways that are incompatible with Haskell's syntax. This includes problems with, for instance, string gaps, and prime characters in identifiers. This project attempts to provide an alternative to cpp that is more compatible with Haskell and can be distributed with compilers.
Distcc 'distcc' distributes compilation of C or C++ code across several machines on a network. It should always generate the same results as a local compile, is simple to install and use, and is often significantly faster than a local compile. 'distcc' does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. Machines can be running different operating systems, as long as they have compatible binary formats or cross-compilers. 'distcc' sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed.
Dparser 'DParser' is a scannerless GLR parser generator based on the Tomita algorithm. It is self-hosted and very easy to use. Grammars are written in a natural style of EBNF and regular expressions and support both speculative and final actions.
Eli Eli is a domain-specific programming environment formed by combining a collection of tools that implement powerful compiler construction strategies. In this environment, you can automatically generate complete language implementations from application-oriented specifications. Implementations can be either interpretive and used to invoke the operations of an existing system, or involve translation into an arbitrary target language. Eli has been used to produce translators, program generators, analysers, and interpreters. The user describes the problems that must besolved, and Eli automatically employs the tools and components needed for particular problem.
Emacs Common Lisp Emacs Common Lisp is an implementation of Common Lisp, written in Emacs Lisp. The implementation provides a Common Lisp environment, separate from Emacs Lisp, running in Emacs. It does not intend to extend Emacs Lisp with Common Lisp functionality; however, Emacs Lisp functions can call Common Lisp functions and vice versa.
F2c Fortran 77 compiler based on the original Unix f77 compiler, with the backend replaced by a C code generator.
Free Pascal Compiler FreePascal (aka FPK Pascal) is a 32 bit Pascal compiler with extensions for different processors and operating systems. It tries to stay compatible with the dialects of well known proprietary Pascal-based compilers, so you don't have to learn much to switch to free software and/or systems. The language syntax is semantically compatible with TP 7.0 as well as most versions of Delphi (classes, rtti, exceptions, ansistrings). FreePascal supports function overloading, operator overloading and other such features. It also comes with several command-line tools to help your programming, including a source formatter, a makefile generator, a C header translator, a unit dependency lister and even TP lex and yacc. FreePascal comes with its own development environment (not for all platforms yet).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page. Any software described in this text has its own copyright notice and license, which can usually be found in the distribution itself.
