Results 1  10
of
11
A Polymorphic Record Calculus and Its Compilation
 ACM Transactions on Programming Languages and Systems
, 1995
"... this article appeared in Proceedings of ACM Symposium on Principles of Programming Languages, 1992, under the title \A compilation method for MLstyle polymorphic record calculi." This work was partly supported by the Japanese Ministry of Education under scienti c research grant no. 06680319. A ..."
Abstract

Cited by 73 (8 self)
 Add to MetaCart
this article appeared in Proceedings of ACM Symposium on Principles of Programming Languages, 1992, under the title \A compilation method for MLstyle polymorphic record calculi." This work was partly supported by the Japanese Ministry of Education under scienti c research grant no. 06680319. Author's address: Research Institute for Mathematical Sciences, Kyoto University, Sakyoku, Kyoto 60601, JAPAN; email: ohori@kurims.kyotou.ac.jp Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of ACM. To copy otherwise, or to republish, requires a fee and/or speci c permission. c 1999 ACM 01640925/99/01000111 $00.75
Partial Proof Trees as Building Blocks for a Categorial Grammar
 Linguistics and Philosophy
, 1997
"... We describe a categorial system (PPTS) based on partial proof trees (PPTs) as the building blocks of the system. The PPTs are obtained by unfolding the arguments of the type that would be associated with a lexical item in a simple categorial grammar. The PPTs are the basic types in the system and a ..."
Abstract

Cited by 37 (10 self)
 Add to MetaCart
We describe a categorial system (PPTS) based on partial proof trees (PPTs) as the building blocks of the system. The PPTs are obtained by unfolding the arguments of the type that would be associated with a lexical item in a simple categorial grammar. The PPTs are the basic types in the system and a derivation proceeds by combining PPTs together. We describe the construction of the finite set of basic PPTs and the operations for combining them. PPTS can be viewed as a categorial system incorporating some of the key insights of lexicalized tree adjoining grammar, namely the notion of an extended domain of locality and the consequent factoring of recursion from the domain of dependencies. PPTS therefore inherits the linguistic and computational properties of that system, and so can be viewed as a `middle ground' between a categorial grammar and a phrase structure grammar. We also discuss the relationship between PPTS, natural deduction, and linear logic proofnets, and argue that natural ...
A Simply Typed Context Calculus with FirstClass Environments
, 2002
"... . We introduce a simply typed calculus " which has both contexts and environments as firstclass values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechani ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
. We introduce a simply typed calculus " which has both contexts and environments as firstclass values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechanism which takes care of packing and unpacking of the term which is used to fill in the holes of the context. " is a conservative extension of the simply typed ficalculus, enjoys subject reduction property, is confluent and strongly normalizing. The traditional method of defining substitution does not work for our calculus. So, we also introduce a new method of defining substitution. Although we introduce the new definition of substitution out of necessity, the new definition turns out to be conceptually simpler than the traditional definition of substitution. 1 Introduction Informally speaking, a context (in calculus) is a term with some holes in it. For example, writing [ ] for a hole, y: [ ] is a...
Simple type inference for structural polymorphism
 In: The Ninth International Workshop on Foundations of ObjectOriented Languages
, 2002
"... We propose a new way to mix constrained types and type inference, where the interaction between the two is minimal. By using local constraints embedded in types, rather than the other way round, we obtain a system which keeps the usual structure of an HindleyMilner type system. In practice, this me ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
We propose a new way to mix constrained types and type inference, where the interaction between the two is minimal. By using local constraints embedded in types, rather than the other way round, we obtain a system which keeps the usual structure of an HindleyMilner type system. In practice, this means that it is easy to introduce local constraints in existing type inference algorithms. Eventhough our system is notably weaker than general constraintbased type systems, making it unable to handle subtyping for instance, it is powerful enough to accomodate many features, from simple polymorphic records à la Ohori to Objective Caml’s polymorphic variants, and accurate typing of pattern matching (i.e. polymorphic message dispatch), all these through tiny variations in the constraint part of the system. 1.
Extensible records with scoped labels
 In: Proceedings of the 2005 Symposium on Trends in Functional Programming
, 2005
"... Records provide a safe and flexible way to construct data structures. We describe a natural approach to typing polymorphic and extensible records that is simple, easy to use in practice, and straightforward to implement. A novel aspect of this work is that records can contain duplicate labels, effec ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Records provide a safe and flexible way to construct data structures. We describe a natural approach to typing polymorphic and extensible records that is simple, easy to use in practice, and straightforward to implement. A novel aspect of this work is that records can contain duplicate labels, effectively introducing a form of scoping over the labels. Furthermore, it is a fully orthogonal extension to existing type systems and programming languages. In particular, we show how it can be used conveniently with standard HindleyMilner, qualified types, and MLF. 1
Labeled and optional arguments for Objective Caml
 In JSSST Workshop on Programming and Programming Languages
, 2001
"... We added labeled and optional arguments to the Objective Caml language, combining currying and commutation. Contrary to a previous attempt, the formal system we present here defines semantics of both outoforder application and optional parameter discarding independently of types. We extend the ML ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We added labeled and optional arguments to the Objective Caml language, combining currying and commutation. Contrary to a previous attempt, the formal system we present here defines semantics of both outoforder application and optional parameter discarding independently of types. We extend the ML type system to cope with these new features, and show how types can be used to obtain an efficient compilation method. 1
unknown title
"... Extensible records with scoped labels Records provide a safe and flexible way to construct data structures. We describe a natural approach to typing polymorphic and extensible records that is simple, easy to use in practice, and straightforward to implement. A novel aspect of this work is that recor ..."
Abstract
 Add to MetaCart
Extensible records with scoped labels Records provide a safe and flexible way to construct data structures. We describe a natural approach to typing polymorphic and extensible records that is simple, easy to use in practice, and straightforward to implement. A novel aspect of this work is that records can contain duplicate labels, effectively introducing a form of scoping over the labels. Furthermore, it is a fully orthogonal extension to existing type systems and programming languages. In particular, we show how it can be used conveniently with standard HindleyMilner, qualified types, and MLF. 1.
IsgRr951
"... In the label selective calculus, arguments are passed by name rather than by position: abstractions f` ) xg M and applications M f` ) Ng are parametrized by an explicit label ` and arbitrary commutations involving distinct labels are allowed. Is such an expressive language amenable to efficient ex ..."
Abstract
 Add to MetaCart
