Continuation calculus
Programs with control are usually modeled using lambda calculus extended with control operators. Instead of modifying lambda calculus, we consider a different model of computation. We introduce continuation calculus, or CC, a deterministic model of computation that is evaluated using only head reduc...
Main Authors: | , |
---|---|
Format: | Article |
Language: | English |
Published: |
Open Publishing Association
2013-09-01
|
Series: | Electronic Proceedings in Theoretical Computer Science |
Online Access: | http://arxiv.org/pdf/1309.1257v1 |
id |
doaj-0f2674ce304742e981623875b48074ec |
---|---|
record_format |
Article |
spelling |
doaj-0f2674ce304742e981623875b48074ec2020-11-24T23:14:50ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802013-09-01127Proc. COS 2013668510.4204/EPTCS.127.5Continuation calculusBram GeronHerman GeuversPrograms with control are usually modeled using lambda calculus extended with control operators. Instead of modifying lambda calculus, we consider a different model of computation. We introduce continuation calculus, or CC, a deterministic model of computation that is evaluated using only head reduction, and argue that it is suitable for modeling programs with control. It is demonstrated how to define programs, specify them, and prove them correct. This is shown in detail by presenting in CC a list multiplication program that prematurely returns when it encounters a zero. The correctness proof includes termination of the program. In continuation calculus we can model both call-by-name and call-by-value. In addition, call-by-name functions can be applied to call-by-value results, and conversely.http://arxiv.org/pdf/1309.1257v1 |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Bram Geron Herman Geuvers |
spellingShingle |
Bram Geron Herman Geuvers Continuation calculus Electronic Proceedings in Theoretical Computer Science |
author_facet |
Bram Geron Herman Geuvers |
author_sort |
Bram Geron |
title |
Continuation calculus |
title_short |
Continuation calculus |
title_full |
Continuation calculus |
title_fullStr |
Continuation calculus |
title_full_unstemmed |
Continuation calculus |
title_sort |
continuation calculus |
publisher |
Open Publishing Association |
series |
Electronic Proceedings in Theoretical Computer Science |
issn |
2075-2180 |
publishDate |
2013-09-01 |
description |
Programs with control are usually modeled using lambda calculus extended with control operators. Instead of modifying lambda calculus, we consider a different model of computation. We introduce continuation calculus, or CC, a deterministic model of computation that is evaluated using only head reduction, and argue that it is suitable for modeling programs with control. It is demonstrated how to define programs, specify them, and prove them correct. This is shown in detail by presenting in CC a list multiplication program that prematurely returns when it encounters a zero. The correctness proof includes termination of the program. In continuation calculus we can model both call-by-name and call-by-value. In addition, call-by-name functions can be applied to call-by-value results, and conversely. |
url |
http://arxiv.org/pdf/1309.1257v1 |
work_keys_str_mv |
AT bramgeron continuationcalculus AT hermangeuvers continuationcalculus |
_version_ |
1725593089956904960 |