- Incremental compiler
compilerfor a programming languageis a piece of software that reads in one or more program files in a source language and outputs one or more files containing machine codeor 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 codecan 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. Compare dynamic 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 language POP-11and its predecessor POP-2)
*some versions of
Steel Bank Common Lisp
Carnegie Mellon University Common Lisp
Franz Allegro Common Lisp
*some versions of
Sociaal-Wetenschappelijke Informatica Prolog
*versions of the
ML programming language:
Standard ML of New Jersey( Bell Labs' headquarters resides in New Jersey)
*Java incremental compiler:
**Eclipse Java Compiler
Forth (programming language)
* [http://www.editgrid.com/user/ken/HISTORY_OF_SPREADSHEETS Works Records System at
Imperial Chemical Industriesin 1974]
Wikimedia Foundation. 2010.