Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleJuly 2023
Multiple Input Parsing and Lexical Analysis
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 45, Issue 3Article No.: 14, Pages 1–44https://doi.org/10.1145/3594734This article introduces two new approaches in the areas of lexical analysis and context-free parsing. We present an extension, MGLL, of generalised parsing which allows multiple input strings to be parsed together efficiently, and we present an enhanced ...
- research-articleNovember 2020
Type Inference for C: Applications to the Static Analysis of Incomplete Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 42, Issue 3Article No.: 15, Pages 1–71https://doi.org/10.1145/3421472Type inference is a feature that is common to a variety of programming languages. While, in the past, it has been prominently present in functional ones (e.g., ML and Haskell), today, many object-oriented/multi-paradigm languages such as C# and C++ offer,...
- research-articleJune 2019
CSS Minification via Constraint Solving
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 41, Issue 2Article No.: 12, Pages 1–76https://doi.org/10.1145/3310337Minification is a widely accepted technique that aims at reducing the size of the code transmitted over the web. This article concerns the problem of semantic-preserving minification of Cascading Style Sheets (CSS)—the de facto language for styling web ...
- research-articleAugust 2016
The Design and Formalization of Mezzo, a Permission-Based Programming Language
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 38, Issue 4Article No.: 14, Pages 1–94https://doi.org/10.1145/2837022The programming language Mezzo is equipped with a rich type system that controls aliasing and access to mutable memory. We give a comprehensive tutorial overview of the language. Then we present a modular formalization of Mezzo’s core type system, in the ...
- research-articleDecember 2012
Natural and Flexible Error Recovery for Generated Modular Language Environments
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 34, Issue 4Article No.: 15, Pages 1–50https://doi.org/10.1145/2400676.2400678Integrated Development Environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the ...
-
- research-articleFebruary 2009
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 31, Issue 2Article No.: 7, Pages 1–54https://doi.org/10.1145/1462166.1462168Predicate dispatch is an object-oriented (OO) language mechanism for determining the method implementation to be invoked upon a message send. With predicate dispatch, each method implementation includes a predicate guard specifying the conditions under ...
- research-articleAugust 2008
Types for atomicity: Static checking and inference for Java
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 4Article No.: 20, Pages 1–53https://doi.org/10.1145/1377492.1377495Atomicity is a fundamental correctness property in multithreaded programs. A method is atomic if, for every execution, there is an equivalent serial execution in which the actions of the method are not interleaved with actions of other threads. Atomic ...
- research-articleMarch 2008
FeatherTrait: A modest extension of Featherweight Java
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 2Article No.: 11, Pages 1–32https://doi.org/10.1145/1330017.1330022In the context of statically typed, class-based languages, we investigate classes that can be extended with trait composition. A trait is a collection of methods without state; it can be viewed as an incomplete stateless class. Traits can be composed in ...
- articleAugust 2007
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 29, Issue 4Pages 22–eshttps://doi.org/10.1145/1255450.1255455This article presents Proteus, a core calculus that models dynamic software updating, a service for fixing bugs and adding features to a running program. Proteus permits a program's type structure to change dynamically but guarantees the updated program ...
- articleMarch 2006
A bisimulation-based semantic theory of Safe Ambients
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 28, Issue 2Pages 290–330https://doi.org/10.1145/1119479.1119482We develop a semantics theory for SAP, a variant of Levi and Sangiorgi's Safe Ambients, SA.The dynamics of SA relies upon capabilities (and co-capabilities) exercised by mobile agents, called ambients, to interact with each other. These capabilities ...
- articleMarch 2006
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 28, Issue 2Pages 207–255https://doi.org/10.1145/1119479.1119480This article presents a static race-detection analysis for multithreaded shared-memory programs, focusing on the Java programming language. The analysis is based on a type system that captures many common synchronization patterns. It supports classes ...
- articleMarch 2005
Dealing with incomplete knowledge on CLP(FD) variable domains
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 27, Issue 2Pages 236–263https://doi.org/10.1145/1057387.1057389Constraint Logic Programming languages on Finite Domains, CLP(FD), provide a declarative framework for Artificial Intelligence problems. However, in many real life cases, domains are not known and must be acquired or computed. In systems that interact ...
- articleSeptember 2004
Modular typechecking for hierarchically extensible datatypes and functions
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 26, Issue 5Pages 836–889https://doi.org/10.1145/1018203.1018207One promising approach for adding object-oriented (OO) facilities to functional languages like ML is to generalize the existing datatype and function constructs to be hierarchical and extensible, so that datatype variants simulate classes and function ...
- articleMay 2004
Natural semantics as a static program analysis framework
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 26, Issue 3Pages 510–577https://doi.org/10.1145/982158.982161Natural semantics specifications have become mainstream in the formal specification of programming language semantics during the last 10 years. In this article, we set up sorted natural semantics as a specification framework which is able to express ...
- articleSeptember 2003
The receptive distributed π-calculus
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 25, Issue 5Pages 549–577https://doi.org/10.1145/937563.937564We study an asynchronous distributed π-calculus, with constructs for localities and migration. We show that a static analysis ensures the receptiveness of channel names, which, together with a simple type system, guarantees the message deliverability ...
- articleNovember 2000
Syntactic type abstraction
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 22, Issue 6Pages 1037–1080https://doi.org/10.1145/371880.371887Software developers often structure programs in such a way that different pieces of code constitute distinct principals. Types help define the protocol by which these principals interact. In particular, abstract types allow a principal to make strong ...
- articleJuly 2000
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 22, Issue 4Pages 701–771https://doi.org/10.1145/363911.363923Region-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 ...
- articleMay 1999
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 21, Issue 3Pages 527–568https://doi.org/10.1145/319301.319345We motivate the design of typed assembly language (TAL) and present a type-preserving ttranslation from Systemn F to TAL. The typed assembly language we pressent is based on a conventional RISC assembly language, but its static type sytem provides ...
- articleNovember 1997
An approach for exploring code improving transformations
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 19, Issue 6Pages 1053–1084https://doi.org/10.1145/267959.267960Although code transformations are routinely applied to improve the performance of programs for both scalar and parallel machines, the properties of code-improving transformations are not well understood. In this article we present a framework that ...
- articleJanuary 1996
On the optimality of change propagation for incremental evaluation of hierarchical attribute grammars
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 18, Issue 1Pages 16–29https://doi.org/10.1145/225540.225542Several new attribute grammar dialects have recently been developed, all with the common goal of allowing large, complex language translators to be specified through a modular composition of smaller attribute grammars. We refer to the class of dialects ...