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-articleAugust 2022
CHAD: Combinatory Homomorphic Automatic Differentiation
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 44, Issue 3Article No.: 20, Pages 1–49https://doi.org/10.1145/3527634We introduce Combinatory Homomorphic Automatic Differentiation (CHAD), a principled, pure, provably correct define-then-run method for performing forward and reverse mode automatic differentiation (AD) on programming languages with expressive features. It ...
- research-articleDecember 2018
Rigorous Estimation of Floating-Point Round-Off Errors with Symbolic Taylor Expansions
- Alexey Solovyev,
- Marek S. Baranowski,
- Ian Briggs,
- Charles Jacobsen,
- Zvonimir Rakamarić,
- Ganesh Gopalakrishnan
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 41, Issue 1Article No.: 2, Pages 1–39https://doi.org/10.1145/3230733Rigorous estimation of maximum floating-point round-off errors is an important capability central to many formal verification tools. Unfortunately, available techniques for this task often provide very pessimistic overestimates, causing unnecessary ...
- research-articleAugust 2016
Analyzing Runtime and Size Complexity of Integer Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 38, Issue 4Article No.: 13, Pages 1–50https://doi.org/10.1145/2866575We present a modular approach to automatic complexity analysis of integer programs. Based on a novel alternation between finding symbolic time bounds for program parts and using these to infer bounds on the absolute values of program variables, we can ...
- research-articleApril 2016
Automatic Storage Optimization for Arrays
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 38, Issue 3Article No.: 11, Pages 1–23https://doi.org/10.1145/2845078Efficient memory allocation is crucial for data-intensive applications, as a smaller memory footprint ensures better cache performance and allows one to run a larger problem size given a fixed amount of main memory. In this article, we describe a new ...
- research-articleOctober 2015
A Dynamic Continuation-Passing Style for Dynamic Delimited Continuations
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 38, Issue 1Article No.: 2, Pages 1–25https://doi.org/10.1145/2794078We put a preexisting definitional abstract machine for dynamic delimited continuations in defunctionalized form, and we present the consequences of this adjustment. We first prove the correctness of the adjusted abstract machine. Because it is in ...
-
- research-articleApril 2015
MCALIB: Measuring Sensitivity to Rounding Error with Monte Carlo Programming
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 2Article No.: 5, Pages 1–25https://doi.org/10.1145/2665073Runtime analysis provides an effective method for measuring the sensitivity of programs to rounding errors. To date, implementations have required significant changes to source code, detracting from their widespread application. In this work, we present ...
- research-articleJanuary 2015
Interval Analysis and Machine Arithmetic: Why Signedness Ignorance Is Bliss
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 1Article No.: 1, Pages 1–35https://doi.org/10.1145/2651360The most commonly used integer types have fixed bit-width, making it possible for computations to “wrap around,” and many programs depend on this behaviour. Yet much work to date on program analysis and verification of integer computations treats ...
- research-articleNovember 2014
A Scheduling Framework for Spatial Architectures Across Multiple Constraint-Solving Theories
- Tony Nowatzki,
- Michael Sartin-Tarm,
- Lorenzo De Carli,
- Karthikeyan Sankaralingam,
- Cristian Estan,
- Behnam Robatmili
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 1Article No.: 2, Pages 1–30https://doi.org/10.1145/2658993Spatial architectures provide energy-efficient computation but require effective scheduling algorithms. Existing heuristic-based approaches offer low compiler/architect productivity, little optimality insight, and low architectural portability.
We seek ...
- research-articleJanuary 2012
Fast interprocedural linear two-variable equalities
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 33, Issue 6Article No.: 21, Pages 1–33https://doi.org/10.1145/2049706.2049710In this article we provide an interprocedural analysis of linear two-variable equalities. The novel algorithm has a worst-case complexity of 𝒪(n ⋅ k4), where k is the number of variables and n is the program size. Thus, it saves a factor of k4 in ...
- research-articleMay 2011
Solving systems of rational equations through strategy iteration
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 33, Issue 3Article No.: 11, Pages 1–48https://doi.org/10.1145/1961204.1961207We present practical algorithms for computing exact least solutions of equation systems over the reals with addition, multiplication by positive constants, minimum and maximum. The algorithms are based on strategy iteration. Our algorithms can, for ...
- research-articleMay 2009
Sequent calculi and abstract machines
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 31, Issue 4Article No.: 13, Pages 1–48https://doi.org/10.1145/1516507.1516508We propose a sequent calculus derived from the λ―μμ˜-calculus of Curien and Herbelin that is expressive enough to directly represent the fine details of program evaluation using typical abstract machines. Not only does the calculus easily encode the ...
- research-articleOctober 2008
Dually nondeterministic functions
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 6Article No.: 34, Pages 1–34https://doi.org/10.1145/1391956.1391961Nondeterminacy is a fundamental notion in computing. We show that it can be described by a general theory that accounts for it in the form in which it occurs in many programming contexts, among them specifications, competing agents, data refinement, ...
- research-articleMay 2008
AspectML: A polymorphic aspect-oriented functional programming language
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 3Article No.: 14, Pages 1–60https://doi.org/10.1145/1353445.1353448This article defines AspectML, a typed functional, aspect-oriented programming language. The main contribution of AspectML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In ...
- research-articleMay 2008
The pitfalls of verifying floating-point computations
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 3Article No.: 12, Pages 1–41https://doi.org/10.1145/1353445.1353446Current critical systems often use a lot of floating-point computations, and thus the testing or static analysis of programs containing floating-point operators has become a priority. However, correctly defining the semantics of common implementations ...
- research-articleMarch 2008
Reverse-mode AD in a functional framework: Lambda the ultimate backpropagator
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 2Article No.: 7, Pages 1–36https://doi.org/10.1145/1330017.1330018We show that reverse-mode AD (Automatic Differentiation)—a generalized gradient-calculation operator—can be incorporated as a first-class function in an augmented lambda calculus, and therefore into a functional-programming language. Closure is achieved,...
- articleMay 2003
A foundation for embedded languages
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 25, Issue 3Pages 291–315https://doi.org/10.1145/641909.641910Recent work on embedding object languages into Haskell use "phantom types" (i.e., parameterized types whose parameter does not occur on the right-hand side of the type definition) to ensure that the embedded object-language terms are simply typed. But ...
- articleMay 1999
Specificational functions
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 21, Issue 3Pages 677–701https://doi.org/10.1145/319301.319350Mathematics supplies us with various operators for creating functions from relations, sets, known functions, and so on. Function inversion is a simple example. These operations are useful in specifying programs. However, many of them have strong ...
- articleJuly 1998
Automatic data layout for distributed-memory machines
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 20, Issue 4Pages 869–916https://doi.org/10.1145/291891.291901The goal of languages like Fortran D or High Performance Fortran (HPF) is to provide a simple yet efficient machine-independent parallel programming model. After the algorithm selection, the data layout choice is the key intellectual challenge in ...
- articleMarch 1998
A systematic study of functional language implementations
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 20, Issue 2Pages 344–387https://doi.org/10.1145/276393.276397We introduce a unified framework to describe, relate, compare, and classify functional language implementations. The compilation process is expressed as a succession of program transformations in the common framework. At each step, different ...
- articleNovember 1997
Combinatory formulations of concurrent languages
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 19, Issue 6Pages 899–915https://doi.org/10.1145/267959.269967We design a system with six Basic Combinators and prove that it is powerful enough to embed the full asynchronous π-calculus, including replication. Our theory for constructing Combinatory Versions of concurrent languages is based on a method, used by ...