13 projects tagged "Compilers"
Ciao is a complete Prolog system subsuming ISO-Prolog with a novel modular design which allows both restricting and extending the language. Ciao extensions currently include feature terms (records), higher-order, functions, constraints, objects, persistent predicates, a good base for distributed execution (agents), and concurrency. Libraries also support WWW programming, sockets, and external interfaces (C, Java, TCL/Tk, relational databases, etc.). An Emacs-based environment, a stand-alone compiler, and a toplevel shell are also provided.
Kelly is a JBuilder 4 & 5 plugin that makes it easy to deploy EJBs to JOnAS 2.x. Kelly can be installed and run with other JBuilder 4 & 5 plugins such as BEA WebLogicServer 5.1, BEA WLS 6, IBM WebSphere 3.5, Borland AS 4.5, etc. Kelly provides services to Jbuilder 4 & 5 java developers such as the ability to create any XML deployment files required by JOnAS 2.x, hot loading and unloading of any EJBs to JOnAS (only for JBuilder 5), control of JOnAS start-up from JBuilder 4 & 5, and the supply of JOnAS word dictionaries to JBuilder 4 & 5 in order to enhance the JBuilder 4 & 5 text completion services.
Sparse is a semantic parser of source files. It's neither a compiler (although it could be used as a front-end for one) nor a preprocessor (although it contains a preprocessing phase). It is meant to be a small, simple, easy to use library. Its function is to create a semantic parse tree for some arbitrary user for further analysis. It's not a tokenizer, nor is it a generic context-free parser. Context (semantics) is what it's all about: figuring out not just what the grouping of tokens are, but what the types are that the grouping implies.
Ccide reads C, C++, BASIC, or bash source code containing embedded decision tables from stdin, expands the tables, copies the remaining statements, and forms a compilable C or C++ source module, executable bash script, or interpretable BASIC program. Erratic side effects are avoided by evaluating all condition expressions at exactly the same time, and by performing all evaluations and actions in the original sequence.
Oink is a collaboration of backends for the Elsa C and C++ frontend. It aims to be industrial-strength for immediate utility in finding bugs, extensible for ease in adding backends, and composable for ease in combining existing ones. It computes expression-level and type-level data flow, and statement-level intra-procedural control flow (by delegating to Elsa). It's easy to get started by using the two demo backends that print graphs of these flows. It also comes with a client of the data flow analysis that does type qualifier inference: Cqual++, a C/C++ frontend for Cqual. Whole-program analyses may be attempted using the linker imitator.
cstor is a cross-reference compiler and reverse engineering tool. It compiles one text file (database) from multiple source modules (currently reads C, C++, and Perl). The tool combines reverse engineering capabilities, code validation, and an HTML documentation generator. The database can then be reused from own scripts and programs, e.g. to implement cross-compilers, validate coding conventions, build statistics etc. The builtin documentation generators are actually an application of the database.