Links:
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. Acovea/GTK Acovea/GTK is a GTK-based graphical front end for the Acovea (Analysis of Compiler Options via Evolutionary Algorithm) optimization engine. AePro a dependency maintenance tool for progres4gl. It is intended to be used in conjuction with aegis (aegis.sourceforge.net), a source code configuration tool. It (re)compiles progres4GL programs whose sourcecode has changed Apache Compile Kit tries to automagically compile your Apache with PHP for you Apache Toolbox provides a means to easily compile Apache with SSL, PHP (v4 or v3), MySQL, ZendOptimizer, mod_auth_nds, mod_dynvhost, WebDAV etc auto-recompile Auto-recompile is a small emacs add-on which allows you to fix compilation errors faster. It does this by continously compiling the program you are working on while you are fixing problems. It eliminates the need to explicitly start a compilation for every fix you make and manages your compilations and error-lists in the background so that all you have to do is go from error to error and fix them until the program compiles. AutoMap a tool designed to simplify the creation of MPI data-types Autotools Bootstrapper scans a package's Makefile.am and configure.in (or .ac) and creates a customized bourne shell script which can create the configure script with a single command BDiff a small utility to do what diff/patch pair does with text files. It handles binary files too bison a parser generator in the style of yacc Boomerang an attempt to develop a real decompiler for native executables through the open source community. A decompiler takes as input an executable file, and attempts to create a high level, compilable, possibly even maintainable source file that does the same thing BtYacc a modified version of yacc that supports automatic backtracking C Cod an experimental project that allows for a C source file to be "Compiled on Demand" prior to being executed. The source files are compiled and executed on the fly C-Breeze an infrastructure for building C compilers. It is written in C++, and consists of a set of classes for representing a C program as an abstract syntax tree (AST) C-Mix an automatic partial evaluator for the ISO/ANSI C language. It transforms generic programs into more efficient, specialized versions cachecc1 a gcc cache. It can be compared with the well known ccache. It uses a LD_PRELOADed shared object to catch invocations to cc1, cc1plus and as, transparently supports all build methods and can cache gcc bootstraps ccache a 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. This often results in a 5 to 10 times speedup in common compilations ccontrol The ccontrol program takes over the roles of the compiler and linker, and reads a configuration file to decide what to do before invoking them. This is particularly useful for centralized control over commands and options, such as enabling distcc and ccache. clo++ a command line parser generator. It reads a XML file describing the options that your program takes. It then will generate a C++ Class to parse those options from your command line Cocktail a compiler toolkit that supports all phases of compiler construction in providing generators for scanners, parsers, abstract syntax trees, attribute evaluators, traversers of syntax tree and back ends comfigure a comfortable wrapper for running configure scripts CompBenchmarks CompBenchmarks is a benchmarking environment for compilers. It provides a package for downloading, compiling, and evaluating some well-known C/C++ benchmarks and applications. Results are given in easily parseable plain text files that can be sent to the CompBenchmarks Web site. CParser to create a recursive descent parser for C99. The output from the parser should be a parse tree CScout CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (we define a project as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CxxTester which should free the programmer from writing unnecessary testframes for debugging and testing of C++ code Distributed Multi-User Compilation System DMUCS is a system that extends distcc to allow multiple users to do remote C/C++ compiles on a shared compilation farm. It monitors the load averages of the machines in the compilation farm so that the fastest machines will be assigned compilation tasks at all times. ebnf2yacc a tool to help write yacc parsers/compilers. It takes as input a grammar written in bnf (ebnf support is planned) and outputs a c++ abstract syntax tree that supports the visitor pattern, along with a yacc parser that builds the tree elfrc elfrc is a program which can turn arbitrary files into ELF object files which can then be linked into your program directly and accessed via simple, user-defined symbol names. Eli provides modern compiler construction facilities to users with a wide range of sophistication. It offers complete solutions for commonly-encountered language implementation subtasks and contains libraries of reusable specifications, making possible the production of high-quality implementations from simple problem descriptions EPP Interpreter a tool which supports the authoring and execution of EPP scripts using any BSF supported scripting language Flagpoll Flagpoll is a tool for developers to use meta-data files for storing information on what is needed to compile their software. Think of it as the rpm of software development. It provides developers with total control over which packages, versions, architectures, et cetera that they want to use meta-data from. Instead of specifying other packages' cflags and ldflag manually, you can call `flagpoll mylib --cflags --ldflags` and it will retrieve the flags for its package as well as its dependencies. Flex Flex is a fast lexical analyser generator. It is a tool for generating programs that perform pattern-matching on text. There are many applications for Flex, including writing compilers in conjunction with GNU Bison. GENTLE a modern toolkit for compiler writers and implementors of domain specific languages GetOpts GetOpts is a simple to use command line parser for C/C++/ObjC. gocache GNU Object Cache: a clone of ccache, with the goal of supporting other compilers than GCC and adding additional features Grammatica a C# and Java parser generator (compiler compiler). It improves upon simlar tools (like yacc and ANTLR) by creating well-commented and readable source code, by having automatic error recovery and detailed error messages, and by support for testing and debugging grammars without generating source code Group Enabled Cluster Compiler a tool to speed up compilation of C/C++ sources. It distributes the compilation on a cluster of compilation nodes. It also caches the object files to save some unneeded work Icecream/icecc Icecream is based on ideas and code from distcc. Like distcc, it takes compilation jobs from your (KDE) build and distributes it to remote machines, allowing a parallel build on several machines. Unlike distcc, Icecream uses a central server that schedules the compilation jobs to the fastest free server dynamically. Kconfigure a KDE program to compile the sources without the xterm or console Lemon a LALR(1) parser generator. It takes a context free grammar and converts it into a subroutine that will parse a file using that grammar. Lemon is similar to the much more famous programs LLnextgen LLnextgen is a (partial) reimplementation of the LLgen Extended-LL(1) parser generator that is part of the Amsterdam Compiler Kit (ACK). It takes an EBNF-like description of the grammar with associated semantic actions in C as input, and generates C code. The generated code is strict ANSI C, so it should compile with all current C compilers. Mini-libc Builder contains a series of Perl scripts and other tools that can be used to rebuild libc.so, the major piece of glibc, such that it contains only the objects needed to support a selected set of applications NanoXML a very small (5KB!) XML parser for Java olex a parser generator for C++ in C++ Open64 Compiler Tools Open64 is a suite of optimizing compiler development tools for Intel Itanium(TM) systems running Linux. The Open64 project is the continuation of the SGI Pro64(TM) compiler suite which was released under the GNU General Public License (GPL). The Open64 compiler suite currently includes compilers for C, C++, and Fortran90/95 compilers for the IA-64 Linux ABI and API standards. OpenZz an interpreted dynamic parser which is well suited to rapid development of parsing solutions, starting from rapid language prototyping to full fledged compilers OPTIMIX an optimizer generator. It can be used to generate program analyses and transformations PCYACC (commercial) a complete Language Development Environment that generates C, C++, Java, Delphi, and VBS source code from input Language Description Grammars for building Assemblers, Compilers, Interpreters, Browsers, Page Description Languages, Language Translators, Syntax Directed Editors, Language Validators, Natural Language Processors, Expert System Shells, and Query languages PRECCX A PREttier Compiler-Compiler: an infinite-lookahead compiler-compiler for context dependent grammars PyPaSax uses the python parser to generate Sax2 events, and thus enable to visualize the python document as a XML tree R2cl R2cl is a minimal, proof of concept translator from the R or S language into Common Lisp. An increase in speed of over 1000 times can then be achieved using the free CMU Common Lisp native code compiler on the resulting code, making it comparable to FORTRAN, Ada or C. Rapier RDF Parser The RDF parser for Redland (RDF Parser for Redland - RaPieR) and is designed to integrate with it closely. re2c a tool for writing fast and flexible lexers that is in the order of 2-3 times faster than a flex based scanner, and its input model is much more flexible SDPXML a general-purpose XML parser in C++, using a Flex-generated scanner SHACC Shaggy's Homebrew Alternative Compiler Compiler: a replacement for YACC which supports most of the YACC syntax but isn't limited to one token of lookahead styx a scanner/parser generator designed to address some shortcomings of the traditional lex/yacc combination SYNTAX a set of tools whose first aim is to ease the design and the implementation of the front-end part of translators The bintrans Dynamic Binary Translator a dynamic binary translator. That means it runs programs on architectures they were not compiled for Thinkage YAY (shareware) a package that generates software to parse text input xflat eXtended FLAT (XFLAT) is a binary format that will support dynamic shared libraries on MMU-less Linux (uClinux) platforms. XFLAT is a mature suite of development tools including compiler, linker, loader, dynamic loader and support tools. XIST an XML based extensible HTML generator written in Python. XIST is also a DOM parser (built on top of SAX2) with a very simple and pythonesque tree API yagg given YACC-like and LEX-like input files, generates a C++ program that generates all strings of a user-specified length yappy provides a lexical analyser and a LR parser generator for Python applications. Currently it builds SLR, LR(1) and LALR(1) parsing tables. Tables are kept in Python shelves for use in parsing YPlayer YPlayer is a teaching and debugging tool to aid in the study of language parsing and the construction of language parsers.