Incremental compiler

Generally a compiler for a programming language is a piece of software that reads in one or more program files in a source language and outputs one or more files containing machine 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. 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-11 and its predecessor POP-2)
*some versions of LISP:
**Steel Bank Common Lisp
**Carnegie Mellon University Common Lisp
**GNU CLISP
**Franz Allegro Common Lisp
*some versions of Prolog:
**Sociaal-Wetenschappelijke Informatica Prolog
*versions of the ML programming language:
**Standard ML of New Jersey (Bell Labs' headquarters resides in New Jersey)
**Poplog ML
*Java incremental compiler:
**Eclipse Java Compiler
*Forth (programming language)

ee also

*Compiler
*Interpreter

External links

* [http://www.editgrid.com/user/ken/HISTORY_OF_SPREADSHEETS Works Records System at Imperial Chemical Industries in 1974]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • incremental compiler — prieauginis kompiliatorius statusas T sritis informatika apibrėžtis ↑Kompiliatorius, kuris kompiliuodamas naują programos versiją panaudoja jo paties padarytą ankstesnės versijos kompiliaciją, o iš naujo kompiliuoja tik naujus programos modulius… …   Enciklopedinis kompiuterijos žodynas

  • Java compiler — A Java compiler is a compiler for the Java programming language. The most common form of output from a Java compiler are Java class files containing platform neutral Java bytecode. There exist also compilers emitting optimized native machine code …   Wikipedia

  • Watcom C/C++ compiler — Open Watcom Original author(s) Watcom Sybase SciTech Software Developer(s) Open community Initial release January 8, 2003 …   Wikipedia

  • Functional compiler — External links= A functional compiler is a compiler for a functional programming language. Functional compilers perform such transformation on source code which transform it to continuation passing style or administrative normal form and need to… …   Wikipedia

  • Dynamic compilation — is a process used by some programming language implementations to gain performance during program execution. Although the technique originated in the Self programming language,[citation needed] the best known language that uses this technique is… …   Wikipedia

  • OCaml — Paradigm(s) multi paradigm: imperative, functional, object oriented Appeared in 1996 Developer INRIA Stable release 3.12.1 (July 4, 2011; 4 months ago ( …   Wikipedia

  • Ikarus (Scheme implementation) — Infobox Software name = Ikarus Scheme caption = author = developer = Abdulaziz Ghuloum released = Oct 31, 2007 latest release version = 0.0.3 latest release date = Release date and age|2008|02|02 latest preview version = latest preview date =… …   Wikipedia

  • Objective Caml — Infobox programming language name = Objective Caml paradigm = multi paradigm: imperative, functional, object oriented developer = INRIA latest release version = 3.10.2 latest release date = Release date and age|2008|02|29 operating system = Cross …   Wikipedia

  • Michigan Terminal System — (MTS) The MTS welcome screen as seen through a 3270 terminal emulator. Company / developer University of Michigan and 7 other universities in the US, Canada, and the UK …   Wikipedia

  • POP-11 — is a powerful reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”