Talk:Incremental compiler
This article has not yet been rated on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||
|
The use of the term "Incremental compiler" to mean "built-in compiler"
[edit]I know its usage is wide-spread, but the term 'incremental compiler' in terms of Poplog and related interactive runtime development environments are not worthy to be called incremental compilers, in my opinion.
In some cases, the translation of source code (say, Prolog) into its so called 'intermediate language' is so trivial that one could say it's a modification some trivial data structures done by the runtime system. In actual fact, for most of these systems, there exists no exact definition of a single running 'program' in that sense, because any part of the program may change during execution. the use of 'incremental' may be justified because it adds 'bytecode' (which isn't really) onto 'bytecode' with a runtime system, but 'compiler' may be pushing it. The other type adds bytecode onto existing bytecode at compile-time. Certainly a big difference.
I mayn't be able to convince the industry and academics to drop the use of this term, but I've done my best to show the clear difference between the two distinct technologies that sadly share the same name. —Preceding unsigned comment added by 78.105.26.120 (talk) 23:11, 5 April 2009 (UTC)
The above comment makes incorrect assumptions
[edit]E.g. in Poplog, the incremental compilers for Pop11, Prolog, Common Lisp and ML do not modify bytecode instructions but generate machine code instructions in a new procedure body, with procedure names (or pointers to anonymous procedures, analogous to compiled lambda expressions) redirected to the new procedures, allowing the previous ones pointed to (if there were any) to be garbage collected.
For details see the paper below (which has recently been made available online).
As far as I can tell from a quick read of the link to Dr. Dobb's Journal about making an incremental C++ compiler on the incremental_compiler page, that system also compiles machine code incrementally, not just bytecode.
The code for Poplog's incremental compiler can be inspected since it is an open source system. The claim of triviality made above is incomprehensible to me. Likewise the implied allegation that the incremental C++ compiler is trivial.
I conclude that the objections raised here to the content of the wikipedia page are spurious. There are indeed different kinds of incremental compiler with different code targets, but that does not stop them being incremental compilers.
Who is in a position to adjudicate this?
www.cs.bham.ac.uk/~axs (talk) 09:49, 8 May 2011 (UTC)
The meaning is long-established
[edit]The meanings of the terms "Incremental Compiler" and "Incremental Compilation" in interactive development environments are long-established. What the earlier poster deems "worthy" is irrelevant. See for example:
- J.P. Brown, Writing Interactive Compilers and Interpreters, John Wiley and Sons, 1979, ISBN 0-471-10072-2
- J.L. Ryan, R.L. Crandall, M.C. Medwedeff, A Conversational System for Incremental Compilation and Execution in a Time-Sharing Environment, AFIPS Conference Proceedings Volume 29, 1966