| A.P. Ershov. On the Essence of Compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. North-Holland, 1978. |
....in fact, the above line of reasoning should not be impossible to formalize and implement. That would certainly be an interesting area for further research. Related approaches remarks from the literature include . a noteworthy part of the discussion following a talk by A.P. Ershov, reported in [Ers78, p. 420] Karel Culik: In your program that computes X to the power n you assumed an input value for n equal to 5. Why didn t you assume that X was given an input value and n remained unspecified as 5 to the power n instead of X to the power 5 Ershov: I would like to stress that the ....
A.P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. North-Holland, 1978.
....a curried version of p: program mix p is a program which, when applied to s, generates a new program p s which can then be applied to d. Program p thus takes its inputs s and d at the same time, but program mix p takes them one at a time. Program mix p is often called a generating extension of p [Ers78]. The generating extension is a specialized specializer : it is able to generate specialized versions of a particular program p whereas the general specializer mix can specialize any program. The advantage of generating a specialized specializer is eciency: it is potentially faster to run a ....
Andrei P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391-420, North-Holland, 1978.
....s = A 3 A, B] to cls is ground. Finally, cls represents the set of data (CONS Z (CONS a d) Atom, d . 2.3. Programming Languages We use the following definitions of programming languages, computation and computational equivalence. Definition 4 (programming language) [19] A programming language L is a triple L = PgmL, DatL, SemL) where PgmL is the syntax of L (the set of syntactically correct L programs) DatL is the data domain of L (set of input output data) and SemL is the semantics of L (a partial function SemL : PgmL, DatL] DatL) Definition 5 ....
....to the initial projection. The idea of self applying a program specializer is known from the Futamura projections [20] Self application can be used to convert interpreters into compilers and, more generally, programs into two level generating extensions (known as Ershov s generating extension [19]) Program specializers capable of this transformation have been developed for a variety of programming languages (see [9, 31, 15] We are interested in this transformation because we want to produce e#cient tools for non standard interpretation and non standard compilation. Repeatedly applying ....
[Article contains additional citation context not shown here]
A. P. Ershov, "On the essence of compilation," in Formal Description of Programming Concepts, ed. E. Neuhold (North-Holland, Amsterdam, 1978), pp. 391--420.
....This advanced specialisation operation is possible by a program transformation technique called partial evaluation. 1. 1 Partial Evaluation Programs are transformed by partial evaluation in order to obtain a more efficient version of the program for a given subset of the domain of input data [Ers78] That is, a program is specialised with respect to a fixed subset of the input data. The efficiency of the original program is improved by evaluating the expressions in the program that depend on the fixed input and generating specialised code for those expressions that depend on the run time ....
.... evaluation: self application and the generation of compilers [Fut71] Ershov, in cooperation with Turchin and Romanenko of the supercompiler project, independently discovered the three rules for the generation of compilers and compilergenerators, which he called the Futamura projections [Sr96, Ers78] He is also responsible for 2.1 Program Specialisation by Partial Evaluation 11 the terminology mixed computation for what is also called partial evaluation [Ers78] Since then, program specialisation by partial evaluation has been applied extensively. For this reason, a full history of its ....
[Article contains additional citation context not shown here]
A.P. Ershov. On the Essence of Compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. North-Holland, 1978.
....of software components without paying an unacceptably high price. 4. PROGRAM GENERATION BY SPECIALIZATION Various program generators in diverse applications such as parsers, translators, operating systems, graphics, data bases, are uniformly described by the notion of a generating extension [Ershov 1978]. A generating extension of a program of two arguments f is such a program f gen that for any x returns the specialization of f with respect to x: f gen (x) Spec(f; x) A well known insight is due to Futamura [1971] a compiler is the generating extension of an interpreter. It was found that ....
Ershov, A. P. 1978. On the essence of compilation.In E. Neuhold Ed., Formal Description of Programming Concepts (1978), pp. 391--420. North-Holland.
....optimized with respect to some inputs at an earlier stage, and others at later stages. This modification requires several non obvious extensions of standard partial evaluation techniques, such as multi level generating extensions [10] a generalization of Ershov s (two level) generating extension [8]. The main payoff of this novel approach becomes apparent in multiple self application: experimental results show an impressive reduction of generation time and code size compared to previous attempts of multiple self application. Our approach to multi level specialization, which we call ....
....in L. Ershov s Generating Extensions. A program generator cogen, which we call a compiler generator for historical reasons, is a program that takes a program p and its binding time classification (bt classification) as input and generates a program generator p gen, called a generating extension [8], as output. The task of p gen is to generate a residual program p res, given static data in 0 for p s first input. We call p gen a two level generating extension of p because it realizes a two staged computation of p. A generating extension p gen runs potentially much faster than a program ....
[Article contains additional citation context not shown here]
A.P. Ershov. On the essence of compilation. In E.J. Neuhold (ed.), Formal Description of Programming Concepts, 391--420. North-Holland 1978.
....optimized with respect to some inputs at an earlier stage, and others at later stages. This modification requires several non obvious extensions of standard partial evaluation techniques, such as multi level generating extensions [8] a generalization of Ershov s (two level) generating extension [6]. The main payo# of this novel approach becomes apparent in multiple self application: experimental results show an impressive reduction of generation time and code size compared to previous attempts of multiple self application. The analyses we present are constraint based. Constraint based ....
....input in. Ershov s Generating Extensions. A program generator cogen, which we call compiler generator for historical reasons, is a program that takes a program p and its binding time classification (bt classification) as input and generates a program generator p gen, called generating extension [6], as output. The task of p gen is to generate a residual program p res, given static data in 0 for p s first input. We call p gen a two level generating extension of p because it realizes a two staged computation of p. A generating extension p gen runs potentially much faster than a program ....
A. P. Ershov. On the essence of compilation. In E. J. Neuhold (ed.), Formal Description of Programming Concepts, 391--420. North-Holland, 1978.
....to specific needs and applications. One of the best developed specialization techniques is partial evaluation [1, 8, 20] An extensive theory and literature on specialization and code generation was developed in this field. An important discovery was that the concept of generating extensions [12] unifies a wide class of apparently different program generators. Examples include parsing, translation, theorem proving, and pattern matching [14] Through partial evaluation, components which handle variability at run time can be transformed into component generators (or generating extensions in ....
A. P. Ershov. On the essence of compilation. In E. J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. North-Holland, 1978.
....a curried version of p: program mix p is a program which, when applied to s, generates a new program p s which can then be applied to d. Program p thus takes its inputs s and d at the same time, but program mix p takes them one at a time. Program mix p is often called a generating extension of p [Ers78]. The generating extension is a specialized specializer : it is able to generate specialized versions of a particular program p whereas the general specializer mix can specialize any program. The advantage of generating a specialized specializer is efficiency: it is potentially faster to run a ....
Andrei P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420, North-Holland, 1978.
....program. define ( goal 1 dyn 1) let ( mlet 2 (car dyn 1) mlet 3 ( mlet 2 13) mlet 3 mlet 3) 7 Related Work 7.1 Online Specialization The early work on specialization mostly considers online specialization for imperative languages. For example, Futamura [31] and Ershov and his group [14, 28,29] consider fragments of Algol. Building on work by Ershov s group, Meyer [53] defines and proves correct an online specializer for Pascal that performs side effects at specialization time. Marquard and Steensgaard [52] describe an online partial evaluator for an object oriented imperative language. ....
Andrei P. Ershov. On the essence of compilation. In Erich J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. North-Holland, 1978.
....codes with promising results [2, 3, 22] However, this just provides a taste of the field; partial evaluation has evolved into a comprehensive toolbox containing both theories and practical software. One of the most important theoretical contributions was that the concept of generating extensions [13] unifies a very wide category of apparently different program generators. Using partial evaluation, concrete components which check configuration variables at run time can be transformed into component generators (or generating extensions in the terminology of the field [5, 10, 20] which produce ....
A. P. Ershov, On the essence of compilation, in Formal Description of Programming Concepts, E. J. Neuhold, ed., North-Holland, 1978, pp. 391--420.
....see e.g. Glu94] Two Level Generating Extensions. A program generator cogen, which we call compiler generator for historical reasons, is a program that accepts a twostage program p and its binding time classification as input and generates a program generator p gen, called generating extension [Ers78], as output. The task of p gen is to generate a specialized program p 0 , given static data in 0 for p s first input. We call p gen a two level generating extension of p because it realizes a two staged computation of p. p gen = cogen] L p SD p 0 = p gen] L in 0 out = p 0 ] L in 1 ....
Andrei P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. NorthHolland, 1978.
....than the original source program (due to the polyvariant specialization) In our experience the binding time analysis usually requires the smallest portion of the total run time. 6 Related Work Ershov and his group were the first who investigated imperative languages and mixed computation [15,16,11]. Pagan [24] describes several manual methods similar to the partial evaluation of imperative languages and studied the specialization of general parsers [23] The examples are taken from his works. The partial evaluator presented in this paper automates several of these techniques. Meyer ....
Ershov A. P., On the essence of compilation. In: Neuhold E. J. (ed.), Formal Description of Programming Concepts. 391-420, North-Holland 1978.
.... [47] The idea to use partial evaluation as a programming tool can be traced back to work beginning in the late 1960 s by Lombardi and Raphael [58, 57] Dixon [18] and Chang and Lee [12] Important contributions were made in the seventies by Futamura [23, 24] by Sandewall s group [6] by Ershov [19, 20], and later by Jones group [45, 46] In the eighties program specialization became a research field of its own, e.g. 8, 14, 16, 44, 53] Supercompilation [87] conceived by Turchin in the early seventies in Russia for the programming language Refal, achieves the effects of partial evaluation as ....
A.P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pp. 391--420. North-Holland, 1978.
....P and part of its input In and constructs a new program P In that given the rest of the input Rest, yields the same result that P would have produced given both inputs. The origins of partial evaluation can be traced back to Kleene s s m n theorem [57] and more recently to Lombardi [66] Ershov [31], Futamura [35] and Komorowski [59] Some of the available transformation and analysis techniques need improving or changing to make them suitable for our aims. These improved partial evaluation and abstract interpretation techniques are developed in the following chapters. We therefore propose a ....
A.P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Descriptions of Programming Languages, pages 390--421. North-Holland, 1978.
....optimization techniques using static information are naturally applicable. To get equivalent effects in non metacircular systems, a sophisticated optimizing compiler or complex programming techniques are needed. For example, an optimizing compiler using a technique called partial evaluation [19, 23] or inlining will compile the following program in 3 KRS: defmethod create object (expr env) let ( class name (car expr) expr2 (set history (cons ,class name history ) eval expr env expr2) super create object expr env) into as efficient code as the equivalent program in the ....
Ershov, A., "On the Essence of Compilation," in Formal Description of Programming Concepts (E. Neuhold, ed.), pp. 391--420, North-Holland, 1978. BIBLIOGRAPHY 111
....the successful application of partial evaluation to declarative languages, such as Lisp or Prolog, only few attempts have been made to exploit partial evaluation in the context of imperative languages. Ershov and his group were the first who investigated imperative languages and mixed computation [Ers78]. Partial evaluators for C and for a Fortran subset have been developed [And94, KKZG95] The application of partial evaluation to software maintenance has been investigated in [BF94] and an approach to run time specialization in [CN96] The book [JGS93] describes approaches to and systems for ....
Andrei P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. NorthHolland, 1978.
.... turcc cunyvm.cuny.edu e mail Nemytykh: nemytykh scp.botik.yaroslavl.su e mail Pinchuk: pinchuk scp.botik.yaroslavl.su 1 Introduction Self applicability of a program transformer is well known to lead to new possibilities, such as automatic creation of compilers from interpreters (see [2] 10] [1], 3] Self applicability of a partial evaluator was first achieved in [3] A supercompiler is a program which can perform a deep transformation of programs using a principle which is similar to partial evaluation, and is referred to as metacomputation. Supercompilers that have been in existence ....
Ershov, A.P. On the essence of compilation, In: E.J.Neuhold(ed) Formal Description of Programming Concepts, pp.391-420, North-Holland, 1978.
....4 Partial Evaluation The currying technique needs to transform a protocol and makes it slightly difficult to use. It also requires that a very efficient lambda function is available in the language. Hence a few researchers have proposed another technique, which is the use of partial evaluation [10, 12] for implementing a reflective language. With this technique, the protocol designer does not need to transform the protocol, or a lambda function is not necessary. A partial evaluator takes a program and part of its inputs and produces another program that takes the rest of the inputs. The ....
Ershov, A., "On the Essence of Compilation," in Formal Description of Programming Concepts (E. Neuhold, ed.), pp. 391--420, North-Holland, 1978.
....This was the background for the 1987 Workshop on Partial Evaluation and Mixed Computation [19, 39] Subsequent proceedings on partial evaluation may be found in [2, 3, 4, 5, 32, 88] 9. 2 Partial evaluators Imperative languages: Early papers on partial evaluation for imperative languages include [34, 36, 37]. Bulyonkov and Ershov reported a self applicable partial evaluator for a flow chart language [25] so did Gomard and Jones [50] Gluck et al. created a (non self applicable) specializer for numeral algorithms in Fortran [11, 47] Andersen [6, 8, 9] developed two systems for specialization of C ....
A.P. Ershov. On the essence of compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. Amsterdam: North-Holland, 1978.
No context found.
A.P. Ershov. On the Essence of Compilation. In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 391--420. North-Holland, 1978.
No context found.
Ershov, A.P. On the essence of compilation. In Formal Description of Programming Concepts, E.J. Neuhold (Ed.). North-Holland, pp. 391--420, 1978.
No context found.
Ershov, A. On the essence of compilation. In Formal Description of Programming Concepts, Neuhold, E. (Ed.). North-Holland, 1978, 391--420.
No context found.
A.P. Ershov. On the essence of compilation. In E.J. Neuhold, editor. Formal Description of Programming Concepts. 391--420 (North-Holland, 1978).
No context found.
Ershov, A.P. On the essence of compilation, In: E.J.Neuhold (Ed.) Formal Description of Programming Concepts, pp.391-420, North-Holland, 1978.
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