It is becoming standard practice to write formal descriptions of programming languages. The fundamental benefit of a "formal semantics" is that it constitutes an unambiguous standard of reference against which questions about the meaning of programs can be answered. Also, it serves as the basis for mathematical reasoning about programs, for instance for the purposes of optimization. While these certainly are practical benefits, other pragmatic aspects of languages are not normally reflected in a formal semantics, such as the distinction between compile-time and run-time, whether automatic garbage collection is needed, and so on. In previous research, a technique called "high-level semantics" was proposed which addressed some of these issues. The main result was that for Pascal-like languages, high-level semantics allows one to generate realistic compilers automatically. Unfortunately, this technique does not extend easily to more advanced languages incorporating such notions as polymorphism, nonstrictness, concurrency and so forth. Low-level features such as pointer arithmetic and volatile variables also prevent problems. Perhaps most importantly, semantics-based optimization techniques are hard to incorporate. In this project, techniques for formally describing and automatically implementing such advanced languages features and optimizations will be developed. The goal is to automatically generate nearly practical compilers for advanced languages.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
9057567
Program Officer
D. Helen Gill
Project Start
Project End
Budget Start
1990-10-01
Budget End
1996-03-31
Support Year
Fiscal Year
1990
Total Cost
$200,000
Indirect Cost
Name
Carnegie-Mellon University
Department
Type
DUNS #
City
Pittsburgh
State
PA
Country
United States
Zip Code
15213