[174 total ]
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).
Python is a dynamic, object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in
... [More]
a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of better code. [Less]
Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, extensible, and portable.
MinGW: import libraries and header files for use with GCC to build native Windows applications; now with added extensions to the MSVC runtime to support C99 functionality.
Haskell is an advanced purely functional programming language. The product of more than twenty years of cutting edge research, it allows rapid development of robust, concise, correct software. With strong support for integration with other languages
... [More]
, built-in concurrency, debuggers, profilers, rich libraries and an active community, Haskell makes it easier to produce flexible, maintainable high-quality software.
GHC is a state-of-the-art, open source, compiler and interactive environment for Haskell. [Less]
SCons is a software construction tool (build tool substitute for Make) implemented in Python. It features a modular build engine that can be embedded in other software. SCons configuration files are Python scripts that call the build engine API. It
... [More]
can scan files to detect dependencies automatically and maintain a global view of all dependencies in a build tree, and uses MD5 signatures to detect changed file contents reliably. Timestamps can be used if you prefer. SCons also supports parallel builds and is easily extensible through user-defined builder and scanner objects. [Less]
Lua is a powerful, fast, light-weight, embeddable scripting language.
Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by
... [More]
interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. [Less]
Flex a tool for generating text scanners in C. The input file read by Flex specifies a set of rules (code to be executed when a pattern is found) which describe the scanner to be generated. The output of Flex is a C source file which can be compiled
... [More]
and linked with your sources, giving to your executable the scanning capabilities tailored to your needs.
Generally, Flex is used in combination with a parser generator, like Bison. [Less]
Code::Blocks is a free, open source, and cross platform IDE. It is being developed in C++ using wxWidgets. Using a plugin architecture, its capabilities and features are defined by the provided plugins.
Code::Blocks is being developed under Windows and Linux. Users have successfully built Code::Blocks under FreeBSD and under Mac OS X.
Steel Bank Common Lisp, aka SBCL, is an open source compiler and runtime system for ANSI Common Lisp. It provides an interactive environment including an integrated native compiler, a debugger, and many extensions.
JRuby is an 100% pure-Java implementation of the Ruby programming language.
JRuby is the effort to recreate the Ruby interpreter in Java. JRuby is tightly integrated with Java to allow both to script any Java class and to embed the interpreter into any Java application.
Parrot is the virtual machine (VM) that will run Perl 6. Its register-based design with object oriented internal types is optimized for the needs of dynamic languages such as Perl 6, PHP, Python, Ruby, JavaScript, Lisp, Lua, Tcl, ... . This
... [More]
differentiates it from other VMs such as Java's JVM and .NET's CLR which are stack-based and primarily aimed at static languages. [Less]
A wrist-friendly language targeting the Common Language Runtime (.NET / Mono) with an extensible compiler pipeline, a syntax reminiscent of Python, and many other features (like type inference, syntactic macros, etc.)
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations of all sorts, including those that require extensive interprocedural analysis. LLVM is also a great target for front-end
... [More]
development for conventional or research programming languages, including those which require compile-time, link-time, or run-time optimization for effective implementation, proper tail calls or garbage collection. We have an incomplete list of projects which have used LLVM for various purposes, showing that you can get up-and-running quickly with LLVM, giving time to do interesting things, even if you only have a semester in a University course. We also have a list of ideas for projects in LLVM. [Less]
ANother Tool for Language Recognition (ANTLR) is the name of a parser generator that uses LL(k) parsing. ANTLR is the successor to the Purdue Compiler Construction Tool Set (PCCTS), first developed in 1989, and is under active development. Its maintainer is professor Terence Parr of the University of San Francisco.
GNU CLISP is an ANSI Common Lisp implementation with an interpreter, compiler, debugger, object system (CLOS, MOP), sockets, fast bignums, arbitrary precision floats, and foreign language interface which runs on most UNIXes and Win32.
Cross platform input system designed for use with HID devices (mice, joysticks, keyboards, et al). Currently supported platforms include: Linux & Win32 (and partially OSX).
Rubinius is an execution environment for the Ruby programming language. It is comprised of three major pieces: a compiler, a 'kernel' (otherwise known as the Ruby Core Library), and a virtual machine. The project's goal is to create a top-of-the-line Ruby implementation.
Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.
Caml is a general-purpose programming language, designed with program safety and reliability in mind. It is very expressive, yet easy to learn and use. Caml supports functional, imperative, and object-oriented programming styles. It has been
... [More]
developed and distributed by INRIA, France's national research institute for computer science, since 1985.
The Objective Caml system is the main implementation of the Caml language. It features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development. [Less]
Jython is a Java implementation of the Python programming language. It allows users to compile Python source code to Java byte codes, and run the resulting bytecodes on any Java Virtual Machine. It is a very seamless and smooth integration with Java:
... [More]
from Python you have complete access to all Java libraries, can build applets, can integrate with Java beans, and can subclass Java classes in Python and vice versa. Like Python, and unlike Java, Jython can also be used interactively: just type some Jython code at the prompt and see the results immediately. [Less]
The PyPy project aims at producing a flexible and fast Python implementation. The guiding idea is to translate a Python-level description of the Python language itself to lower level languages. Rumors have it that the secret goal is being faster-than-C which is nonsense, isn't it?
GDC is a D language front end for the GNU Compiler Collection. It supports a number of targets and nearly all features of Digital Mars D.
ikiwiki is a wiki compiler. It converts wiki pages into html pages suitable for publishing on a website.
EiffelStudio is an IDE for the Eiffel language (ECMA-367, ISO/IEC 25436, and ACM Software System Award 2006).
It includes:
* an Eiffel compiler
* a GUI editor
* a code browsing tool
* a diagram editor with round-trip,
* a refactoring tool
*
... [More]
a debugger
* a profiler
* Eiffel analysis tools (Metrics, Dependencies, etc.).
Eiffel generates C or CLI for .NET or Mono. Eiffel applies O-O principles and Design by Contract for high-quality software.
Many Eiffel libraries are included: ADT, network, GUI, database, parsing (including an Eiffel parser), XML, Web, COM, and more. [Less]
The goal of this work is to provide a high quality front-end for LLVM that is built with the same principles as the rest of LLVM (it is built as a set of reusable libraries, integrates well with rest of the LLVM architecture, same license, etc).
... [More]
Among other things, this means that LLVM can now be used for a variety source-level analysis and transformation tasks that it was not suitable for before. [Less]
Squeak is a modern, open source full-featured implementation of the powerful Smalltalk programming language and environment. Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyze, and
... [More]
change. Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development. [Less]
Sparse, the semantic parser, provides a compiler frontend capable of parsing most of ANSI C as well as many GCC extensions, and a collection of sample compiler backends, including a static analyzer also called "sparse". Sparse provides a set of
... [More]
annotations designed to convey semantic information about types, such as what address space pointers point to, or what locks a function acquires or releases. [Less]
See http://www.ohloh.com/projects/3311. This is only the compiler source, to avoid skewing the stats because of imported header conversions.
NASM is an 80x86 assembler designed for portability and modularity. It supports a range of object file formats including Linux a.out and ELF, COFF, Microsoft 16-bit OBJ and Win32. It will also output plain binary files. Its syntax is designed to be
... [More]
simple and easy to understand, similar to Intel's but less complex. It supports Pentium, P6, MMX, 3DNow! and SSE opcodes, and has macro capability. It includes a disassembler as well. [Less]