(19)
(11) EP 0 406 028 A3

(12) EUROPEAN PATENT APPLICATION

(88) Date of publication A3:
07.01.1993 Bulletin 1993/01

(43) Date of publication A2:
02.01.1991 Bulletin 1991/01

(21) Application number: 90307228.8

(22) Date of filing: 02.07.1990
(51) International Patent Classification (IPC)5G06F 9/46, G06F 9/44, G06F 12/02, G06F 12/08
(84) Designated Contracting States:
AT BE CH DE DK ES FR GB GR IT LI LU NL SE

(30) Priority: 30.06.1989 US 375397
30.06.1989 US 375398
30.06.1989 US 375399
30.06.1989 US 375383
30.06.1989 US 375384
30.06.1989 US 375401
30.06.1989 US 375402

(71) Applicant: DIGITAL EQUIPMENT CORPORATION
Maynard Massachusetts 01754-1418 (US)

(72) Inventors:
  • McKeeman, William M.
    Hollis, New Hampshire, 03049 (US)
  • Aki, Shota
    Weare, New Hampshire, 03281 (US)

(74) Representative: Hale, Peter et al
Kilburn & Strode 30 John Street
London WC1N 2DD
London WC1N 2DD (GB)


(56) References cited: : 
   
       


    (54) Incremental compiler for source code development system


    (57) A computer-aided software development system includes programs to implement edit, compile, link and run sequences, all from memory, at very high speed. The compiler and linker operate on an incremental basis, line-by-line or increment-by-increment, so if only one line is changed in an edit session, then only that line and lines related to it need be recompiled if no other code is affected; linking is also done in a manner to save and re-use parts of link tables and link lists which are not changed from one edit session to another. Dependency analysis may be performed incrementally, without requiring the user to enter dependencies. Scanning is also done incrementally, and the resulting token lists and token tables, and lexical increment tables, are saved in memory to be used again where no changes are made. All of the linking tables are saved in memory so there is no need to generate link tables for increments of code where no changes in links are needed. The parser is able to skip lines or blocks of lines of source code which haven't been changed; for this purpose, each line of source text in the editor has a change-tag to indicate whether this line has been changed, and from this change-­tag information a clean-lines table is built having a clean-lines indication for each line of source code, indicating how many clean lines follow the present line. All of the source code text modules, the token lists, symbol tables, code tables and related data saved from one compile to another are maintained in virtual memory rather than in files so that speed of operation is enhanced. Also, the object code created is maintained in memory rather than in a file, and executed from this memory image, to reduce delays. A virtual memory management arrangement for the system assures that all of the needed data modules and code is present in real memory in the phase being implemented, with a minimum of page faults and page swapping during the phase, again to enhance operating speed.







    Search report