A type system for Continuation Calculus

نویسندگان

  • Herman Geuvers
  • Wouter Geraedts
  • Bram Geron
  • Judith van Stegeren
چکیده

Continuation Calculus (CC), introduced by Geron and Geuvers [2], is a simple foundational model for functional computation. It is closely related to lambda calculus and term rewriting, but it has no variable binding and no pattern matching. It is Turing complete and evaluation is deterministic. Notions like “call-by-value” and “call-by-name” computation are available by choosing appropriate function definitions: e.g. there is a call-by-value and a call-by-name addition function. In the present paper we extend CC with types, to be able to define data types in a canonical way, and functions over these data types, defined by iteration. Data type definitions follow the so-called “Scott encoding” of data, as opposed to the more familiar “Church encoding”. The iteration scheme comes in two flavors: a call-by-value and a call-by-name iteration scheme. The call-by-value variant is a double negation variant of call-by-name iteration. The double negation translation allows to move between call-by-name and call-by-value.

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

ثبت نام

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

منابع مشابه

Normalization and continuation-passing-style interpretation of simply-typed call-by-need λ-calculus with control

Ariola et al defined a call-by-need λ-calculus with control, together with a sequent calculus presentation of it. They mechanically derive from the sequent calculus presentation a continuationpassing-style transformation simulating the reduction. In this paper we consider the simply-typed version of the calculus and proove its normalization by means of a realizability interpretation. This justi...

متن کامل

From shift and reset to polarized linear logic

Griffin [22] pointed out that, just as the pure λ-calculus corresponds to intuitionistic logic, a λ-calculus with firstclass continuations corresponds to classical logic. We study how first-class delimited continuations [13], in the form of Danvy and Filinski’s shift and reset operators [10, 11], can also be logically interpreted. First, we refine Danvy and Filinski’s type system for shift and ...

متن کامل

A Classical Sequent Calculus with Dependent Types

Dependent types are a key feature of type systems, typically used in the context of both richly-typed programming languages and proof assistants. Control operators, which are connected with classical logic along the proof-as-program correspondence, are known to misbehave in the presence of dependent types, unless dependencies are restricted to values. We place ourselves in the context of the se...

متن کامل

Continuation-Passing Style and Strong Normalisation for Intuitionistic Sequent Calculi

The intuitionistic fragment of the call-by-name version of Curien and Herbelin’s λμμ̃-calculus is isolated and proved strongly normalising by means of an embedding into the simply-typed λ-calculus. Our embedding is a continuation-and-garbage-passing style translation, the inspiring idea coming from Ikeda and Nakazawa’s translation of Parigot’s λμ-calculus. The embedding simulates reductions whil...

متن کامل

Characterisation of Strongly Normalising lambda-mu-Terms

We provide a characterisation of strongly normalising terms of the λμ-calculus by means of a type system with intersection and product types. The presence of the latter and a restricted use of the type ω enable us to represent the particular notion of continuation used in the literature for the definition of semantics for the λμ-calculus. This makes it possible to lift the well-known characteri...

متن کامل

From Continuation Passing Style to Krivine’s Abstract Machine

We describe, for three different extensions of typed lambda calculus, how the rules for a version of Krivine’s abstract machine can be derived from those of continuation passing style (CPS) semantics. The three extensions are: Parigot’s λμcalculus, Pym and Ritter’s λμν-calculus, and an extension of the call-by-name lambda calculus with built-in types and primitive functions. We also show how Kr...

متن کامل

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


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

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

دوره   شماره 

صفحات  -

تاریخ انتشار 2014