| Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993. |
....4.1 Abstract State Machines The Abstract State Machines (ASMs) 6] formalism has been designed especially for describing algebraically the operational semantics of programming languages, in the form of a graph of states. For example, a semantics could be given of the C programming language [7]. ASMs allow description of step bystep progression in the execution, and of concurrency. The di erence with our method is that in ASMs, comparison of semantics, as a comparison of graphs, is not easy, because execution graphs are de ned directly, not through categories, while paths, which are ....
Yuri Gurevich and James K. Huggins. The semantics of the C programming language. In Selected papers from CSL'92 (Computer Science Logic), volume LNCS 702, pages 274-308. Springer Verlag, 1992.
....to C programs; however, their assumptions allow only for (reactive) source programs consisting of a single loop; the loop body must implement a function from inputs to outputs; only the loop body is checked. Many languages have been described so far using abstract state machines, e.g. C [25], C [48] Prolog WAM [9] Occam Transputer [6, 7] Java [12] Java Virtual Machine [10, 11, 51] APE100 [4] ARM2 [29] DEC Alpha [21] DLX [8] 8 Conclusions For verifying practically useful compilers for realistic programming languages such as C, C or native code compilers for Java wie need ....
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In CSL '92, volume 702 of LNCS, pages 274--308. Springer-Verlag, 1993.
....to C programs; however, their assumptions allow only for (reactive) source programs consisting of a single loop; the loop body must implement a function from inputs to outputs; only the loop body is checked. Many languages have been described so far using abstract state machines, e.g. C [31], C [56] Prolog WAM [9] Occam Transputer [7, 4] Java [12] Java Virtual Machine [10, 11, 59] APE100 [5] ARM2 [35] DEC Alpha [26] DLX [8] 10 Conclusions We have introduced a notion of compiler verification which remains feasible also in the presence of the unavoidable limitations of ....
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In CSL '92, volume 702 of LNCS, pages 274--308. Springer-Verlag, 1993.
....syntactical constructs (c.f. 8, 27, 21, 12, 5, 57, 25] Algebraic semantics are also used in the field of abstract state machines to formalize the machine model underlying an operational semantics [31] Based on this approach, Gurevich shows such a semantics for the C programming language [32]. In the context of algebraic specification languages, a variety of object oriented aspects and concepts have been studied, and many results carry over to object oriented programming languages as well. We briefly sum up some interesting points to discuss objects, their states, classes, and ....
Y. Gurevich and J. K. Huggins. The semantics of the C programming language. In E. Brger, G. Jger, H. Kleine-Bning, S. Martini, and M.M. Richter, editors, Computer Science Logic, volume 702 of Lecture Notes in Computer Science (LNCS), pages 274 -- 308. Springer, 1992.
....at a much higher level than this work. Here, an axiomatic semantics is developed ex nihilo, and expressions are characterised at a much higher level than in Cholera. In other work, the details of expression evaluation are simply not correct. The evolving algebra semantics of Gurevich and Huggins [11, 12] relies on the mistaken assumption that side e#ects are applied as they are generated, and that expressions involving binary operators can be evaluated by evaluating all of one argument before switching to the other. Its rules for binary operators e#ectively assume a big step style ....
.... calls, this verification can t attempt anything like the thttpd code of [3] but will rather look at the C code written by John Harrison as part of his work on binary decision diagrams in [13] This code is Although the improvements mentioned might result in the big step non determinism of [12]. 29 over 300 lines long, uses a hash table, linked lists as buckets, and a promote tofront strategy when searching the lists. It is thus quite a complicated example of data structure use, and seems a realistic small scale verification exercise. Cholera represents an important first step ....
Yuri Gurevich and James K. Huggins. The semantics of the C programming language. In E. Borger, editor, Selected papers from CSL '92, volume 702 of Lecture notes in computer science, pages 274--308. Spring-Verlag, 1993. Corrected version available from University of Michigan web-site: http://www.eecs.umich.edu/gasm.
....about the way in which side effects are applied. Bofinger correctly states that side effects from these operators may be applied at any time, but fails to realise that this is also true of side effects that arise from assignment expressions as well. The semantics given by Gurevich and Huggins [GH93] using the evolving algebras formalism [Gur91] models expression evaluation in a similar way to Bofinger, thereby missing possible orders of evaluation. It also does not correctly model the way in which multiple side effects may give rise to undefined behaviour, as in the distinguishing example ....
Yuri Gurevich and James K. Huggins. The semantics of the C programming language. In E. Borger, editor, Selected papers from CSL '92, volume 702 of Lecture notes in computer science, pages 274--308. Spring-Verlag, 1993. Corrected version available from University of Michigan web-site: http://www.eecs.umich.edu/gasm.
.... State Machines [17] and Peter Mosses Action Notation [30] Both put the emphasis onto description capability rather than onto adequacy for proving program correctness, and some of the more convincing language descriptions have used these methods, see, e.g. 22] abstract state machines) and [18] (action notation) But all these methods are designed for describing one semantics. But for describing the semantics of directives, we need to describe both the reference and the actual semantics, and the relation between them. Thus in the next section we will provide a method of our own. The ....
Yuri Gurevich and James K. Huggins. The semantics of the C programming language. In Selected papers from CSL'92 (Computer Science Logic), volume LNCS 702, pages 274{ 308. Springer Verlag, 1992.
....by a set of guarded register transfer patterns. Here, these patterns are translated directly into a set of Gurevich s ASM [18] abstract state machine) rules, a model for parallel computation that has already been widely used for describing the semantics of as well software languages (like C [19], Prolog [11] Java [12] as hardware description languages (e.g. behavioral VHDL [8] Several case studies to describe processor architecture hardware (e.g. APE100 [7, 6] ARM microprocessor [20] have successfully demonstrated the capabilities of ASMs for modeling the behavior of hardware and ....
Y. Gurevich and J. Huggins. The semantics of the C programming language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of Springer Lecture Notes on Computer Science (LNCS), pages 274-309, 1993.
....to be the earliest formal approach, Sethi addresses mainly the semantics of pre ANSI C declarations [33] and control structures [34] using the denotational approach and making several simplifications. In the work of Gurevich and Huggins a formal semantics for C is given as an evolving algebra [8]. Again, a number of simplifications are made, e.g. no interleaving is possible in expression evaluation 2 and side effects are assumed to take place at the same time that they are generated. In the work of Cook and Subramanian an incomplete semantics for C is developed in the theorem prover ....
Y. Gurevich and J. K. Huggins. The semantics of the C programming language. In E. Borger et al., editors, Selected Papers from CSL'92 (Computer Science Logic), volume 702 of Lecture Notes in Computer Science, pages 274--308. Springer Verlag, New York, NY, 1993.
.... The problem of proving that a lower level specification of a state machine correctly implements a higher level one by means of a refinement mapping is addressed in [1] Recently, evolving algebras [16, 5, 17] have been successfully applied to the specification of e.g. the C programming language [18] and the steam boiler control case study [2] 8 Conclusion and Further Work A verification approach based on a formally specified translation from an imperative programming language into an algebraic specification language was presented. The proposed translation scheme is universally applicable. ....
Y. Gurevich and J. K. Huggins. The Semantics of the C Programming Language. In Selected papers from CSL'92 (Computer Science Logic), LNCS 702, pages 274--308. Springer-Verlag, 1993.
....by evaluating the messages locally, exchanging the results of the messages and evaluating the update expression with the message of the corresponding update. A update can be simply evaluated locally. Each statement of a C program can be transformed to an equivalent evolving algebra update (see [3]) which uses the same variable Figure 1: Overcoming the restrictions of the classical sequential operator names. Evolving algebra can be used to synthesis C expressions and assertions and data flow restrictions for sequential code fragments and guards. The preorder we chose is equivalent to the ....
Yuri Gurevich and James K. Huggins. The Semantics of the C Programming Language. In E. Borger et al., editors, Proc. CSL'92, LNCS 702, Errata: CSL 93, LNCS 832. Springer, September 1993.
....and the control flow with firing conditions. Sect. 3 outlines the main features of the rapid prototyping tool Gem Mex. Finally, in Sect. 4 we compare our work with other semantical frameworks. 2 Montages A departure point for our considerations has been the formal specification of the C language [15] 2 , which showed how the state based formalism Abstract State Machines [13, 14, 16] ASMs) formerly called Evolving Algebras, is well suited for the formal description of the dynamic behavior of full blown practical languages. In essence, ASMs constitute a formalism in which a state is updated ....
....a state is updated in discrete time steps. Unlike most state based systems, the state is given by an algebra, that is, a collection of functions and universes. The state transitions are given by rules that update functions pointwise and extend universes with new elements. The model presented in [15] describes the dynamic semantics of the C language by presuming on an explicit representation of control and data flow as a graph (CDG) This represents a major limitation for such a model, since the control and data flow graph is a crucial part of the specification. Therefore, we extended the ....
[Article contains additional citation context not shown here]
Y. Gurevich and J.K. Huggins. The Semantics of the C Programming Language, volume 702 of LNCS, pages 274 -- 308. Springer, 1993.
....by an algebra, that is, a collection of functions and universes. The state transitions are given by rules that update functions pointwise and extend universes with new elements. ASMs have already been used to model the dynamic semantics of programming languages such as Prolog [7] Occam [5] C [13], C [26] Oberon [17] and VHDL [6] At the risk of oversimplifying somewhat, we can describe some of these models [13, 26, 17] as follows. Program execution is modeled by the evolution of two functions CT and S. The current task CT represents the part of the program text currently in execution ....
....functions pointwise and extend universes with new elements. ASMs have already been used to model the dynamic semantics of programming languages such as Prolog [7] Occam [5] C [13] C [26] Oberon [17] and VHDL [6] At the risk of oversimplifying somewhat, we can describe some of these models [13, 26, 17] as follows. Program execution is modeled by the evolution of two functions CT and S. The current task CT represents the part of the program text currently in execution and may be seen as an abstract program counter. S represents the current value of the store. Formally one defines the initial ....
[Article contains additional citation context not shown here]
Y. Gurevich and J.K. Huggins. The Semantics of the C Programming Language, volume 702 of LNCS, pages 274 -- 308. Springer Verlag, 1993.
....is given by an algebra, that is, a collection of functions and universes. The state transitions are given by rules that update functions point wise and extend universes with new elements. ASMs have already been used to model the dynamic semantics of a number of programming languages, such as C [14], Occam [7] C [23] Oberon [17] and Java [8] to mention a few. At the risk of oversimplifying somewhat, one defines the initial state of the functions and specifies how they evolve by means of transition rules. The initial state is assumed to include the results of a static analysis. After ....
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993. 8
....already generated and stored in the function Value, the current focus of attention stored in CurTerm, the current evaluation environment stored in CurEnv, and the current exception propagating stored in CurException. Rather than creating an explicit stack structure (and following the precedent in [GH93]) we use the universe Naturals of natural numbers and redefine the functions named above to have the following signatures: Value: Terms Naturals Values CurTerm: Naturals CurException: Naturals Exceptions CurEnv: Naturals The extra numerical argument to each of these functions is ....
....CurTerm.MoreBindings.Value : undef endif endif Fig. 23. Record matching. 5 Discussion ASMs were first proposed as a methodology for specifying the semantics of programming languages [Gur84] ASMs have been applied to a wide variety of programming languages: imperative languages such as C C [GH93,Wal95], logic programming languages such as Prolog [BR94] and its variants, object oriented languages such as Java [BS98,Wal97] and Oberon [KP97b] and hardware languages such as VHDL [BGM94] To the best of our knowledge, this case study in Standard ML is the first application of ASMs to provide the ....
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274-- 309. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J.K. Huggins. The semantics of the C programming language. In Selected Papers from CSL '92, LNCS, pages 274-308. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Borger, H. Kleine Buning, G. Jager, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
No context found.
Y. Gurevich and J.K. Huggins. The Semantics of the C Programming Language. In Selected papers from CSL'92 (Computer Science Logic), volume 702 of Lecture Notes in Computer Science, pages 274--308. Springer, 1993.
No context found.
Y. Gurevich and J. Huggins. The Semantics of the C Programming Language. In E. Brger, H. Kleine Bning, G. Jger, S. Martini, and M. M. Richter, editors, Computer Science Logic, volume 702 of LNCS, pages 274--309. Springer, 1993.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC