Filters








2,130 Hits in 3.2 sec

Explicit polymorphism and CPS conversion

Robert Harper, Mark Lillibridge
1993 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93  
We study the typing properties of CPS conversion for an extension of F ! with control operators.  ...  In contrast, the \ML-like" strategies evaluate beneath constructor abstractions, re ecting the usual interpretation of programs in languages based on implicit polymorphism.  ...  Recent languages, notably Quest 4] and LEAP 35] , are based instead on the notion of explicit polymorphism introduced by Girard and Reynolds 39] .  ... 
doi:10.1145/158511.158630 dblp:conf/popl/HarperL93 fatcat:gggc4yhpnvenpkml7nxb32etwu

A type-preserving compiler in Haskell

Louis-Julien Guillemette, Stefan Monnier
2008 SIGPLAN notices  
Abstract Syntax • We show a CPS and closure conversion over System F where type preservation is enforced by type families and type equality constraints.  ...  This allows type-based program verification and is a promising compromise between plain old types and full blown Hoare logic proofs.  ...  CPS conversion: Exp t → ExpK (cps t) Conversion to continuation-passing style (CPS) names all intermediate results and makes the control structure of a program explicit.  ... 
doi:10.1145/1411203.1411218 fatcat:gcew2jmiirdpbfghhfvfb2pgbu

A type-preserving compiler in Haskell

Louis-Julien Guillemette, Stefan Monnier
2008 Proceeding of the 13th ACM SIGPLAN international conference on Functional programming - ICFP '08  
Abstract Syntax • We show a CPS and closure conversion over System F where type preservation is enforced by type families and type equality constraints.  ...  This allows type-based program verification and is a promising compromise between plain old types and full blown Hoare logic proofs.  ...  CPS conversion: Exp t → ExpK (cps t) Conversion to continuation-passing style (CPS) names all intermediate results and makes the control structure of a program explicit.  ... 
doi:10.1145/1411204.1411218 dblp:conf/icfp/GuillemetteM08 fatcat:jo4hupsoj5hfbfdez4sfkbmsau

A verified compiler for an impure functional language

Adam Chlipala
2010 SIGPLAN notices  
Phase Structure Source CPS Closed Three-address code Assembly CPS conversion Closure conversion Common subexpression elimination Flattening Register allocation/dead code elim.  ...  Code generation First-order source Conversion to higher-order syntax Translations with interesting binding in both source and target languages The one and only inductive theorem about substitutioñ  ...  ∀ var: A piece of syntax is a first-class polymorphic function.  ... 
doi:10.1145/1707801.1706312 fatcat:fm7dxtprajh3tgwi74jw232ely

A verified compiler for an impure functional language

Adam Chlipala
2010 Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '10  
Phase Structure Source CPS Closed Three-address code Assembly CPS conversion Closure conversion Common subexpression elimination Flattening Register allocation/dead code elim.  ...  Code generation First-order source Conversion to higher-order syntax Translations with interesting binding in both source and target languages The one and only inductive theorem about substitutioñ  ...  ∀ var: A piece of syntax is a first-class polymorphic function.  ... 
doi:10.1145/1706299.1706312 dblp:conf/popl/Chlipala10 fatcat:vifgpglihfg3pc5wtuskbpbioe

Implementing typeful program transformations

Chiyan Chen, Hongwei Xi
2003 SIGPLAN notices  
When constructing a compiler for a typed functional programming language, we may need to apply CPS transformation and/or closure conversion.  ...  Implementing Closure Conversion In the phase of CPS transformation, the compiler names all intermediate computations and eliminates the need for a control stack.  ... 
doi:10.1145/966049.777392 fatcat:rqq4weor2vfknkvjccboobmzfu

Implementing typeful program transformations

Chiyan Chen, Hongwei Xi
2003 Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation - PEPM '03  
When constructing a compiler for a typed functional programming language, we may need to apply CPS transformation and/or closure conversion.  ...  Implementing Closure Conversion In the phase of CPS transformation, the compiler names all intermediate computations and eliminates the need for a control stack.  ... 
doi:10.1145/777388.777392 dblp:conf/pepm/ChenX03 fatcat:brwahn4shrgordjd5kzc5dmdd4

A type-based compiler for standard ML

