Scripting with C
While we generally think of C as the prototype industrial language -- hard-edged, high-performance, and dangerous -- numerous projects have attempted to wrap C in a more amiable package. Some were developed more than 20 years ago. Among the survivors still in production are:
- CINT
- EiC
- ElastiC
- ICI
- LPC
- Pike
Our survey excludes interpreters not generally available for Unix systems (such as QNC and Think C), those with limited interactivity (the UPS C interpreter), and interpreters that are moribund. We found software product catalogs listing C interpreters that have been orphaned for several years, but all the following systems are in active development.
CINT
"CINT covers about 95 percent of ANSI C and 85 percent of C++," including its own source code, according to CINT's homepage. CERN, the same international physics laboratory that employed Tim Berners-Lee as he designed the original World Wide Web, currently sponsors CINT.
Masaharu Goto wrote CINT in 1991 while employed by Hewlett-Packard Japan. Now an engineer with Agilent, HP's original testing and measurement business, which HP spun off late last year, he continues his development of CINT.
In 1995, Rene Brun and Fons Rademakers launched the ROOT project at CERN to introduce physicists quickly to the new world of Objects and C++ and to improve their productivity with large-scale data analysis and simulation. After comparison with candidates such as Tcl/Tk and Python, Rademakers and Brun selected CINT in 1996 for ROOT. Like CINT, ROOT is an open source project. CERN uses ROOT to structure analysis of the output from, as Bruns explains, "large Hadron Collider (LHC) experiments that will generate about ten petabytes of data per year in 2005. ROOT is being used in several hundred [particle physics] labs in the world and also in many nonscientific applications that have to analyze very large amounts of data." Finance is one area outside physics where CINT is known to be in production.
ROOT's sponsorship has encouraged CINT to support more of the C++ standard as well as extended runtime-type information, templates, and the robustness essential for interactive operation. "The next phase starting this fall will see major extensions to provide a parallel and distributed data analysis environment in the context of GRID projects both in Europe and in the US," Brun concludes.
CINT is available for most Unixes as well as Win NT. Among interesting recent CINT developments is RDBS, which interfaces to ODBC the way JDBC does.
EiC
"EiC is designed to be a production tool...one of the most complete, freely available C interpreters built to date," writes Edmond J. Breen on the EiC homepage. He's been largely successful: EiC is even getting favorable mention in publications such as Linux Magazine.
Breen designed EiC for easy portability and flexibility between interactive, batch, and embedded applications. EiC includes packaging mechanisms that simplify deployment and convenient mechanisms for interfacing foreign functions. Working programmers welcome its good diagnostics for array violations and other exceptions.
Furthermore, EiC is quite portable. Versions are available for all common platforms, including a recent port to the EPOC-based Psion handhelds.
Essential JavaFX
Get started building rich Web apps quickly with an introduction to the power of JavaFX key features -- scene node graphs, nodes as components, the coordinate system, layout options, colors and gradients, custom classes with inheritance, animation, binding, and event handlers.Enter now!
The Nomadic Developer
Consulting can be hugely rewarding, but it's easy to fail if you are unprepared. To succeed, you need a mentor who knows the lay of the land. Aaron Erickson is your mentor, and this is your guidebook. Enter now!












