Two-level semantics and code generation (Q1095636): Difference between revisions
From MaRDI portal
ReferenceBot (talk | contribs) Changed an Item |
Set OpenAlex properties. |
||
Property / full work available at URL | |||
Property / full work available at URL: https://doi.org/10.1016/0304-3975(86)90006-x / rank | |||
Normal rank | |||
Property / OpenAlex ID | |||
Property / OpenAlex ID: W2059019165 / rank | |||
Normal rank |
Latest revision as of 11:20, 30 July 2024
scientific article
Language | Label | Description | Also known as |
---|---|---|---|
English | Two-level semantics and code generation |
scientific article |
Statements
Two-level semantics and code generation (English)
0 references
1988
0 references
We present a two-level denotational metalanguage that is suitable for defining the semantics of PASCAL-like languages. The two levels allow for an explicit distinction between computations taking place at compile-time and computations taking place at run-time. While this distinction is perhaps not absolutely necessary for describing the input-output semantics of programming languages, it is necessary when issues like data flow analysis and code generation are considered. For an example stack- machine we show how to generate code for the run-time computations and still perform the compile-time computations. Based on an example it is argued that compiler-tricks like the use of activation records suggest how to cope with certain syntactic restrictions in the metalanguage. The correctness of the code generation is proved using Kripke-like relations and using a modified machine that can be made to loop when a certain level of recursion is encountered.
0 references
two-level denotational metalanguage
0 references
semantics of PASCAL-like languages
0 references
compile-time
0 references
run-time
0 references
data flow analysis
0 references
correctness
0 references
Kripke-like relations
0 references
loop
0 references
recursion
0 references