Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Bounded linear logic: a modular approach to polynomial-time computability
Theoretical Computer Science
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
Computational interpretations of linear logic
Theoretical Computer Science - Special volume of selected papers of the Sixth Workshop on the Mathematical Foundations of Programming Semantics, Kingston, Ont., Canada, May 1990
ACM SIGPLAN Notices
Region-based memory management
Information and Computation
Rolling your own mutable ADT—a connection between linear types and monads
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Recursion and dynamic data-structures in bounded space: towards embedded ML programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Operational interpretations of linear logic
Theoretical Computer Science - Special issue on linear logic, 1
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Linear Types and Non Size-Increasing Polynomial Time Computation
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Typing Assembly Programs with Explicit Forwarding
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
A Statically Allocated Parallel Functional Language
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
On Lexicographic Termination Ordering with Space Bound Certifications
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
FUNCTIONAL PEARL: Unfolding pointer algorithms
Journal of Functional Programming
Quasi-interpretations a way to control resources
Theoretical Computer Science
Resource analysis by sup-interpretation
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
L3: a linear language with locations
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Distributed call-tracking for security
Computer Languages, Systems and Structures
Multivariate amortized resource analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
L$^3$: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Hi-index | 0.00 |
We show how linear typing can be used to obtain functional programs which modify heap-allocated data structures in place. We present this both as a "design pattern" for writing C-code in a functional style and as a compilation process from linearly typed first-order functional programs into malloc()-free C code. The main technical result is the correctness of this compilation. The crucial innovation over previous linear typing schemes consists of the introduction of a resource type ⋄ which controls the number of constructor symbols such as cons in recursive definitions and ensures linear space while restricting expressive power surprisingly little. While the space efficiency brought about by the new typing scheme and the compilation into C can also be realised by with state-of-the-art optimising compilers for functional languages such as OCAML [15], the present method provides guaranteed bounds on heap space which will be of use for applications such as languages for embedded systems or 'proof carrying code' [18].