The design and implementation of Modula-2DL

Thomas R. Leap · 1986

Modula-2dL is an extended version of the Modula-2 language designed by Niklaus Wirth. The compiler was implemented on the DEC-10 and DEC-20 computers for which no implementation previously existed. The three primary goals for the extensions were to create a more conventional input/output interface without adding input/output to the language, to implement multiprocessing procedures without writing them in assembly language and to allow efficient use of storage space in the DEC-20 computer. The input/output interface that was developed consists of a set of procedures that are almost identical to those used in the Pascal language. A polymorphic data type, called the variant type, is an extension of the variant record type and allows a single procedure parameter to accept arguments of different data types. This, along with open-ended parameter lists, allows the input/output procedures to be implemented as a module written in the Modula-2dL language without requiring that any input/output statements be added to the language. By allowing access to the general registers and by clearly specifying the organization of a procedure's call frame, the Modula-2 multiprocessing primitives TRANSFER and IOTRANSFER can be written in the Modula-2dL language. An additional type of procedure, the interrupt procedure, is used both to service interrupts without switching context and to implement the IOTRANSFER procedure. Other additions and extensions in Modula-2dL include packed structures, embedded object pointers, open ended data structures, operating system interface modules and explicitly typed procedures.

Read the paper · More papers on PaperTik