Verus: Verifying rust programs using linear ghost types
The Rust programming language provides a powerful type system that checks linearity and
borrowing, allowing code to safely manipulate memory without garbage collection and …
borrowing, allowing code to safely manipulate memory without garbage collection and …
[PDF][PDF] LLVM: An infrastructure for multi-stage optimization
CA Lattner - 2002 - llvm.org
Modern programming languages and software engineering principles are causing
increasing problems for compiler systems. Traditional approaches, which use a simple …
increasing problems for compiler systems. Traditional approaches, which use a simple …
Ownership types for safe programming: Preventing data races and deadlocks
C Boyapati, R Lee, M Rinard - Proceedings of the 17th ACM SIGPLAN …, 2002 - dl.acm.org
This paper presents a new static type system for multithreaded programs; well-typed
programs in our system are guaranteed to be free of data races and deadlocks. Our type …
programs in our system are guaranteed to be free of data races and deadlocks. Our type …
Effective typestate verification in the presence of aliasing
This article addresses the challenge of sound typestate verification, with acceptable
precision, for real-world Java programs. We present a novel framework for verification of …
precision, for real-world Java programs. We present a novel framework for verification of …
Flow-sensitive type qualifiers
We present a system for extending standard type systems with flow-sensitive type qualifiers.
Users annotate their programs with type qualifiers, and inference checks that the …
Users annotate their programs with type qualifiers, and inference checks that the …
Enforcing high-level protocols in low-level software
The reliability of infrastructure software, such as operating systems and web servers, is often
hampered by the mismanagement of resources, such as memory and network connections …
hampered by the mismanagement of resources, such as memory and network connections …
Language support for fast and reliable message-based communication in Singularity OS
Message-based communication offers the potential benefits of providing stronger
specification and cleaner separation between components. Compared with shared-memory …
specification and cleaner separation between components. Compared with shared-memory …
Locksmith: context-sensitive correlation analysis for race detection
One common technique for preventing data races in multi-threaded programs is to ensure
that all accesses to shared locations are consistently protected by a lock. We present a tool …
that all accesses to shared locations are consistently protected by a lock. We present a tool …
Adoption and focus: Practical linear types for imperative programming
A type system with linearity is useful for checking software protocols andresource
management at compile time. Linearity provides powerful reasoning about state changes …
management at compile time. Linearity provides powerful reasoning about state changes …
Typestates for objects
Today's mainstream object-oriented compilers and tools do not support declaring and
statically checking simple pre-and postconditions on methods and invariants on object …
statically checking simple pre-and postconditions on methods and invariants on object …