Theoretical Computer Science
Detecting conflicts between structure accesses
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
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
Science of Computer Programming
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
Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A simplified account of polymorphic references
Information Processing Letters
A syntactic approach to type soundness
Information and Computation
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
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A functional representation of data structures with a hole
POPL '98 Proceedings of the 25th 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
Solving shape-analysis problems in languages with destructive updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typed memory management in a calculus of capabilities
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Syntactic control of interference
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An assertion language for data structures
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Decidable Logic for Describing Linked Data Structures
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Conventional and Uniqueness Typing in Graph Rewrite Systems
Proceedings of the 13th Conference on Foundations of Software Technology and Theoretical Computer Science
Stack-Based Typed Assembly Language
TIC '98 Proceedings of the Second International Workshop on Types in Compilation
Scalable Certification for Typed Assembly Language
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Restructuring Symbolic Programs for Concurrent Execution on
Restructuring Symbolic Programs for Concurrent Execution on
Dependent types in practical programming
Dependent types in practical programming
Typed memory management
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
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
Flow-sensitive type qualifiers
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Towards a formalization for COM part i: the primitive calculus
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The logical approach to stack typing
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Existential Types for Imperative Languages
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Safe and Flexible Dynamic Linking of Native Code
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Memory safety without runtime checks or garbage collection
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
An effective theory of type refinements
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Functional Programming
FUNCTIONAL PEARL: Unfolding pointer algorithms
Journal of Functional Programming
Heap-Bounded Assembly Language
Journal of Automated Reasoning
Experience with safe manual memory-management in cyclone
Proceedings of the 4th international symposium on Memory management
Experiments on the effectiveness of an automatic insertion of memory reuses into ML-like programs
Proceedings of the 4th international symposium on Memory management
Connecting effects and uniqueness with adoption
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Memory safety without garbage collection for embedded applications
ACM Transactions on Embedded Computing Systems (TECS)
Permission-based ownership: encapsulating state in higher-order typed languages
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A step-indexed model of substructural state
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Protecting representation with effect encapsulation
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static insertion of safe and effective memory reuse commands into ML-like programs
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Quantified types in an imperative language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static detection of leaks in polymorphic containers
Proceedings of the 28th international conference on Software engineering
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Efficient pebbling for list traversal synopses with application to program rollback
Theoretical Computer Science
A proposal for parallel self-adjusting computation
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Proving Resource Consumption of Low-level Programs Using Automated Theorem Provers
Electronic Notes in Theoretical Computer Science (ENTCS)
Establishing object invariants with delayed types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Inferring aliasing and encapsulation properties for java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A type system with usage aspects
Journal of Functional Programming
L3: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
A capability calculus for concurrency and determinism
ACM Transactions on Programming Languages and Systems (TOPLAS)
A type system equivalent to a model checker
ACM Transactions on Programming Languages and Systems (TOPLAS)
Science of Computer Programming
Functional translation of a calculus of capabilities
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
An Overview of Separation Logic
Verified Software: Theories, Tools, Experiments
Alias Types and Effects for "Environment-aware" Computations
Fundamenta Informaticae
Parameterised notions of computation
Journal of Functional Programming
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Decision procedures for algebraic data types with abstractions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static determination of quantitative resource usage for higher-order programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Strong Update, Disposal, and Encapsulation in Bunched Typing
Electronic Notes in Theoretical Computer Science (ENTCS)
Bunching for Regions and Locations
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient pebbling for list traversal synopses
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Inserting safe memory reuse commands into ML-like programs
SAS'03 Proceedings of the 10th international conference on Static analysis
Existential heap abstraction entailment is undecidable
SAS'03 Proceedings of the 10th international conference on Static analysis
Functional in-place update with layered datatype sharing
TLCA'03 Proceedings of the 6th international conference on Typed lambda calculi and applications
Typing with conditions and guarantees for functional in-place update
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Automated verification of shape and size properties via separation logic
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Compiling c programs into a strongly typed assembly language
ASIAN'07 Proceedings of the 12th Asian computing science conference on Advances in computer science: computer and network security
Recency types for analyzing scripting languages
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Typed assembly language for implementing OS kernels in SMP/multi-core environments with interrupts
SSV'10 Proceedings of the 5th international conference on Systems software verification
Extended alias type system using separating implication
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
Memory-access-aware data structure transformations for embedded software with dynamic data accesses
IEEE Transactions on Very Large Scale Integration (VLSI) Systems - Special section on the 2002 international symposium on low-power electronics and design (ISLPED)
Typing copyless message passing
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Smallfoot: modular automatic assertion checking with separation logic
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Symbolic execution with separation logic
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
A type system equivalent to a model checker
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
CSL'05 Proceedings of the 19th international conference on Computer Science Logic
A capability calculus for concurrency and determinism
CONCUR'06 Proceedings of the 17th international conference on Concurrency Theory
On ownership and accessibility
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Type-Based amortised heap-space analysis
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Science of Computer Programming
Deterministic parallelism via liquid effects
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Alias Types and Effects for "Environment-aware" Computations
Fundamenta Informaticae
L$^3$: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Dependent types for JavaScript
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A linear type system for multicore programming in ATS
Science of Computer Programming
Programming with permissions in Mezzo
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Linear type systems permit programmers to deallocate or explicitly recycle memory, but are severely restricted by the fact that they admit no aliasing. This paper describes a pseudo-linear type system that allows a degree of aliasing and memory reuse as well as the ability to define complex recursive data structures. Our type system can encode conventional linear data structures such as linear lists and trees as well as more sophisticated data structures including cyclic and doubly-linked lists and trees. In the latter cases, our type system is expressive enough to represent pointer aliasing and yet safely permit destructive operations such as object deallocation. We demonstrate the flexibility of our type system by encoding two common space-conscious algorithms: destination-passing style and Deutsch-Schorr-Waite or "link-reversal" traversal algoithms.