Handbook of logic in computer science (vol. 2)
A syntactic approach to type soundness
Information and Computation
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Region-based memory management
Information and Computation
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
Typed memory management in a calculus of capabilities
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Recursion and dynamic data-structures in bounded space: towards embedded ML programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types and programming languages
Types and programming languages
The C++ Programming Language
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
Static prediction of heap space usage for first-order functional programs
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimized Live Heap Bound Analysis
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Protecting C programs from attacks via invalid pointer dereferences
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Context- and path-sensitive memory leak detection
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Precise Analysis of Memory Consumption using Program Logics
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Practical memory leak detection using guarded value-flow analysis
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Heap space analysis for java bytecode
Proceedings of the 6th international symposium on Memory management
Counting the Cost in the Picalculus (Extended Abstract)
Electronic Notes in Theoretical Computer Science (ENTCS)
A Type System for Usage of Software Components
Types for Proofs and Programs
Unified Modeling Language Reference Manual
Unified Modeling Language Reference Manual
Guaranteeing resource bounds for component software
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Memory usage verification for OO programs
SAS'05 Proceedings of the 12th international conference on Static Analysis
Finding resource bounds in the presence of explicit deallocation
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Type-Based amortised heap-space analysis
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Hi-index | 5.23 |
We identify an abstract language for component software based on process algebra. Besides the usual operators for sequential, alternative and parallel composition, it has primitives for instantiating components and for deleting instances of components. We define an operational semantics for our language and give a type system in which types express quantitative information on the components involved in the execution of the expressions of the language. Included in this information is for each component the maximum number of instances that are simultaneously active during the execution of the expression. The type system is compositional by the novel use of 'deficit types'. The type inference algorithm runs in time quadratic in the size of the input. We consider extensions of the language with loops and tail recursion, and with a scope mechanism. We illustrate the approach with some examples, one on UML diagram refinement and one on counting objects on the free store in C++.