Destructors, finalizers, and synchronization

  title={Destructors, finalizers, and synchronization},
  author={H. Boehm},
  • H. Boehm
  • Published in POPL 2003
  • Computer Science
A Formal Semantics for Finalizers
An operational approach is used to develop a new abstract model that explicitly represents memory management actions in a garbage-collected programming language based on the λ-calculus, and employs the model to describe and explore a semantics for finalizers. Expand
Short Paper: Rusty Types for Solid Safety
This paper formally describes a small subset of the syntax, semantics, and type system of Metal, the authors' Rust-based language that enjoys Rusty Types, and presents Rusty Types and an accompanying type system, inspired by the Rust language, that enable memory-safe and race-free references through ownership and restricted aliasing in the type system. Expand
Actor-oriented programming for resource constrained Multiprocessor Networks on Chip
An extended actor oriented programming model is proposed to enable the design of complex and general purpose software for highly parallel and decentralised multiprocessor architectures and is presented to demonstrate the applicability of the model to a general purpose programming language. Expand
Automatic recovery from resource exhaustion exceptions by collecting leaked resources
Experimental results show that the proposed approach can successfully handle resource exhaustion exceptions caused by reported resource leaks and allow programs to complete their tasks with an average execution time increase of 2.52% and negligible bytecode size increase. Expand
AutomaticRecovery fromResourceExhaustion Exceptions byCollectingLeakedResources
Despite the availability of garbage collectors, programmers must manually manage non-memory finite system resources such as file descriptors. Resource leaks can gradually consume all availableExpand
Generic Programming Needs Transactional Memory
It is argued that transactional memory provides a desperately needed programmability improvement, which the author has learned how to implement with sufficient performance to make it viable and sheds new light on the benefits of, and requirements for, transactionalMemory. Expand
DiSL: a domain-specific language for bytecode instrumentation
This paper introduces DiSL (domain-specific language for instrumentation), a new language especially designed for dynamic program analysis that offers better code coverage, incurs significantly less overhead, and eases the integration of new analysis features that could not be expressed in AspectJ. Expand
Hard Real-Time Java: Profiles and Schedulability Analysis
A model based approach to the program analysis of real-time Java systems and the development of Java profiles supporting such analyses is presented, to enable theDevelopment of safetycritical embedded systems in high level modern languages which more elegantly capture the complexities of modern embedded systems. Expand
Light-Weight Test Oracles for Resource Leaks Based on Finalizers
This paper investigates Java API classes for the usage of finalizers and proposes a lightweight, easy-to-use yet effective resource leak testing approach called Orbaf, which can detect leaks of most system resources and does not require any formal specifications. Expand
Schedulability analysis for Java finalizers
The SARTS tool for automated schedulability analysis of Java bytecode programs is extended to handle finalizers in a fully automated way, more reminiscent of C++ destructors than Java finalizers. Expand