- C--
Infobox programming language
name = C--
paradigm = imperative
year = 1997
typing = static, weak
designer =Simon Peyton Jones and Norman Ramsey
influenced_by = CC-- is a C-like
programming language . Its creators,functional programming researchersSimon Peyton Jones and Norman Ramsey, designed it to be generated mainly bycompiler s for very high-level languages rather than written by human programmers. Unlike many otherintermediate language s, its representation is plain text, notbytecode or another binary format.C-- is a "portable
assembly language ", designed to greatly ease the task of implementing a compiler which produces high-quality machine code by having the compiler generate C-- code, delegating the harder work of low-level code generation and optimisation to a C-- compiler.Work on C-- began in the late 1990s. Since writing a custom code generator is a daunting challenge in itself, and the compiler back ends available to researchers at that time were complex and poorly documented, several projects had written compilers which generated C code (for instance, the original
Modula-3 compiler). However, C is a poor choice for functional languages: it does not supporttail recursion , accurate garbage collection or efficientexception handling . C-- is a simpler, tightly-defined alternative to C which does support all of these things. Its most innovative feature is a run-time interface which allows writing of portable garbage collectors, exception handling systems and other run-time features which work with any C-- compiler.The language's syntax borrows heavily from C. It omits or changes standard C features such as
variadic function s,pointer syntax , and aspects of C'stype system , because they hamper certain essential features of C-- and the ease with whichcode-generation tools can produce it.The name of the language is an in-joke, indicating that C-- is a reduced form of C, in the same way that
C++ is basically an expanded form of C. (In C and C++, "--" and "++" are operators meaning "subtract 1 from" and "add 1 to".)C-- is a target platform for the
Glasgow Haskell Compiler , and will eventually become the main platform. Some of C--'s developers, includingSimon Peyton Jones , also work on the Glasgow Haskell Compiler. The codebase and development are based atMicrosoft Research inCambridge , though it is not aMicrosoft project.Sphinx C--
The name "C--" was also used for an earlier programming language developed in the 1990s by Peter Cellik for x86 computers. [http://c--sphinx.narod.ru/indexe.htm Sphinx C--] mixes C with x86 assembly language.
See also
*
BCPL
*Low Level Virtual Machine External links
* [http://www.cminusminus.org/ The C-- website.]
Wikimedia Foundation. 2010.