23 projects tagged "BSD Original"
The ANTLR ANSI C and GCC source to source translation framework includes an ANSI-C parser which builds trees, a GCC parser which builds trees, a GCC tree parser (for you to subclass to do transformations), and a GCC tree emitter. The GCC parser is only for GCC's extensions to C, not C++. It is based on GCC 2.95.2.
Gwydion Dylan is a portable, optimizing Dylan compiler written in Dylan. It was originally written by the Gwydion Group at CMU and is now maintained by volunteers. Eventually, Gwydion Dylan is meant to become a top-notch tool for building complicated applications. Dylan is a dynamic, object-oriented language with four design goals: high performance, rapid prototyping, ease of use, and seamless support for using libraries written in C. Ports of Gwydion Dylan are available for many platforms.
MLton is a whole-program optimizing Standard ML compiler. It generates standalone executables with excellent runtime performance, supports the full SML 97 language, and has a complete basis library. It also has a fast C FFI, source-level time and allocation profiling, and many useful libraries.
sml/nj (Standard ML of New Jersey) consists of a compiler, compilation manager, and libraries for Standard ML. Included are CML (Concurrent ML) and eXene (a toolkit for X based on CML). The compiler produces efficient code for most popular architectures (Intel x86, Sparc, Alpha, Mips, HP-PA, PowerPC) and runs under Unix, Linux, or Windows (95,98,NT).
The Glasgow Haskell Compiler is a robust, fully-featured, optimising compiler for the functional programming language Haskell. GHC compiles Haskell to either native code or C. It implements numerous experimental language extensions to Haskell for example concurrency, a foreign language interface, several type-system extensions, exceptions, and so on. GHC comes with a generational garbage collector, a space and time profiler, and a comprehensive set of libraries.
Knit is a new component definition and linking language that can be used with C and assembly code. Knit supports component definitions that require little or no modification to existing code. It automatically schedules component initializers and finalizers and provides an extensible constraint system to detect subtle errors in component composition. Knit provides cross-module inlining that largely eliminates the overheads of componentization, supports component hierarchies, and supports cyclic component dependencies. Knit can be used for any C program, but is especially well suited for use in systems that have many separate components, multiple implementations of the same component, intricate initialization requirements, complex component interdependencies, low-level code and embedded systems, or code that is used in radically different configurations.
Steel Bank Common Lisp is a development environment for Common Lisp, with excellent support for the ANSI standard: garbage collection, lexical closures, powerful macros, strong dynamic typing, incremental compilation, and the famous Common Lisp Object System (multimethods and all). It also includes many extensions, such as native threads, socket support, a statistical profiler, programmable streams, and more. These are all available through an integrated, interactive native compiler which feels like an interpreter. SBCL is unique in being a multiplatform native compiler which bootstraps itself completely from source, using a C compiler and any other ANSI Common Lisp implementation.
The cutils collection is composed of: cdecl and cundecl (decode and encode C type declarations), cobfusc (make a C source file unreadable but compilable), chilight (highlight C source files), cunloop (unloop C loops), yyextract (extract grammar rules from yacc grammar), and yyref (generate a cross-reference for yacc input).
hp48cc is a C-like compiler that translates input code into the HP48 RPN language. The language recognized by the compiler is only a small subset of the C language with some non-standard extensions. However, this language is powerful enough be used to to write complex programs simply.