| Alan Bawden. Quasiquotation in LISP. In O. Danvy, editor, Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 88-99, San Antonio, 1999. University of Aarhus, Dept. of Computer Science. Invited talk. |
....begins a quasi quotation, and a comma preceding a variable or a parenthesized expression acts as an anti quotation indicating that the expression is to be treated, not as a quotation, but as a computation that will evaluate to a piece of object code. A short history of Quasiquotation in LISP [8] can be found in an article of that name by Alan Bawden in the 1999 PEPM proceedings as an invited talk, and describes this in much more detail. In LISP, quasi quotation is unaware of the special needs of variables and binding forms. Quasi quotation does not ensure that variables (atoms) ....
A. Bawden. Quasiquotation in LISP (invited talk). In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 4-12. ACM, BRICS Notes Series, january 1999.
....CodeExpr CodeExpr . Furthermore, the target architecture is a stack machine with instructions LOAD, STORE, and PLUS. Given a client or component written in this language, we first eliminate the quotes and antiquotes by a using these transformation rules repeatedly (the basic idea is standard [3]) x = e asgn x e e e 0 plus e e 0 x ident x e e For example, suppose we have the following component, of type Code Code: Component = fn arg = arg arg end and this client of type (Code Code) Code: Client = fn comp ....
A. Bawden. Quasiquotation in lisp. In In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-99), pages 18--42, January 22--23 1999.
....begins a quasi quotation, and a comma preceding a variable or a parenthesized expression acts as an anti quotation indicating that the expression is to be treated, not as a quotation, but as a computation that will evaluate to a piece of object code. A short history of Quasiquotation in LISP [8] can be found in an article of that name by Alan Bawden in the 1999 PEPM proceedings as an invited talk, and describes this in much more detail. In LISP, quasi quotation is unaware of the special needs of variables and binding forms. Quasi quotation does not ensure that variables (atoms) ....
A. Bawden. Quasiquotation in LISP (invited talk). In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 4-12. ACM, BRICS Notes Series, january 1999.
....allows for run time code generation using syntax trees as a representation of code templates, as outlined above. As an example, Figure 1. 1 presents two procedures in Scheme, pow, which computes the power function, and powgen, which computes the generating extension of pow using quote and unquote [2]. The generating extension returns a specialized version of pow given as a syntax tree. One can view powgen as a binding time annotated version of pow with respect to a binding time signature where n is static and x is dynamic. Applying powgen to a positive integer yields the syntax tree of a ....
Alan Bawden. Quasiquotation in Lisp. In Danvy [12], pages 4--12.
....copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and or a fee. PEPM 2000 Boston, MA USA Copyright 2000 ACM 0 89791 88 6 97 05 . 5. 00 back quote, comma, and eval [2]. There are however two notable differences between LISP s and MetaML s constructs: First, the former work on lists, and the latter work only on ff equivalence classes of representations of programs containing binding constructs. Second, MetaML avoids the need for the use of a newname or gensym ....
Bawden, A. Quasiquotation in LISP. In ACM SIGPLAN Workshop on Partial Evaluation and SemanticsBased Program Manipulation (San Antonio, Jan. 1999), O. Danvy, Ed., University of Aarhus, Dept. of Computer Science, pp. 88--99. Invited talk.
....semantics. Unfortunately, an earlier attempt to devise such a reduction semantics [23] is flawed (although the type system presented in that work is correct [16] The earlier attempt was based on level annotated terms, and therefore suffers from the complications discussed in Section 3.3. Bawden [2] gives a detailed historical review of the history of quasi quotations in LISP. 7 Future Work: CBV M and U Corresponding results on the confluence and soundness of CBV U have not been established yet. We chose to start with CBN for two reasons: 1. To avoid developing accidental dependency on ....
Bawden, A. Quasiquotation in LISP. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio, Jan. 1999), O. Danvy, Ed., University of Aarhus, Dept. of Computer Science, pp. 88--99. Invited talk.
.... method Theta (Code array arg Code call to sort ) and, as always, ClientType = SortComponentType Code 5 Component: fun sortcomp comparefun size = if (size = 2) place in line then [ no auxiliary class in this case fn A = if ( Exp(comparefun Exp(A) 0] Exp(A)[1] ) int temp = Exp(A) 0] Exp(A) 0] Exp(A) 1] Exp(A) 1] temp; else [ class sortClass . as above . fn arg = sort( Exp(arg) end ] We note that the use of higher order functions in particular, the ability of the component to return a function to ....
.... and, as always, ClientType = SortComponentType Code 5 Component: fun sortcomp comparefun size = if (size = 2) place in line then [ no auxiliary class in this case fn A = if ( Exp(comparefun Exp(A) 0] Exp(A) 1] int temp = Exp(A) 0] Exp(A) 0] Exp(A)[1]; Exp(A) 1] temp; else [ class sortClass . as above . fn arg = sort( Exp(arg) end ] We note that the use of higher order functions in particular, the ability of the component to return a function to the client is crucial. It is the main reason why we ....
[Article contains additional citation context not shown here]
A. Bawden. Quasiquotation in lisp. In In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-99), pages 18--42, January 22--23 1999.
....by an exp. The string encoding suffers the same problem. MetaML takes advantage of a simple type theoretic device, namely, the parametric type constructor. A common example of a parametric type constructor in SML is list, which allows us to have lists with elements of different types, such as [1,2,3,4] and [ a , b , c ] which have type int list and char list, respectively. In MetaML, we use a parametric type constructor h i for code 2 . Thus, h1i has type 2 Note that unlike the type constructor for lists, the MetaML code type constructor cannot be declared as a datatype in SML. We expand on ....
....ways and types do not provide any help in this regard. We expand on this point in Chapter 7. 27 will be performed in the first stage, which is exactly the desired behavior. Thus, the result of member2 is a recursively constructed piece of code of type type bool. Evaluating hfn x ) member2 hxi [1,2,3])i yields: hfn d1 ) if d1 = 1 then true else if d1 = 2 then true else if d1 = 3 then true else falsei. 2.5 Staging the Power Function Computing the powers of a real number is a classic example from the partial evaluation literature [40] Consider the following definition of ....
[Article contains additional citation context not shown here]
Bawden, A. Quasiquotation in LISP. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio, Jan. 1999), pp. 88--99. Invited talk.
....successive quasiquotation, decreases by one inside each unquotation [17, Section 4.2.6] But this leaves one extra unquote after one evaluation; we counter its effect by using the trick of quoting the generated program. 2 The following session illustrates the use of function iprod1. 2 From [3] I found a more concise way to write the underlined expression: define p ( eval (iprod1 3) 10 0 100) p (lambda (w) lambda (n) n 100) lambda (l) lambda (l) lambda (l) car l) cdr l) cdr l) w) lambda (w) lambda (n) 0) lambda (l) lambda (l) car l) cdr ....
Alan Bawden. Quasiquotation in Lisp. In Olivier Danvy, editor, Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Technical report BRICS-NS99 -1, University of Aarhus, pages 4--12, San Antonion, Texas, January 1999.
No context found.
Alan Bawden. Quasiquotation in LISP. In O. Danvy, editor, Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 88-99, San Antonio, 1999. University of Aarhus, Dept. of Computer Science. Invited talk.
No context found.
Alan Bawden. Quasiquotation in LISP. In O. Danvy, editor, Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--99, San Antonio, 1999. University of Aarhus, Dept. of Computer Science. Invited talk.
No context found.
Bawden, A. Quasiquotation in LISP. In Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio, 1999), O. Danvy, Ed., University of Aarhus, Dept. of Computer Science, pp. 88--99. Invited talk.
No context found.
Alan Bawden. Quasiquotation in LISP. In O. Danvy, editor, Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--99, San Antonio, 1999. University of Aarhus, Dept. of Computer Science. Invited talk.
No context found.
Bawden, A. Quasiquotation in LISP. In Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio, 1999), O. Danvy, Ed., University of Aarhus, Dept. of Computer Science, pp. 88--99. Invited talk.
No context found.
Bawden, A. Quasiquotation in LISP. In Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio, 1999), O. Danvy, Ed., University of Aarhus, Dept. of Computer Science, pp. 88--99. Invited talk.
No context found.
Alan Bawden. Quasiquotation in LISP. In O. Danvy, editor, Proceedings of the Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--99, San Antonio, 1999. University of Aarhus, Dept. of Computer Science. Invited talk.
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