Towards a Practical Programming Language Based on the Polymorphic Lambda Calculus

نویسندگان

  • Peter Lee
  • Mark Leone
  • Spiro Michaylov
  • Frank Pfenning
چکیده

The value of polymorphism in programming languages has been demonstrated by languages such as ML [19]. Recent e cient implementations of ML have shown that a language with implicit polymorphism can be practical [1]. The core of ML's type system is limited, however, by the fact that only instances of polymorphic functions may be passed as arguments to other functions, but not the polymorphic functions themselves. This has serious practical consequences, particularly for modular programming. For this reason, ML incorporates the generic let construct which cannot be de ned in terms of -abstraction and other extensions to the basic Hindley-Milner type system [12, 18], such as the module system [16]. More powerful type systems allowing explicit quanti cation over types, such as the second-order polymorphic -calculus [11, 27] (which we refer to as F 2 ), are free of such limitations. Thus, it is natural to ask whether they too can form the basis for practical programming languages.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Transposing F to C (preliminary Report)

We present a type-preserving translation of the polymorphic lambda calculus (System F) into an extension of the C programming language supporting parameterized classes and polymorphic methods. We observe that whilst parameterized classes alone are sufficient to encode the parameterized datatypes and letpolymorphism of languages such as ML and Haskell, it is the presence of polymorphic virtual m...

متن کامل

Three Approaches to Type Structure

We examine three disparate views of the type structure of ]programming languages: Milner's type deduction system and polymorphic ~[e_.!t construct, the theory of subtypes and generic operators, and the polymorphic or second-order typed lambda calculus. These approaches are illustrated with a functional language including product, sum and list constructors. The syntactic behavio~ of types is for...

متن کامل

Programming in higher-order typed lambda-calculi

Typed A-calculi have been objects of theoretical study for many years. Recently, it has been shown that all the inductively defined types (including numbers, booleans, lists, and trees, as well as more complex structures like typed terms and proofs) can be represented in higher-order A-calculi with no built-in types or type constructors. This raises the possibility of designing practical progra...

متن کامل

An Introduction to the Polymorphic Lambda Calculus

The polymorphic (or second-order) typed lambda calculus was invented by Jean-Yves Girard in 1971 11, 10], and independently reinvented by myself in 1974 24]. It is extraordinary that essentially the same programming language was formulated independently by the two of us, especially since we were led to the language by entirely diierent motivations. In my own case, I was seeking to extend conven...

متن کامل

A Design for a Security-Typed Language with Certificate-Based Declassification

This paper presents a calculus that supports information-flow security policies and certificate-based declassification. The decentralized label model and its downgrading mechanisms are concisely expressed in the polymorphic lambda calculus with subtyping (System F≾). We prove a conditioned version of the noninterference theorem such that authorization for declassification is justified by digita...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1989