Abstract | ||
---|---|---|
Consider the connection between denotational semantics for a language with goto statements and flow diagrams for programs in such a language. The main point of interest is that the denotational semantics uses a recursively defined environment to give the meaning of labels, while a flow diagram merely has a jump to the appropriate program point. A simple reduction called indirection elimination strips away the environment from the denotational semantics and extracts an expression with cycles (circular expression) that is very close to the flow diagram of a program. The same idea applies to associating bodies with recursive procedures, or to any construct whose semantics is not wedded to the syntax. Circular expressions are offered as a useful data structure and conceptual device. Expressions with cycles are well defined mathematical objects — their semantics can be given by unfolding them into infinite structures that have been well studied. The practicality of the elimination of environments has been tested by constructing a trial implementation, which serves as the front end of a semantics directed compiler generator. The implementation takes a denotational semantics of a language and constructs a black box that maps programs in the language into an intermediate representation. The intermediate representation is a circular expression. |
Year | DOI | Venue |
---|---|---|
1981 | 10.1007/3-540-10843-2_31 | ICALP |
Keywords | Field | DocType |
data structure,front end,point of interest,intermediate representation | Data structure,Discrete mathematics,Expression (mathematics),Computer science,Denotational semantics,Compiler,Semantics,Recursion,Goto,Data flow diagram | Conference |
Citations | PageRank | References |
6 | 2.35 | 14 |
Authors | ||
2 |
Name | Order | Citations | PageRank |
---|---|---|---|
Ravi Sethi | 1 | 2281 | 1029.21 |
Murray Hill | 2 | 144 | 47.20 |