| Hatcliff, J. 1995. Mechanically verifying the correctness of an offline partial evaluator. In M. Hermenegildo and S. Swierstra Eds., Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs (PLILP'95) (Utrecht, The Netherlands, September 1995), pp. 279--298. Springer-Verlag LNCS 982. |
....in [PW95] an algorithm for converting pure modal terms in implicit form to long normal form is given and proven correct. This algorithm bears no resemblance to the staged computation achieved via Mini ML 2 e . We also have constructed a direct operational semantics for Mini ML 2 generalizing [Hat95] that does capture staging, but prefer the compilation because it makes operational properties more evident. In particular, proving staging theorems for Mini ML 2 directly would be much harder than taking advantage of the type preserving compilation and proving the properties for Mini ML 2 e ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In S.D. Swierstra and M. Hermenegildo, editors, Programming Languages, Implementations, Logics and Programs (PLILP'95). Springer-Verlag LNCS 982, September 1995.
....subexpression e in P is less than or equal to the binding time of e in any other well annotated completion of P . We conjecture that, as in the two level case, there always exists a best completion. The correctness of two level binding time analysis schemes has been shown by several authors, e.g. [Wan93, Hat95]. Similar proof methods can be used in the multi level case (beyond the scope of this paper) fConstg0 c:b 0 fVarg x: in 0 0 x: fPrimg 0 e i :b t 0 (op t e 1 : e k ) b t fIf g 0 e 1 :b t 0 e 2 : 0 e 3 : jj jjt 0 (if t e 1 e 2 e 3 ) fLiftg 0 e:b t s 0 0 (lift s t e) b ....
John Hatcliff. Mechanically verifying the correctness of an off-line partial evaluator. In PLILP'95, LNCS. Springer-Verlag, 1995.
.... by Nielson [23] using small step operational semantics, by Gomard [12] on the basis of a denotational specification of the specializer, by Palsberg [24] for a reduction semantics for the two level lambda calculus, and by Wand [33] for Mogensen s specializer for the lambda calculus [19] Hatcliff [13] specifies and proves correct a BTA and specializer for PCF using ELF [25] The specializer is again given by an operational semantics. Hatcliff and Danvy [14] give a correctness proof for a BTA with respect to a specializer based on Moggi s computational metalanguage [20] 9 Conclusion Region ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In Doaitse Swierstra and Manuel Hermenegildo, editors, Programming Languages, Implementations, Logics, and Programs (PLILP '95), volume 982 of Lecture Notes in Computer Science, pages 279--298, Utrecht, The Netherlands, September 1995. Springer-Verlag.
....Keywords: lambda calculus, partial evaluation, functional programming, continuations. 1 Introduction What is a correct partial evaluator for the lambda calculus Most of the work addressing this question has focused on the relationship between the bindingtime analysis and the specializer [20, 21, 23,30,32,38] using a variety of models (structured operational semantics, denotational semantics, reduction systems, logical frameworks) In essence, they prove that a specializer processing a wellannotated program cannot confuse code with other values. Another aspect of the correctness of a partial evaluator ....
....be reduced further. In contrast, a dynamic redex like (x:E) V is not a stuck term, because it is a value according to our definition. It appears unreduced in the residual code. One facet of the correctness of a binding time analysis is to ensure that no stuck terms arise during specialization [20, 21,23,30,32,38]. Our development is independent from the goal of preventing stuck terms. Therefore, we refrain from specifying such an analysis here. 3.2 Conservativeness What do we expect from a sound partial evaluator The minimal condition should be that fi V is conservative with respect to fi V . That is: ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In Swierstra and Hermenegildo [36], pages 279--298.
....semantics allows for manipulationof expressions containing free variables, provided the variables have time greater than 0, and we thus depend on the fact that substitution avoids variable capture. The operational semantics for fl is similar to the specialization logic presented by Hatcliff [10] for a two level binding time language, and our binding time correctness theorem is also somewhat similar to Hatcliff s. Values v 0 : x:A: e j hv 0 1 ; v 0 2 i j z j s v 0 j next v 1 v n 1 : x j x:A: v n 1 j v n 1 1 v n 1 2 j fix x:A: v n 1 j hv n 1 1 ; v n 1 2 i j fst ....
J. Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In S. Swierstra and M. Hermenegildo, editors, Programming Languages, Implementations, Logics and Programs (PLILP'95), volume 982 of Lecture Notes in Computer Science. Springer-Verlag, Sept. 1995.
....in [PW95] an algorithm for converting pure modal terms in implicit form to long normal form is given and proven correct. This algorithm bears no resemblance to the staged computation achieved via Mini ML 2 e . We also have constructed a direct operational semantics for Mini ML 2 generalizing [Hat95] that does capture staging, but prefer the compilation because it makes operational properties more evident. 4 A Two level Language In this section we define Mini ML2 , a two level functional language very close to the one described in [NN92] We then define a simple translation into Mini ML 2 ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In S.D. Swierstra and M. Hermenegildo, editors, Programming Languages, Implementations, Logics and Programs. Springer-Verlag LNCS 982, September 1995.
....to the computational interpretation of meta language Elf via logic programming search. This technique has been applied in a number of case studies such as program derivation [And93, And94a, And94b] type preservation [MP91] compiler verification [HP92a] CPS conversion [DP95] partial evaluation [Hat95] theorem proving [Pfe92b] the Church Rosser theorem [Pfe92c] and cut elimination [Pfe95] With this technique we can implement and execute meta theoretic proofs, but LF type checking alone cannot guarantee that a higher level type family actually represents a meta theoretic proof. The design ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In Proceedings of the Seventh International Symposium on Programming Languages, Implementations, Logics and Programs, pages 279-- 298, Utrecht, The Netherlands, September 1995. Springer-Verlag LNCS 982.
.... the present work) to use operational semantics for specifying specializers [1, 18, 33, 61, 62] In fact, the first author has shown that by emphasizing the logical character of type based and operational semantics specifications, the correctness of a partial evaluator can be mechanically verified [35]. Davies and Pfenning have developed a language for expressing staged computation based on the intuistionistic modal logic S4 [20, 19] The type system of this language is strikingly similar to that of Moggi s computational metalanguage. A modality analogous to the e Delta construction of Moggi ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In Hermenegildo and Swierstra [38], pages 279--298.
.... the present work) to use operational semantics for specifying specializers [1, 18, 33, 61, 62] In fact, the first author has shown that by emphasizing the logical character of type based and operational semantics specifications, the correctness of a partial evaluator can be mechanically verified [35]. Davies and Pfenning have developed a language for expressing staged computation based on the intuistionistic modal logic S4 [20, 19] The type system of this language is strikingly similar to that of Moggi s computational metalanguage. A modality analogous to the e Delta construction of Moggi ....
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In Hermenegildo and Swierstra [38], pages 279--298.
No context found.
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In Hermenegildo and Swierstra (Hermenegildo and Swierstra 1995), pages 279--298.
....Object Language Figure 1 presents the syntax of the object language 3 (a small subset of PCF) 4 and its encoding in Elf. 5 The Elf signature for the object language syntax includes family constants exp and typ, and object constants for each term and 4 In the extended version of this paper [13], we treat full PCF, i.e. simply typed terms with primitive operations (e.g. succ, pred) conditionals, and fixpoint constructs [8] In the present version, space constraints force us to consider only those constructs which best illustrate principles. Including the other constructs is a ....
....A construct is assigned a directive of residual if it may depend on dynamic data and thus must be reconstructed in the specialization phase. for a detailed discussion and proofs of adequacy for encodings similar to the ones used here. 6 These can be found in the extended version of this paper [13]. Michaylov and Pfenning [17] give Elf encodings of typing rules and call by value operational semantics for a language similar to 3. Annotated object language: w 2 Sexp w : 0m j y j lamm y : w j app m w 0 w 1 j lift w m 2 Sder m : s j d Elf encoding: sexp : type. bz : sder sexp. blam ....
[Article contains additional citation context not shown here]
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator (extended version). DIKU Report 95/14, University of Copenhagen, Copenhagen, Denmark, 1995.
No context found.
Hatcliff, J. 1995. Mechanically verifying the correctness of an offline partial evaluator. In M. Hermenegildo and S. Swierstra Eds., Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs (PLILP'95) (Utrecht, The Netherlands, September 1995), pp. 279--298. Springer-Verlag LNCS 982.
No context found.
Hatcliff, J. Mechanically verifying the correctness of an off-line partial evaluator. In Programming Languages, Implementations, Logics and Programs, M. Hermenegildo and S.D. Swierstra (Eds.). Springer-Verlag, Lecture Notes in Computer Science, vol. 982, pp. 279--298, 1995. LISP and Symbolic Computation KL453-03-gluck May 16, 1997 12:18 158 GL UCK AND JRGENSEN
No context found.
John Hatcliff. Mechanically verifying the correctness of an offline partial evaluator. In S.D. Swierstra and M. Hermenegildo, editors, Programming Languages, Implementations, Logics and Programs (PLILP'95). Springer-Verlag LNCS 982, September 1995.
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