[ont.events] Dr. Khalid Azim Mughal, Tuesday 3 October 1989: THEORY SEMINAR

marina@ai.toronto.edu (Marina Haloulos) (09/22/89)

                    ACTIVITIES FOR THE WEEK COMMENCING
             (GB = Gailbraith Building, 35 St. George Street)

       -------------------------------------------------------------

                              THEORY SEMINAR
                GB244, at 2:00 p.m., Tuesday 3 October 1989

                          Dr. Khalid Azim Mughal
                       University of Bergen, Norway

                   "Incorporating Runtime Facilities in
                 Language-Based Programming Environments"

We present an approach to providing runtime facilities in language-based
programming environments generated from the specification of the runtime
semantics of the programming language. Language-based programming
environments that support incremental code generation have usually done so
using ad hoc techniques for incremental recompilation. Our aim is to
provide one uniform operational model based on attribute grammars that
allows the specification of the runtime semantics, and thus code
generation, to be incorporated with the specification of the syntax and
static semantics of the language.

The proposed semantic model of incremental code generation allows
specification of compact code. It severely limits the repropagation of
semantic information in the program tree due to changes in the code caused
by modifications to the source program. The code representation maintained
is essentially an indirect threaded control-flow graph attached to the
attributed derivation tree representing the program. Extended with
interactive execution, this representation also facilitates the
implementation of such debugging features as control- flow tracing,
single-stepping and value-monitoring at the source level.

We demonstrate the feasibility of the proposed model by examples of code
generation for imperative language constructs as exemplified by Pascal. The
specification is written in SSL (Synthesizer Specification Language) and
forms the input to the Cornell Synthesizer Generator.