35 citations found. Retrieving documents...
C. Gomard. Partial type inference for untyped functional programs. In Lisp and Functional Programming '90, pages 282--287. ACM, 1990.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Improving Polymorphic Type Explanations - Yang (2001)   (Correct)

....systems can improve over the W and M algorithms by making explanations comprehensive and more intuitive. There have been several approaches, including Wand s system [59] Johnson and Walz [26] Turner [58] Bernstein and Stark [5] McAdam [32] Dinesh and Tip [14] Choppella [13] and Gomard [17]. 2.5.1 Error Reporting Systems 2.5.2 Wand s system Wand s system [59] is the rst system that records the sites that contribute to each type deduction when type errors are detected, and uses this information to explain why the errors happen. The algorithm records substitutions together with ....

....deleting any step or set of steps is ill formed. A type error is signaled by a type constraint that is trivially unsatis able. The algorithm can identify the subexpressions of interest. However it is hard to understand and explain the relations between those subexpressions. 2.5. 9 Gomard Gomard [17] identi es the untypable subexpressions using a special type untyped . The system uses two level syntax and type rules to isolates the untypable parts. However, if an expression has a type error, the entire expression is annotated with untypable, it is not possible to know which parts contribute ....

C. K. Gomard. Partial type inference for untyped functional programs. In Proceedings of the 17th ACM Symposium on Progrmming Languages, 1990.


Interpreting Specialization in Type Theory - Thiemann (1999)   (Correct)

....and generates code for the run time expressions. Lambdamix [21, 22] is a specializer for the lambda calculus. Its operation depends on the well formedness of annotated expressions, a criterion which ensures that no type errors occur during specialization. Lambdamix employs a partial type system [20] to verify well formedness. Specialization of a well formed expression either loops or it returns a specialized program, but it cannot fail due to type mismatches. There are many approaches to define the semantics of Lambdamix style specializers, based on denotational semantics [22, 21] ....

Carsten K. Gomard. Partial type inference for untyped functional programs. In Proc. 1990 ACM Conference on Lisp and Functional Programming, pages 282--287, Nice, France, 1990. ACM Press.


Improving CPS-Based Partial Evaluation: Writing Cogen by Hand - Bondorf, Dussart (1994)   (15 citations)  (Correct)

.... v 2Variable t : Var v j Lam v t 1 j App t 1 t 2 j Let v t 1 t 2 j Lam v t 1 j App t 1 t 2 j Let v t 1 t 2 Figure 4: Syntax of two level language in [GJ91] not for the let form, though, but it is simple to add) Annotating programs can be done automatically by binding time analysis, see e.g. [Gom90, Hen91]. 2 Direct style Figure 5 specifies the ds specializer S d . Specializer S d is a part of the Lambda mix specializer T from Appendix A of the paper [GJ91] extended with (straightforward) rules for the static and dynamic let forms. Notice that domain 2Value is equal to domain Value since Value ....

Carsten K. Gomard. Partial type inference for untyped functional programs. In 1990 ACM Conference on Lisp and Functional Programming. Nice, France, pages 282--287, June 1990.


A Staging Calculus and its Application to the Verification of.. - Muller (1993)   (4 citations)  (Correct)

.... [ M ] and for all N2 : d such that N1 N2 , that C[N1 ] C[N2 ] 5 Related Work The work described here is closely related to the syntactic approaches to self interpretation studied in [Bar91] and selfinterpretation and partial evaluation developed in [Mog92b] and [Wan93] Following Gomard [Gom90], the latter two papers present type systems that compute a binding time analysis as a preprocessing phase of a partial evaluator. The analysis yields a set of constraints on an annotated type inference tree. Those redexes with static annotations can be reduced statically while those with dynamic ....

C. Gomard. Partial type inference for untyped functional programs (extended abstract). In Proceedings of the ACM Symposium on LISP and Functional Programming, pages 282-287, 1990.


Fast Binding-Time Analysis for Multi-Level Specialization - Glück, Jørgensen (1996)   (13 citations)  (Correct)

