scholarly journals Control Flow Treatment in a Simple: Semantics-Directed Compiler Generator

1981 ◽  
Vol 10 (137) ◽  
Author(s):  
Neil D. Jones ◽  
Henning Christiansen

<p>A simple algebra-based algorithm for compiler generation is described. Its input is a semantic definition of a programming language, and its output is a ''compiling semantics'' which maps each source program into a sequence of compile-time actions whose net effect on execution is the production of a semantically equivalent target program. The method does not require individual compiler correctness proofs or the construction of specialized target algebras.</p><p>Source program execution is assumed to proceed by performing a series of elementary actions on a runtime state. A semantic algebra is introduced to represent and manipulate possible execution sequences. A source semantic definition has two parts: A set of semantic equations mapping source programs into terms of the algebra, and an interpretation which gives concrete definitions of the state and the elementary actions on it.</p>

1982 ◽  
Vol 11 (148) ◽  
Author(s):  
Henning Christiansen ◽  
Neil D. Jones

<p>This paper describes technical details which were not included in the paper ''Control Flow Treatment in a Simple Semantics-Directed Compiler Generator'', presented at the IFIP working conference on Formal Description of Programming Concepts, Germany, 1982, due to lack of space. The present paper cannot be read separately.</p><p>We describe our method in full detail, including the <em>iterate</em>-operator in the S-algebra. Furthermore we give complete formal descriptions of the semantic algebra S and its models (Section 1), the compiler generation function d^c and the compile time interpretation J (Section 2), the target language semantics (Section 3), and in Section 4 the correctness proof.</p>


2007 ◽  
Vol 4 (2) ◽  
pp. 97-114 ◽  
Author(s):  
da Cruz ◽  
Rangel Henriques ◽  
João Varanda

The aim of this paper is to discuss how our pattern-based strategy for the visualization of data and control flow can effectively be used to animate the program and exhibit its behavior. That result allows us to propose its use for Program Comprehension. The animator uses well known compiler techniques to inspect the source code in order to extract the necessary information to visualize it and understand program execution. We convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure by traversing it, and applying visualization rules at each node according to a pre-defined rule-base. In order to calculate the next step in the program execution, a set of rewriting rules are applied to the tree. The visualization of this new tree is shown and the program animation is constructed using an iterative process. No changes are made in the source code, and the execution is simulated step by step. Several examples of visualization are shown to illustrate the approach and support our idea of applying it in the context of a Program Comprehension environment.


2003 ◽  
Vol 38 (4) ◽  
pp. 47-56 ◽  
Author(s):  
Lei Luo ◽  
Ming-Yuan Zhu ◽  
Qing-Li Zhang

1982 ◽  
Vol 17 (6) ◽  
pp. 327-333
Author(s):  
Terrence W. Pratt ◽  
George D. Maydwell

1963 ◽  
Vol 2 (1-2) ◽  
pp. 96-101
Author(s):  
P. V. Tavanets

Author(s):  
Muhammad Shumail Naveed ◽  
Muhammad Sarim ◽  
Kamran Ahsan

Programming is the core of computer science and due to this momentousness a special care is taken in designing the curriculum of programming courses. A substantial work has been conducted on the definition of programming courses, yet the introductory programming courses are still facing high attrition, low retention and lack of motivation. This paper introduced a tiny pre-programming language called LPL (Learners Programming Language) as a ZPL (Zeroth Programming Language) to illuminate novice students about elementary concepts of introductory programming before introducing the first imperative programming course. The overall objective and design philosophy of LPL is based on a hypothesis that the soft introduction of a simple and paradigm specific textual programming can increase the motivation level of novice students and reduce the congenital complexities and hardness of the first programming course and eventually improve the retention rate and may be fruitful in reducing the dropout/failure level. LPL also generates the equivalent high level programs from user source program and eventually very fruitful in understanding the syntax of introductory programming languages. To overcome the inherent complexities of unusual and rigid syntax of introductory programming languages, the LPL provide elementary programming concepts in the form of algorithmic and plain natural language based computational statements. The initial results obtained after the introduction of LPL are very encouraging in motivating novice students and improving the retention rate.


Analysis ◽  
1948 ◽  
Vol 8 (4) ◽  
pp. 49-63 ◽  
Author(s):  
M. Black

Sign in / Sign up

Export Citation Format

Share Document