- Incremental compiler
Generally a
compiler for aprogramming language is a piece of software that reads in one or more program files in a source language and outputs one or more files containingmachine code or some other low level language. Those files then go through additional processes to produce a running program. When a program compiled in that way is run, the compiler is no longer required. This is sometimes referred to as a 'batch compiler', because a batch of files can be compiled to form a complete program before anything starts running.In contrast, an incremental compiler is part of a "running" program that uses that compiler. This allows new program items to be compiled at any time, either extending the previously compiled programs or replacing some parts of the program.
Because an incremental compiler is part of the runtime system,
source code can be read in at any time, from the terminal, from a file, or possibly from a data-structure constructed by the running program, and translated into a machine code block or function (which may replace a previous function of the same name), and the newly compiled program fragment is then immediately available for use by the running system. Comparedynamic compilation , a technique which postpones compilation until optimisations can be done.Because of the need for speed of compilation during interactive development and testing the compiled code is likely not to be as heavily optimised as code produced by a standard 'batch compiler', which reads in source code and produces object files that can subsequently be linked and run. However there are counterexamples to this rule.
ystems that use incremental compilation
*
Poplog (its core languagePOP-11 and its predecessorPOP-2 )
*some versions ofLISP :
**Steel Bank Common Lisp
**Carnegie Mellon University Common Lisp
**GNU CLISP
**Franz Allegro Common Lisp
*some versions ofProlog :
**Sociaal-Wetenschappelijke Informatica Prolog
*versions of theML programming language :
**Standard ML of New Jersey (Bell Labs ' headquarters resides inNew Jersey )
**Poplog ML
*Java incremental compiler:
**Eclipse Java Compiler
*Forth (programming language) ee also
*
Compiler
*InterpreterExternal links
* [http://www.editgrid.com/user/ken/HISTORY_OF_SPREADSHEETS Works Records System at
Imperial Chemical Industries in 1974]
Wikimedia Foundation. 2010.