....the lambda calculus [13] uses a single constraint based analysis that performs the three tasks in a single run. A monomorphic type system with explicit binding time annotations for the simply typed lambda calculus was given in [15] Partial type inference for the lambda calculus was suggested in [9] and the corresponding algorithm for the inference of partial types was derived from the well known algorithm W (that can be implemented in time O(N 3 ) see [9] for more details) We use an almost linear constraint based algorithm for partial type inference in the pj analysis that achieves ....

.... annotations for the simply typed lambda calculus was given in [15] Partial type inference for the lambda calculus was suggested in [9] and the corresponding algorithm for the inference of partial types was derived from the well known algorithm W (that can be implemented in time O(N 3 ) see [9] for more details) We use an almost linear constraint based algorithm for partial type inference in the pj analysis that achieves essentially the same e#ect. Recently a polymorphic type system for dynamic typing of Scheme was devised [18] that is closely related to the pj analysis. Data flow ....

C. K. Gomard. Partial type inference for untyped functional programs. In ACM Conference on Lisp and Functional Programming, 282--287, ACM Press, 1990.


Incremental Inference of Partial Types - Coppo, Hirschkoff   (Correct)

....(cuurently being developped at the University of Rome) The methods we describe have led to an implemention; we illustrate its use on a few examples. 1 Introduction This paper focuses on the problem of type inference for partial types. Partial types have been introduced in [Tha94] following [Gom90]) to describe some terms that are usually considered as ill typed in a classical setting. Examples of such terms are auto applications (e.g. x: x x) or polymorphic lists (e.g. true; f x: f x) In partial types, the language of types is equipped with a special type, called , to represent ....

C. Gomard. Partial Type Inference for Untyped Functional Programs. In Proceedings of the ACM Conference on Lisp and Functional Programming, pages 282287, 1990.


Finding the Source of Type Errors Interactively - Rittri (1993)   (7 citations)  (Correct)

....work The interactive interface is not tied to a particular type deriver, so we could look around for better ones. Milner s algorithm W [2] gives up when the argument type 3 of a function cannot be unified with the type of an actual argument, so only the first error is reported. Carsten Gomard [3] has made a more robust type deriver that gives types to all typeable parts of a program, and underlines the untypeable parts. Magnus Carlsson [1] has suggested a refinement of this idea, where untypeable parts are assigned the whole set of conflicting types they would need. Such a set might ....

C. K. Gomard. Partial type inference for untyped functional programs (extended abstract). In ACM Conf. on LISP and Functional Programming, pages 282--287, 1990. 4


Partial Evaluation for Higher-Order Languages with State - Thiemann, Dussart (1996)   (13 citations)  (Correct)

....[54] whereas our specializer does it on the fly. Another difference is that their specializer only propagates static contexts whereas our specializer propagates dynamic contexts, too. Our binding time analysis is inspired by binding time specifications using non standard and annotated type systems [26, 34, 40]. The supporting analyses are based on effect systems [50, 70, 76] 7.4 Type based Specialization Hughes [42] has discovered a novel framework for specialization of typed higher order languages. His type specialization is a variation of type inference and is thus able to overcome some ....

Carsten K. Gomard. Partial type inference for untyped functional programs. In Proc. 1990 ACM Conference on Lisp and Functional Programming, pages 282--287, Nice, France, 1990. ACM Press.


Dynamic Typing and Subtype Inference - Aiken, Fähndrich (1995)   (2 citations)  (Correct)

....requires proper handling of side effects, an issue we have not yet considered. Besides previous work on program analysis using set constraints, Henglein s work on dynamic typing is the most closely related to our own. Henglein s work is based, in turn, on earlier works of Thatte and Gomard [Gom90] . Thatte originally worked with a system called partial types [Tha88] in which types could be coerced to a universal type, but not vice versa a pure subtyping system. Coercions from type Dynamic were introduced in a subsequent paper [Tha90] as discussed in Section 3, this is not subtyping. A ....

