### Table 1: Typing and Evaluation Rules for Call-by-Value Functional Languages.

1995

"... In PAGE 2: ..., if ; 2 , then ( ! ) 2 . A set of typing rules for functional languages appears in Table1 ; all variables come tagged with types. The typing rules are parameterized by a set C of term constructors, which are tuples of the form hf; 1;:::; n ) i where n 0 and 1;:::; n; 2 .... In PAGE 2: ... The second relation, !, is the basic one-step evaluation relation for the particular language, which is de ned using the notion of an evaluation context to impose an order on the evaluation of subexpres- sions [7]. Table1 speci es a general rewriting framework for call-by-value languages. The only redex rule common to all call-by-value languages is the -reduction rule; here, V ranges over a set of values|expressions that cannot be fur- ther evaluated|which varies among languages but always includes -abstractions.... In PAGE 3: ... The syntax of VPCF is now completely de ned by Table 1. In addition to the redex rule in Table1 , VPCF has the redexes given in Table 2 which re ect the behaviour of its term constructors. The additional productions for evalua- tion contexts (beyond those of Table 1) are also given in Table 2, where a value V is a numeral n, a -abstraction, or Y .... In PAGE 3: ... In addition to the redex rule in Table 1, VPCF has the redexes given in Table 2 which re ect the behaviour of its term constructors. The additional productions for evalua- tion contexts (beyond those of Table1 ) are also given in Table 2, where a value V is a numeral n, a -abstraction, or Y . One can verify that every closed non-value can be written uniquely as E[R] with R a redex.... ..."

Cited by 19

### Table 2. ML Version of the Call-by-Value Fixed-Point Combinator

1994

"... In PAGE 8: ... For example, languages that check the types of programs before com- piling them can compensate for the problem with cbvY just mentioned by employing a more general type inference system than that of ML or by allowing the programmer to use explicit recursive types. The ML version of the call-by-value xed-point combinator is given in Table2 . To under- stand this program, think of it as an annotation of the earlier program with coercions that make the types of subterms explicit.... ..."

Cited by 3

### Table 2: Operational Semantics for References 2. (Substitution) If ; ` v : and ; [x: ] ` e0 : 0, and if Close ; ( ) , then ; ` [v=x]e0 : 0 3. (Specialization) If ; ` e : and Close ; ( ) 0, the ; ` e : 0. The proofs are routine inductions on the structure of typing derivations. Substitution is stated only for values, in recognition of the fact that in a call-by-value language only values are ever substituted for variables during evaluation.

1994

Cited by 59

### Table 1: Call-by-Value Evaluation

1998

"... In PAGE 15: ...e. if t ! ev v v is derivable according to Table1 , then t and v have the same denotation in Av . Note, that for values v, the interpretation [[v]]v is de ned for arbitrary assignments .... ..."

Cited by 9

### Table 1.8: Polymorphic extension of a type system. to de ne a retraction-embedding pair from to the type ( !o)!o, one would require that each type is a retract of the type of answers o. It is also possible to give a proper typing for the functions EK and RK using recursive types, but we prefer the polymorphic solution. note that we don apos;t really use the full power of polymorphism, since the only polymorphic types occur in the form 8s:( !s)!s, where s is not free in . To restrict the codomain of the CPS transform to a call-by-value language, we also de ne the calculus cp8, to be an extension of cp with polymorphic types. In addition to polymorphic extension, we will also consider an extension of the type system of a calculus with products. This extension is discussed in Section 1.9.2. 1.3 Source to Source Transforms A source-to-source transform is simply a function mapping terms of one calculus to terms of another calculus. Since we work in typed lambda calculi, instead of mapping terms to terms, we study transforms that map typing sequents of one calculus to typing sequents of

1997

Cited by 4

### Table 2: Operational Semantics for References Lemma 2.1 1. (Weakening) Suppose that ; ` e : . If l 62 dom( ), then [l: ]; ` e : , and if x 62 dom( ), then ; [x: ] ` e : . 2. (Substitution) If ; ` v : and ; [x: ] ` e0 : 0, and if Close ; ( ) , then ; ` [v=x]e0 : 0 3. (Specialization) If ; ` e : and Close ; ( ) 0, the ; ` e : 0. The proofs are routine inductions on the structure of typing derivations. Substitution is stated only for values, in recognition of the fact that in a call-by-value language only values are ever substituted for variables during evaluation.

1994

Cited by 59

### Table 3: Call-by-Value Truth De nition

1998

Cited by 9