Theoretical Computer Science
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Algebraic reconstruction of types and effects
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Notions of computation and monads
Information and Computation
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Explicit polymorphism and CPS conversion
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Efficient software-based fault isolation
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A syntactic approach to type soundness
Information and Computation
Reasoning about programs in continuation-passing style
Lisp and Symbolic Computation - Special issue on continuations—part I
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Better static memory management: improving region-based analysis of higher-order languages
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Abstract models of memory management
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A provable time and space efficient implementation of NESL
Proceedings of the first ACM SIGPLAN international conference on Functional programming
From region inference to von Neumann machines via region representation inference
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Region-based memory management
Information and Computation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Memory management with explicit regions
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Intensional polymorphism in type-erasure semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Typed memory management in a calculus of capabilities
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics of memory management for polymorphic languages
Higher order operational techniques in semantics
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Integrating functional and imperative programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A type system for expressive security policies
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Information and System Security (TISSEC)
List processing in real time on a serial computer
Communications of the ACM
Syntactic control of interference
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Definition of Standard ML
Java Virtual Machine Specification
Java Virtual Machine Specification
Uniprocessor Garbage Collection Techniques
IWMM '92 Proceedings of the International Workshop on Memory Management
MFCS '93 Proceedings of the 18th International Symposium on Mathematical Foundations of Computer Science
Syntactic Control of Inference, Part 2
ICALP '89 Proceedings of the 16th International Colloquium on Automata, Languages and Programming
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
Proceedings of ACM conference on Proving assertions about programs
Efficient Code Certification
Implementing multiple protection domains in java
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On regions and linear types (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Region-based memory management in cyclone
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
More dynamic object reclassification: Fickle∥
ACM Transactions on Programming Languages and Systems (TOPLAS)
An expressive, scalable type theory for certified code
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Type-safe multithreading in cyclone
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Time regions and effects for resource usage analysis
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
The logical approach to stack typing
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
A direct approach to control-flow sensitive region-based memory management
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
An effective theory of type refinements
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A Retrospective on Region-Based Memory Management
Higher-Order and Symbolic Computation
Experience with safe manual memory-management in cyclone
Proceedings of the 4th international symposium on Memory management
Mutatis mutandis: safe and predictable dynamic software updating
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From sequential programs to multi-tier applications by program transformation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Connecting effects and uniqueness with adoption
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bisimilarity for the Region Calculus
Higher-Order and Symbolic Computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A verifiable SSA program representation for aggressive compiler optimization
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Resource usage analysis for a functional language with exceptions
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Certified memory management for proof-carrying code: a region-based type system and runtime library
Proceedings of the 43rd annual Southeast regional conference - Volume 2
Type checking a multithreaded functional language with session types
Theoretical Computer Science
Sound and complete elimination of singleton kinds
ACM Transactions on Computational Logic (TOCL)
Integrating a certified memory management runtime with proof-carrying code
Proceedings of the 2007 ACM symposium on Applied computing
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lightweight Static Capabilities
Electronic Notes in Theoretical Computer Science (ENTCS)
Journal of Functional Programming
Contextual effects for version-consistent dynamic software updating and safe concurrent programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
L3: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
Journal of Functional Programming
Science of Computer Programming
Proceedings of the first ACM SIGPLAN symposium on Haskell
Formalizing Soundness of Contextual Effects
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
A generic type-and-effect system
Proceedings of the 4th international workshop on Types in language design and implementation
A Basis for Verifying Multi-threaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Parameterised notions of computation
Journal of Functional Programming
Fine-Grained Access Control with Object-Sensitive Roles
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Verifying stateful programs with substructural state and hoare types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Permission-based programming languages (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
A path sensitive type system for resource usage verification of c like languages
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Static lock capabilities for deadlock freedom
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
L3: a linear language with locations
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Linear regions are all you need
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Superficially substructural types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
L$^3$: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Type-based safe resource deallocation for shared-memory concurrency
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Region-based memory management is an alternative to standard tracing garbage collection that makes operation such as memory deallocation explicit but verifiably safe. In this article, we present a new compiler intermediate language, called the Capability Language (CL), that supports region-based memory management and enjoys a provably safe type systems. Unlike previous region-based type system, region lifetimes need not be lexically scoped, and yet the language may be checked for safety without complex analyses. Therefore, our type system may be deployed in settings such as extensible operating systems where both the performance and safety of untrusted code is important. The central novelty of the language is the use of static capabilities to specify the permissibility of various operations, such as memory access and deallocation. In order to ensure capabilities are relinquished properly, the type system tracks aliasing information using a form of bounded quantification. Moreover, unlike previous work on region-based type systems, the proof of soundness of our type system is relatively simple, employing only standard syntactic techniques. In order to show how our language may be used in practice, we show how to translate a variant of Tofte and Talpin's high-level type-and-effects system for region-based memory management into our language. When combined with known region inference algorithms, this translation provides a way to compile source-level languages to CL.