....to a universal type, but not vice versa a pure subtyping system. Coercions from type Dynamic were introduced in a subsequent paper [Tha90] as discussed in Section 3, this is not subtyping. A large number of analysis algorithms for dynamically typed languages have been proposed in recent years [Gom90, AM91, CF91, Hen92b, WH92, WC94]. With the exception of the works of Henglein, Thatte, and Gomard, it is fair to characterize all of these systems as based on subtyping; none treat tag inference. In this paper, we have shown how to combine expressive subtyping with the ability to infer minimal completions of tagging and ....

C. Gomard. Partial type inference for untyped functional programs (extended abstract). In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 282--287, 1990.


Separate Polyvariant Binding Time Reconstruction - Consel, Jouvelot, Ørbæk (1994)   (5 citations)  (Correct)

....is primarily used for partial evaluation [17] and optimizing compilation [1] where it allows some evaluations to be performed at compile time, thus improving the overall e#ciency. It has been studied within the framework of abstract interpretation [2, 4, 6, 8, 9, 10, 13, 27] and type systems [23, 24, 14, 15]. By using a more symbolic approach, our framework allows binding time analysis to be expressed without the added complexity of the previous systems, in particular two level lambda calculi and annotated terms. Also, contrarily to [14] function types are compatible with the usual functionality of ....

....[2, 4, 6, 8, 9, 10, 13, 27] and type systems [23, 24, 14, 15] By using a more symbolic approach, our framework allows binding time analysis to be expressed without the added complexity of the previous systems, in particular two level lambda calculi and annotated terms. Also, contrarily to [14], function types are compatible with the usual functionality of expressions since binding time properties are kept in e#ects; this is particularly visible for dynamic lambdas. Finally, all previous analyses assume that the whole program text is available, although admittedly two level ....

C. K. Gomard. Partial type inference for untyped functional programs. In ACM Conference on Lisp and Functional Programming, pages 282--287, 1990.


Global Tagging Optimization by Type Inference - Henglein (1992)   (46 citations)  (Correct)

....are referred to as positive and negative coercions, respectively. A subtyping discipline has only positive coercions. In Thatte s language, however, the types of bound variables must be explicitly declared and it is thus not suitable for application in automatic tagging optimization. Gomard [Gom90] describes type inference for implicitly typed programs with no required type information at all. In his type system there are no untagging operations for first order values, but instead tagged versions of base operations are used. As a consequence tagging may spread to every point reachable ....

C. Gomard. Partial type inference for untyped functional programs (extended abstract). In Proc. LISP and Functional Programming (LFP), Nice, France, July 1990.


Correctness of Binding-time Analysis - Palsberg (1993)   (25 citations)  (Correct)

....called well annotatedness, was first presented by Gomard and Jones (1991) They proved that a particular 2 Jens Palsberg partial evaluator cannot go wrong when given a well annotated program. Gomard also presented a binding time analysis that always produces well annotated programs (Gomard, 1990; Gomard, 1991) In this paper we prove that a weaker condition than that of Gomard and Jones implies consistency. Our condition is decidable, subsumes the one of Gomard and Jones, and was first studied by Schwartzbach and the present author (Palsberg Schwartzbach, 1992) Our result implies the ....