In the label selective calculus, arguments are passed by name rather than by position: abstractions f` ) xg M and applications M f` ) Ng are parametrized by an explicit label ` and arbitrary commutations involving distinct labels are allowed. Is such an expressive language amenable to efficient execution? We show that, when S is equipped with an ML like type system the answer is yes: every welltyped S program can be transformed into an observationally equivalent ML program where all labels have been erased. Traditional compilation methods can then be applied. iii Contents 1 Introduction 1 2 Embedding the Calculus in S 1 3 A Record Calculus on N 2 4 S With Generalized Labels 2 5 The Compilation Challenge 3 6 The Typed Polymorphic S 3 7 Compiling S 3 8 Example 4 9 Interpretation Trick 5 10Conclusion 5 iv Compiling The TypedPolymorphic LabelSelective Calculus 1 1 Introduction The prime innovation introduced by the labelselective calculus S is to pass arg...
C∀, a Study in Evolutionary Design in Programming Languages
, 2004
"... New programming languages appear constantly. Many of them are based on existing ones but differ sufficiently so they are incompatible (e.g., C/C++ and Java). Building on the C8 language (Ditchfield [47] and Bilson [16]), this thesis continues the C8 "evolutionary" approach to programming l ..."
Abstract
 Add to MetaCart
New programming languages appear constantly. Many of them are based on existing ones but differ sufficiently so they are incompatible (e.g., C/C++ and Java). Building on the C8 language (Ditchfield [47] and Bilson [16]), this thesis continues the C8 "evolutionary" approach to programming language design based upon the very successful C programming language, preserving its syntax and semantics while extending it with features that considerably enhance its expressiveness. The evolutionary approach allows for the introduction of powerful abstraction mechanisms with minimal disruption to legacy code, truly "making the future safe for the past" [20]...