Zhong Shao, Andrew W. Appel
1995 SIGPLAN notices  
In order to support more efficient data representations and gain more experience about type-directed compilation, we have implemented a new type-based middle end and back end for the Standard ML of New  ...  But how should type-directed compilation work in real compilers, and how much performance gain will type-based optimizations yield?  ...  This research is supported in part by National Science Foundation Grants CCR-9002786, CCR-9200790, and CCR-9501624.  ... 
doi:10.1145/223428.207123 fatcat:77tu74iddba5dntjgb7ahafxsm

A type-based compiler for standard ML

Zhong Shao, Andrew W. Appel
1995 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation - PLDI '95  
In order to support more efficient data representations and gain more experience about type-directed compilation, we have implemented a new type-based middle end and back end for the Standard ML of New  ...  But how should type-directed compilation work in real compilers, and how much performance gain will type-based optimizations yield?  ...  This research is supported in part by National Science Foundation Grants CCR-9002786, CCR-9200790, and CCR-9501624.  ... 
doi:10.1145/207110.207123 dblp:conf/pldi/ShaoA95 fatcat:5cfp5tac3zh3rbdd34dauscjoi

Answer Type Polymorphism in Call-by-Name Continuation Passing [chapter]

Hayo Thielecke
2004 Lecture Notes in Computer Science  
By building on this polymorphic typing, and using parametricity reasoning, we show that the call-by-name transform satisfies the eta-law, and is in fact isomorphic to the more recent CPS transform defined  ...  This paper studies continuations by means of a polymorphic type system.  ...  Thanks to Olivier Laurent and Paul-André Mellies for discussions, and the anonymous referees for comments.  ... 
doi:10.1007/978-3-540-24725-8_20 fatcat:lri2ioeyjje53hnydkvnc5gnx4

Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform

Tiark Rompf, Ingo Maier, Martin Odersky
2009 Proceedings of the 14th ACM SIGPLAN international conference on Functional programming - ICFP '09  
We describe the implementation of first-class polymorphic delimited continuations in the programming language Scala.  ...  types and leaves pure code in direct style.  ...  The CPS transform will detect these conversion cases in the code and insert shifts where necessary to demote pure expressions to impure ones.  ... 
doi:10.1145/1596550.1596596 dblp:conf/icfp/RompfMO09 fatcat:z44qbxwb65enlmzzrkhkjzk5ou

Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform

Tiark Rompf, Ingo Maier, Martin Odersky
2009 SIGPLAN notices  
We describe the implementation of first-class polymorphic delimited continuations in the programming language Scala.  ...  types and leaves pure code in direct style.  ...  The CPS transform will detect these conversion cases in the code and insert shifts where necessary to demote pure expressions to impure ones.  ... 
doi:10.1145/1631687.1596596 fatcat:46levrwjozbyhpmr6qmq3e3bem

Compiling with continuations, continued

Andrew Kennedy
2007 SIGPLAN notices  
function, and in monadic languages, commuting conversions must be applied; in contrast, inlining in our CPS language is a simple substitution of variables for variables.  ...  We start by defining an untyped continuation-passing language λ U CPS that supports non-recursive functions, the unit value, pairs, and tagged values.  ...  Somewhat closer to our CPS language is the First Order Language (FOL) of the MLton compiler (Fluet and Weeks 2001) .  ... 
doi:10.1145/1291220.1291179 fatcat:pahgdwtnrjaz7bmgej6pa2fpra

Compiling with continuations, continued

Andrew Kennedy
2007 Proceedings of the 2007 ACM SIGPLAN international conference on Functional programming - ICFP '07  
function, and in monadic languages, commuting conversions must be applied; in contrast, inlining in our CPS language is a simple substitution of variables for variables.  ...  We start by defining an untyped continuation-passing language λ U CPS that supports non-recursive functions, the unit value, pairs, and tagged values.  ...  Somewhat closer to our CPS language is the First Order Language (FOL) of the MLton compiler (Fluet and Weeks 2001) .  ... 
doi:10.1145/1291151.1291179 dblp:conf/icfp/Kennedy07 fatcat:lzdjbyyk2zdo5erd33hlam3wcm

From control effects to typed continuation passing

Hayo Thielecke
2003 SIGPLAN notices  
Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuation-passing transform.  ...  A region in the effect system determines a local answer type for continuations, such that the continuation transforms of pure expressions are parametrically polymorphic in their answer types.  ...  Acknowledgments Thanks to Josh Berdine for discussions, and to the anonymous referees and Hongseok Yang for spotting typos.  ... 
doi:10.1145/640128.604144 fatcat:elq2r5h66ncxfdppek4tgh7u3e
« Previous Showing results 1 — 15 out of 2,130 results