....any static abstraction in E, then E 1 is either free in E or it is bound in a dynamic abstraction. Hence, L(var(E 1 ) Dyn, contradicting L(var(E 1 ) Recall that by the core of an analysis we mean its restriction to the calculus. Corollary 27 The core of the binding time analysis of Gomard (1990) and the binding time analysis of Mogensen (1992) are correct. Proof Both produce well annotated 2 level terms (Palsberg Schwartzbach, 1992) The conclusion then follows from theorem 26 and definition 9. Theorem 28 If a 2 level term is well annotated, then all abstractions and applications ....

Gomard, Carsten K. 1990. Partial type inference for untyped functional programs. Pages 282--287 of: Proc. ACM conference on lisp and functional programming.


Efficient Type Inference for Higher-Order Binding-Time Analysis - Henglein (1991)   (62 citations)  (Correct)

.... more recently, higher order languages have also been analyzed: Mogensen [Mog89] Bondorf [Bon90a,Bon90b] Consel [Con90] and Hunt and Sands [HS91] describe higher order binding time analysis in an abstract interpretation framework; Nielson and Nielson [NN88a] Schmidt [Sch87] and Gomard [Gom89,Gom90,GJ91] formalize it as a type inference (or type annotation) problem within two level typed calculus. A two level type system has an early binding and a late binding variant of every operator, which are distinguished by binding time annotations. In Gomard s two level typed calculus there is a ....

....no underscore. The main difference to the original two level calculus TML of Nielson [NN88b] is that in Nielson s work the represented terms are also typed, which is reflected in a more complex type structure for (two level) terms denoting such unevaluated object terms . Nielson and 2 In [Gom90] the type type is actually called untyped ; and in [Gom89] it is referred to as code because of its intended interpretation in the two level calculus. Nielson [NN88a] and Schmidt [Sch87] have shown that every simply typed term has a minimal completion e in TML in the sense that all ....

[Article contains additional citation context not shown here]

C. Gomard. Partial type inference for untyped functional programs (extended abstract) . In Proc. LISP and Functional Programming (LFP), Nice, France, July 1990.


Binding-time Analysis: Abstract Interpretation versus Type .. - Palsberg, Schwartzbach (1994)   (7 citations)  (Correct)

....version of it. Thus, the best possible implementations are algorithms that produce the v least well annotated versions of their inputs. We compare the best possible implementations of the two well annotatedness criteria. These algorithms indeed exist, as follows. Both the algorithms of Gomard [5] and Henglein [7] produce the v least Gomard Jones well annotated 2 level version of a given term. We believe (but have not proved) that the algorithms of Bondorf and Consel produces the v least Palsberg Schwartzbach well annotated 2 level version of a given term. A naive algorithm that ....

Carsten K. Gomard. Partial type inference for untyped functional programs. In Proc. ACM Conference on Lisp and Functional Programming, pages 282--287, 1990.


Strong Normalization with Non-structural Subtyping - Wand, O'Keefe, Palsberg (1995)   (2 citations)  (Correct)

....dynamically typed languages. In particular, it is desirable to allow strongly typed languages to have holes in the type structure, so that portions of the program that are not fully understood may be written using dynamic typing. There have been several proposals for creating such holes, such as [3, 9, 10]. Typically, one gives the result of such an untyped computation a special type, untyped. Such a value can be passed as an ordinary value, but is not manipulable except by a polymorphic procedure, such as print [10] Thatte [9] called this partial type inference. The addition of a type untyped ....

....of a type untyped allows several different kinds of flexibility. It allows portions of a program to escape the scrutiny of the type checker [10] it allows for heterogeneous lists and persistent data [9] and it can also be used to facilitate binding time analysis or analysis of type errors [3]. It also serves as a basis for dealing with the don t care types for records in [8] Work supported by the National Science Foundation and DARPA under grants CCR 9002253 and CCR9014603. y College of Computer Science, Northeastern University, 360 Huntington Avenue, 161CN, Boston, MA 02115, ....

Carsten K. Gomard. Partial type inference for untyped functional programs. In Proc. ACM Conference on Lisp and Functional Programming, pages 282--287, 1990.


A Unified Framework for Binding-Time Analysis - Thiemann (1997)   (1 citation)  (Correct)

....for the remaining ones. Binding time analyses come in two flavors: A monovariant BTA computes a single mapping of program points to binding times, whereas a polyvariant BTA allows for several such mappings. Both alternatives have their merits. Monovariant BTAs are simple and efficient to implement [4, 14, 15, 18, 20]. However, in some applications static and dynamic values flow through the same program points, which forces a monovariant BTA to annotate the program points as dynamic. A polyvariant BTA [5, 6] yields better results in these cases, but is also considerably more expensive. In the current work we ....

....forces a monovariant BTA to annotate the program points as dynamic. A polyvariant BTA [5, 6] yields better results in these cases, but is also considerably more expensive. In the current work we concentrate on monovariant BTAs for the lambda calculus as they are used in many partial evaluators [4, 14, 15, 18]. Our analyses achieve some degree of polyvariance because we admit liberal binding time coercions and rely on a more precise inclusion based flow analysis framework. BTA is often presented as a monolithic analysis which makes it unnecessarily hard to understand and to reason about [2, 3, ....

[Article contains additional citation context not shown here]

C. K. Gomard. Partial type inference for untyped functional programs. In LFP 1990 [23], pages 282--287.


Soft Typing with Conditional Types - Aiken, Wimmers, Lakshman (1994)   (131 citations)  (Correct)

.... languages have been dubbed soft typing systems by Cartwright and Fagan [6] Interest in inferring types for dynamically typed programs began with Reynolds [19] Since then, numerous algorithms have been proposed, based variously on tree grammars [13, 23] ad hoc extensions of static type systems [6, 10, 21], abstract interpretation [2, 20] and constraint solving [11, 12] Many of these techniques are complicated, limited in power, or both. In this paper we present a soft typing system that is both simple and powerful. Our method is simple because we address a type inference problem directly using ....

....compares our work with a wide variety of related work. The coverage of each proposal is necessarily brief. 9.1 Type Inference Systems A number of type inference systems for dynamically typed languages have been proposed. Gomard s system adds to the Hindley Milner type system an undefined type [10] and then uses a minor variation of the Hindley Milner type assignment algorithm. The type undefined represents a value for which nothing is statically known, which is the same role played by the type 1 in our system. Without other type operators, the types assigned by Gomard s system are not ....

Gomard, C. Partial type inference for untyped functional programs (extended abstract). In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming (1990), pp. 282--287.


A Practical Soft Type System for Scheme - Wright, Cartwright (1993)   (58 citations)  (Correct)

....(assignment and control) and implemented efficiently, it could serve as the basis for a stronger soft type system for Scheme. Several researchers have developed static type systems that extend the Hindley Milner type discipline by adding a maximal type as the type of otherwise untypable phrases [7, 8, 16, 20, 21]. This framework is too imprecise to form the basis for a soft type system because it does not support union types or inferred recursive types. The frequency with which is assigned as the type of a phrase prevents its use as a reliable indicator of potential program errors. Nevertheless, ....

Gomard, C. K. Partial type inference for untyped functional programs. Proceedings of the 1990 ACM Conference on LISP and Functional Programming (June 1990), 282--287.


Self-applicable Partial Evaluation for Pure Lambda Calculus - Mogensen (1992)   (10 citations)  (Correct)

....of representation, as the representation of the representation of a term is needed. Also, the problem of making a partial evaluator that is total and non trivial is no mean task. 5 The partial evaluator We adopt the basic ideas and notation from lambda mix, as described in [Gomard 1989] [Gomard 1990], Jones et al. 1990] and [Gomard and Jones 1991] the syntax tree is annotated with binding times that describe whether an operation should be performed at partial evaluation time, or remain in the residual program. The operations that are performed (the static operations) are shown in normal ....

....out of a hat. Here we describe how the annotation can be obtained automatically. We, again, use the same basic idea as in lambda mix and base our analysis on type inference. Because of the different languages, our method is in some respects simpler and others more complex than the one described in [Gomard 1990]. It is simpler because we have fewer constructions in the language, i.e. we do not have atomic values, but it is more complex because we have to infer recursive types to get acceptable results. We construct a type system such that annotated programs are well typed if and only if the annotation is ....

Gomard, C. 1990. Partial Type Inference for Untyped Functional Programs, Proceedings of the ACM Conference on Lisp and Functional Programming 1990, ACM Press: 282-287.


Strictness Analysis in Logical Form - Jensen (1991)   (38 citations)  (Correct)

....correct results. Thus we see our work as complementary to the work in [11] It is evident that the developments reported here are of limited use if they are not accompanied by advances in the technology of implementing these program logics. Fortunately, work is going on in this area, see e.g. [6]. We have not made any attempt to prove the strictness logic correct with respect to a standard semantics for the language. This is because once we have established the equivalence to the abstract interpretation we can rely on previous correctness results for the abstract interpretation. Still, ....

C. K. Gomard. Partial type inference for untyped functional programs. In Lisp and Functional Programming '90, pages 282--287. ACM, 1990.


Explicit Substitutitions for Constructive Necessity - Ghani, de Paiva, Ritter   (Correct)

....is bound to values at compile time, the so called static or compile time variables and the other kind of variables which is bound at run time, the so called dynamic or run time variables. The process of separating the variables into compile time or run time variables is called binding analysis [4, 10, 15]. The aim of binding analysis is to identify variables as compile time variables if they correspond to parts of the program which are guaranteed to terminate and which are arguments of needed redexes. In this way one obtains a distinction between two kinds of function spaces: on the one hand, we ....

C.K. Gomard. Partial type inference for untyped functional programs. In Proc. ACM conference on Lisp and functional programming, pages 282--287, 1990.


Analysis of Recursive Types in Lisp-like Languages - Wang, Hilfinger (1992)   (15 citations)  (Correct)

....ML type inference to an imperative language and to find partial solutions. For example, Johnson s type flow analysis includes an application of a unification algorithm to Lisp [5] and Gomard has developed an algorithm specifically for partial inference of otherwise untypable functional programs [4]. Related to our work, there is also the algorithm of Mishra and Reddy, which can deal with recursive structures [16] In this classification, the imperative methods are based on algorithms of Kaplan and Ullman [8, 9] and of Miller [14] In Common Lisp terms, they deal mainly with generic ....

Carsten K. Gomard. Partial type inference for untyped functional programs. In Proceedings of the 1990 ACM Conference on LISP and Functional Programming, pages 282--287, June 1990.


Dynamic Typing and Subtype Inference - Aiken, Fähndrich (1995)   (2 citations)  (Correct)

....programs requires proper handling of side effects, an issue we have not considered. Besides previous work on program analysis using set constraints, Henglein s work on dynamic typing is the most closely related to our own. Henglein s work is based, in turn, on earlier works of Thatte and Gomard [Gom90] . Thatte originally worked with a system called partial types [Tha88] in which types could be coerced to a universal type, but not vice versa a pure subtyping system. Coercions from type Dynamic were introduced in a subsequent paper [Tha90] A large number of analysis algorithms for ....

....types [Tha88] in which types could be coerced to a universal type, but not vice versa a pure subtyping system. Coercions from type Dynamic were introduced in a subsequent paper [Tha90] A large number of analysis algorithms for dynamically typed languages have been proposed in recent years [Gom90, AM91, CF91, Hen92b, WH92, WC94]. With the exception of the works of Henglein, Thatte, and Gomard, it is fair to characterize all of these as (inclusion based) subtyping systems; none treat tag inference. In this paper, we have shown how to combine expressive subtyping with the ability to infer minimal completions of tagging and ....

C. Gomard. Partial type inference for untyped functional programs (extended abstract). In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 282--287, 1990.


Partial Evaluation for the Lambda Calculus - Jones, Gomard, Sestoft   Self-citation (Gomard)   (Correct)

....: D te2 : D te3 : D if te1 then te2 else te3 : D (Op dyn) te1 : D . ten : D op te1 . ten : D Figure 4: Type rules checking well annotatedness. quite well understood and can be used to get a nice formulation of the problem to be solved by binding time analysis [4, 22]. We saw in [12, Section 5.7] and [11] that type rules can be used to check well annotatedness, and we now apply similar reasoning to the lambda calculus. De nition 1. The two level types t are as follows, where ranges over type variables: t : j S j D j t t A type environment is a ....

C.K. Gomard. Partial type inference for untyped functional programs. In 1990 ACM Conference on Lisp and Functional Programming, Nice, France, pages 282{


Analyse Statique De Programmes : Fondements Et Applications - Jensen (1999)   (Correct)

No context found.

C. Gomard. Partial type inference for untyped functional programs. In Lisp and Functional Programming '90, pages 282--287. ACM, 1990.

First 50 documents

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