AMPC compiles C programs directly into Java bytecode to run on any platform where a Java runtime is available. AMPC can also be used to integrate C and Java programs since AMPC's C functions can directly call numerous Java methods and vice versa. AMPC supports ANSI C 1989 (ISO C 1990). A JNI (JVM Native Interface) feature is available for calling native C or C++ functions. AMPC supports the C standard library as well as TCP/IP, ODBC, and graphics libraries. J2ME CDC 1.1 for mobile devices is also supported.
BMDFM allows one to run an application in parallel on shared memory multiprocessor (SMP) systems. BMDFM automatically identifies and executes all parallelism of unparallelized programs due to the static and mainly dynamic scheduling of the data flow instruction sequences derived from the formerly sequential program. BMDFM's dynamic scheduling subsystem performs an efficient SMP emulation of Tagged-Token DFM to provide the transparent dataflow semantics for the applications. No directives for parallel execution are required. No highly knowledgeable parallel programmers are required.
Unified Parallel C (UPC) is an extension of the C programming language designed for high performance computing on large-scale parallel machines. The language provides a uniform programming model for both shared and distributed memory hardware. The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor. UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor. Berkeley UPC provides a portable, high-performance compiler for developing UPC software on systems ranging from clusters to custom supercomputers and even laptop-grade systems.
Brook for GPUs is a compiler and runtime implementation of the Brook stream programming language for modern graphics hardware. The goals for this project are to demonstrate general purpose programing on GPUs, to provide a useful tool for developers who want to run applications on GPUs, and to research the stream language programming model, streaming applications, and system implementations.
Build Interceptor captures the .i files of any project while it is built from source using the gcc toolchain. Anyone who has tried this on a large scale will find out that it is non-trivial to build a project from source and obtain the .i files generated during the build process. Step-by-step instructions are given on how to use the provided scripts to do this without any modification to the build process of the project you are trying to capture. These scripts were used to capture the build process of 92.5% of the projects in the Red Hat Linux 7.3 distribution.
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).