A Proposed Target Language for Compilers on Atlas
Author(s) -
Anthony Curtis,
I. C. Pyle
Publication year - 1962
Publication title -
the computer journal
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.319
H-Index - 64
eISSN - 1460-2067
pISSN - 0010-4620
DOI - 10.1093/comjnl/5.2.100
Subject(s) - compiler , computer science , atlas (anatomy) , programming language , binary number , arithmetic , mathematics , paleontology , biology
A compiler which treats a whole program as a unit can obviously produce its output in the form of binary words exactly as they are to be stored for execution. There is no need in this case for any intermediate form of storage. However, experience in using automatic programming languages has shown the enormous advantage of allowing the programmer to split up his program into more-or-less independent routines, to limit the scope of certain identifiers. There is a considerable difference between the processing which has to be carried out inside each routine and that which links routines together. We emphasize this difference by using the word compiler or assembler to designate the processor for individual routines, and loader for that which links them together before initiating execution. We thus distinguish "compile time," "load time," and "execute time." An appreciable part of the work of a compiler consists of the treatment of cross-references of one sort or another: identifiers and statement numbers, both of which play a very important part in automatic programming languages. The processing of cross-references is roughly proportional to the square of the size of the program or routine being compiled, and so it is advantageous to keep the routines small. If a large program can be broken up into ten routines of one-tenth the size, compiling time will be considerably reduced. In general, a loader does not need to be such a sophisticated processor as a compiler, and cross-references between routines can be dealt with in a simpler way, giving a net gain. With the technique of independently compiled routines, alterations to a program do not require the whole program to be re-compiled: only the relevant routines. Consequently, programmers are not discouraged from making corrections in source language, rather than in binary.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom