VLDB 2026 Research / reviewers in the wild / expert
Scott Owens
dblp:87/3121
· DBLP profile ↗
35ranked-venue papers
8as first author
1since 2021 · last 2023
0000-0002-7437-4780ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 26 · 7 first-author · 1 since 2021Theory of computation · 7 · 1 first-authorArtificial intelligence and machine learning · 3Systems, architecture and hardware · 2Security and privacy · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
9 papers |
Programming languages and type systems · 34% Concurrent programming · 28% Compilers and program optimization · 17% | |
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Memory systems · 52% Performance modeling and evaluation · 19% Processor architecture and microarchitecture · 18% |
Topics — the 26 heaviest of 31, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
verified compilation |
0.8 | 2 | 2023 | Cakes That Bake Cakes: Dynamic Computation in CakeML · Proc. ACM Program. Lang. 2023 CakeML: a verified implementation of ML · POPL 2014 |
Concurrent programming
memory models |
0.6 | 4 | 2012 | Clarifying and compiling C/C++ concurrency: from C++11 to POWER · POPL 2012 Synchronising C/C++ and POWER · PLDI 2012 An Axiomatic Memory Model for POWER Multiprocessors · CAV 2012 |
Concurrent programming › memory models
weak memory models |
0.4 | 3 | 2012 | Clarifying and compiling C/C++ concurrency: from C++11 to POWER · POPL 2012 Synchronising C/C++ and POWER · PLDI 2012 Mathematizing C++ concurrency · POPL 2011 |
Software maintenance and evolution › refactoring
identifier renaming |
0.4 | 1 | 2019 | Characterising renaming within OCaml's module system: theory and implementation · PLDI 2019 |
Programming languages and type systems
module systems |
0.4 | 1 | 2019 | Characterising renaming within OCaml's module system: theory and implementation · PLDI 2019 |
Software maintenance and evolution
refactoring |
0.4 | 1 | 2019 | Characterising renaming within OCaml's module system: theory and implementation · PLDI 2019 |
Memory systems › memory consistency
memory consistency model |
0.3 | 2 | 2016 | Benchmarking weak memory models · PPoPP 2016 The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Concurrent programming › memory models › weak memory models
c11 memory model |
0.3 | 2 | 2012 | Clarifying and compiling C/C++ concurrency: from C++11 to POWER · POPL 2012 Mathematizing C++ concurrency · POPL 2011 |
Performance modeling and evaluation
benchmarking |
0.2 | 1 | 2016 | Benchmarking weak memory models · PPoPP 2016 |
Memory systems › memory consistency › memory consistency model
weak memory model |
0.2 | 1 | 2016 | Benchmarking weak memory models · PPoPP 2016 |
Programming languages and type systems
language design |
0.2 | 2 | 2014 | CakeML: a verified implementation of ML · POPL 2014 Mathematizing C++ concurrency · POPL 2011 |
Runtime systems and virtual machines
garbage collection |
0.2 | 1 | 2014 | CakeML: a verified implementation of ML · POPL 2014 |
Programming languages and type systems › functional language
Standard ML |
0.2 | 1 | 2014 | CakeML: a verified implementation of ML · POPL 2014 |
Programming languages and type systems
language semantics |
0.2 | 2 | 2012 | Synchronising C/C++ and POWER · PLDI 2012 Mathematizing C++ concurrency · POPL 2011 |
Concurrent programming › memory models
sequential consistency |
0.1 | 1 | 2012 | Clarifying and compiling C/C++ concurrency: from C++11 to POWER · POPL 2012 |
Parallel and multicore computing
memory model |
0.1 | 1 | 2012 | An Axiomatic Memory Model for POWER Multiprocessors · CAV 2012 |
Programming languages and type systems › language semantics › formal semantics
denotational semantics |
0.1 | 1 | 2019 | Characterising renaming within OCaml's module system: theory and implementation · PLDI 2019 |
Processor architecture and microarchitecture
instruction set architecture |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Processor architecture and microarchitecture › instruction set architecture › CISC
x86 |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Memory systems › memory consistency › memory consistency model
x86 memory model |
0.1 | 1 | 2009 | The semantics of x86-CC multiprocessor machine code · POPL 2009 |
Concurrent programming › memory models
fence insertion |
0.1 | 1 | 2016 | Benchmarking weak memory models · PPoPP 2016 |
Program verification › formal proof
mechanized proof |
0.1 | 1 | 2014 | CakeML: a verified implementation of ML · POPL 2014 |
Program verification
proof assistants |
0.1 | 1 | 2014 | CakeML: a verified implementation of ML · POPL 2014 |
Compilers and program optimization
compiler optimization |
0.0 | 1 | 2012 | Clarifying and compiling C/C++ concurrency: from C++11 to POWER · POPL 2012 |
Robotics › Motion planning and robot control › motion planning › manipulation planning
deformable object motion planning |
0.0 | 1 | 2000 | Deformable Volumes in Path Planning Applications · ICRA 2000 |
Robotics › Motion planning and robot control
path planning |
0.0 | 1 | 2000 | Deformable Volumes in Path Planning Applications · ICRA 2000 |
Methods — techniques the papers use, named apart from their topics
proof engineering · 1.3compiler verification · 1.3axiomatic semantics · 0.6macrobenchmark selection · 0.5operational semantics · 0.3mechanical verification · 0.2compiler bootstrapping · 0.2theorem proving · 0.1formal specification · 0.1roadmap · 0.0randomized planning · 0.0mass-spring model · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Cakes That Bake Cakes: Dynamic Computation in CakeMLabstractWe have extended the verified CakeML compiler with a new language primitive, Eval, which permits evaluation of new CakeML syntax at runtime. This new implementation supports an ambitious form of compilation at runtime and dynamic execution, where the original and dynamically added code can share (higher-order) values and recursively call each other. This is, to our knowledge, the first verified run-time environment capable of supporting a standard LCF-style theorem prover design. Modifying the modern CakeML compiler pipeline and proofs to support a dynamic computation semantics was an extensive project. We review the design decisions, proof techniques, and proof engineering lessons from the project, and highlight some unexpected complications. Thomas Sewell, Magnus O. Myreen, Yong Kiam Tan, Ramana Kumar, Alexander Mihajlovic, Oskar Abrahamsson, Scott Owens |
Proc. ACM Program. Lang. | 7 |
| 2020 | Modular Relaxed Dependencies in Weak Memory ConcurrencyabstractAbstract We present a denotational semantics for weak memory concurrency that avoids thin-air reads, provides data-race free programs with sequentially consistent semantics (DRF-SC), and supports a compositional refinement relation for validating optimisations. Our semantics identifies false program dependencies that might be removed by compiler optimisation, and leaves in place just the dependencies necessary to rule out thin-air reads. We show that our dependency calculation can be used to rule out thin-air reads in any axiomatic concurrency model, in particular C++. We present a tool that automatically evaluates litmus tests, show that we can augment C++ to fix the thin-air problem, and we prove that our augmentation is compatible with the previously used compilation mappings over key processor architectures. We argue that our dependency calculation offers a practical route to fixing the longstanding problem of thin-air reads in the C++ specification. Marco Paviotti, Simon Cooksey, Anouk Paradis, Daniel Wright 0001, Scott Owens, Mark Batty |
ESOP | 5 |
| 2019 | Building trustworthy software with CakeMLabstractCakeML is an impure functional programming language aimed at supporting formally verified programs. The CakeML project has several aspects including formal semantics and metatheory, a verified compiler, a mechanised connection between its semantics and higher-order logic (in the HOL4 interactive theorem prover), and an example verified theorem prover written in CakeML and HOL4. It also has respectable performance compared to industrial-strength implementations of ML. Scott Owens |
FTfJP@ECOOP | 1 |
| 2019 | Characterising renaming within OCaml's module system: theory and implementationabstractWe present an abstract, set-theoretic denotational semantics for a significant subset of OCaml and its module system, allowing to reason about the correctness of renaming value bindings. Our semantics captures information about the binding structure of programs, as well as about which declarations are related by the use of different language constructs (e.g. functors, module types and module constraints). Correct renamings are precisely those that preserve this structure. We show that our abstract semantics is sound with respect to a (domain-theoretic) denotational model of the operational behaviour of programs, and that it allows us to prove various high-level, intuitive properties of renamings. This formal framework has been implemented in a prototype refactoring tool for OCaml that performs renaming. Reuben N. S. Rowe, Hugo Férée, Simon J. Thompson, Scott Owens |
PLDI | 4 |
| 2019 | The verified CakeML compiler backendabstractAbstract The CakeML compiler is, to the best of our knowledge, the most realistic verified compiler for a functional programming language to date. The architecture of the compiler, a sequence of intermediate languages through which high-level features are compiled away incrementally, enables verification of each compilation pass at an appropriate level of semantic detail. Parts of the compiler’s implementation resemble mainstream (unverified) compilers for strict functional languages, and it supports several important features and optimisations. These include efficient curried multi-argument functions, configurable data representations, efficient exceptions, register allocation, and more. The compiler produces machine code for five architectures: x86-64, ARMv6, ARMv8, MIPS-64, and RISC-V. The generated machine code contains the verified runtime system which includes a verified generational copying garbage collector and a verified arbitrary precision arithmetic (bignum) library. In this paper, we present the overall design of the compiler backend, including its 12 intermediate languages. We explain how the semantics and proofs fit together and provide detail on how the compiler has been bootstrapped inside the logic of a theorem prover. The entire development has been carried out within the HOL4 theorem prover. Yong Kiam Tan, Magnus O. Myreen, Ramana Kumar, Anthony C. J. Fox, Scott Owens, Michael Norrish |
J. Funct. Program. | 5 |
| 2017 | Verifying efficient function calls in CakeMLabstractWe have designed an intermediate language (IL) for the CakeML compiler that supports the verified, efficient compilation of functions and calls. Verified compilation steps include batching of multiple curried arguments, detecting calls to statically known functions, and specialising calls to known functions with no free variables. Finally, we verify the translation to a lower-level IL that only supports closed, first-order functions. These compilation steps resemble those found in other compilers (especially OCaml). Our contribution here is the design of the semantics of the IL, and the demonstration that our verification techniques over this semantics work well in practice at this scale. The entire development was carried out in the HOL4 theorem prover. Scott Owens, Michael Norrish, Ramana Kumar, Magnus O. Myreen, Yong Kiam Tan |
Proc. ACM Program. Lang. | 1 |
| 2016 | Functional Big-Step Semantics
Scott Owens, Magnus O. Myreen, Ramana Kumar, Yong Kiam Tan |
ESOP | 1 |
| 2016 | A new verified compiler backend for CakeMLabstractWe have developed and mechanically verified a new compiler backend for CakeML. Our new compiler features a sequence of intermediate languages that allows it to incrementally compile away high-level features and enables verification at the right levels of semantic detail. In this way, it resembles mainstream (unverified) compilers for strict functional languages. The compiler supports efficient curried multi-argument functions, configurable data representations, exceptions that unwind the call stack, register allocation, and more. The compiler targets several architectures: x86-64, ARMv6, ARMv8, MIPS-64, and RISC-V. Yong Kiam Tan, Magnus O. Myreen, Ramana Kumar, Anthony C. J. Fox, Scott Owens, Michael Norrish |
ICFP | 5 |
| 2016 | Benchmarking weak memory modelsabstractTo achieve good multi-core performance, modern microprocessors have weak memory models, rather than enforce sequential consistency. This gives the programmer a wide scope for choosing exactly how to implement various aspects of inter-thread communication through the system's shared memory. However, these choices come with both semantic and performance consequences, often in tension with each other. In this paper, we focus on the performance side, and define techniques for evaluating the impact of various choices in using weak memory models, such as where to put fences, and which fences to use. We make no attempt to judge certain strategies as best or most efficient, and instead provide the techniques that will allow the programmer to understand the performance implications when identifying and resolving any semantic/performance trade-offs. In particular, our technique supports the reasoned selection of macrobenchmarks to use in investigating trade-offs in using weak memory models. We demonstrate our technique on both synthetic benchmarks and real-world applications for the Linux Kernel and OpenJDK Hotspot Virtual Machine on the ARMv8 and POWERv7 architectures. Carl G. Ritson, Scott Owens |
PPoPP | 2 |
| 2016 | A High-Assurance, High-Performance Hardware-Based Cross-Domain System
David S. Hardin, Konrad Slind, Mark Bortz, James Potts, Scott Owens |
SAFECOMP | 5 |
| 2016 | Self-Formalisation of Higher-Order Logic - Semantics, Soundness, and a Verified ImplementationabstractWe present a mechanised semantics for higher-order logic (HOL), and a proof of soundness for the inference system, including the rules for making definitions, implemented by the kernel of the HOL Light theorem prover. Our work extends Harrison’s verification of the inference system without definitions. Soundness of the logic extends to soundness of a theorem prover, because we also show that a synthesised implementation of the kernel in CakeML refines the inference system. Apart from adding support for definitions and synthesising an implementation, we improve on Harrison’s work by making our model of HOL parametric on the universe of sets, and we prove soundness for an improved principle of constant specification in the hope of encouraging its adoption. Our semantics supports defined constants directly via a context, and we find this approach cleaner than our previous work formalising Wiedijk’s Stateless HOL. Ramana Kumar, Rob Arthan, Magnus O. Myreen, Scott Owens |
J. Autom. Reason. | 4 |
| 2014 | Lem: reusable engineering of real-world semanticsabstractRecent years have seen remarkable successes in rigorous engineering: using mathematically rigorous semantic models (not just idealised calculi) of real-world processors, programming languages, protocols, and security mechanisms, for testing, proof, analysis, and design. Building these models is challenging, requiring experimentation, dialogue with vendors or standards bodies, and validation; their scale adds engineering issues akin to those of programming to the task of writing clear and usable mathematics. But language and tool support for specification is lacking. Proof assistants can be used but bring their own difficulties, and a model produced in one, perhaps requiring many person-years effort and maintained over an extended period, cannot be used by those familiar with another. Dominic P. Mulligan, Scott Owens, Kathryn E. Gray, Tom Ridge, Peter Sewell |
ICFP | 2 |
| 2014 | HOL with Definitions: Semantics, Soundness, and a Verified Implementation
Ramana Kumar, Rob Arthan, Magnus O. Myreen, Scott Owens |
ITP | 4 |
| 2014 | CakeML: a verified implementation of MLabstractWe have developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML. CakeML is implemented as an interactive read-eval-print loop (REPL) in x86-64 machine code. Our correctness theorem ensures that this REPL implementation prints only those results permitted by the semantics of CakeML. Our verification effort touches on a breadth of topics including lexing, parsing, type checking, incremental and dynamic compilation, garbage collection, arbitrary-precision arithmetic, and compiler bootstrapping. Ramana Kumar, Magnus O. Myreen, Michael Norrish, Scott Owens |
POPL | 4 |
| 2014 | Proof-producing translation of higher-order logic into pure and stateful MLabstractAbstract The higher-order logic found in proof assistants such as Coq and various HOL systems provides a convenient setting for the development and verification of functional programs. However, to efficiently run these programs, they must be converted (or ‘extracted’) to functional programs in a programming language such as ML or Haskell. With current techniques, this step, which must be trusted, relates similar looking objects that have very different semantic definitions, such as the set-theoretic model of a logic and the operational semantics of a programming language. In this paper, we show how to increase the trustworthiness of this step with an automated technique. Given a functional program expressed in higher-order logic, our technique provides the corresponding program for a functional language defined with an operational semantics, and it provides a mechanically checked theorem relating the two. This theorem can then be used to transfer verified properties of the logical function to the program. We have implemented our technique in the HOL4 theorem prover, translating functions to a subset of Standard ML, and have applied the implementation to examples including functional data structures, a parser generator, cryptographic algorithms, a garbage collector and the 500-line kernel of the HOL light theorem prover. This paper extends our previous conference publication with new material that shows how functions defined in terms of a state-and-exception monad can be translated, with proofs, into stateful ML code. The HOL light example is also new. Magnus O. Myreen, Scott Owens |
J. Funct. Program. | 2 |
| 2013 | Steps towards Verified Implementations of HOL Light
Magnus O. Myreen, Scott Owens, Ramana Kumar |
ITP | 2 |
| 2012 | An Axiomatic Memory Model for POWER Multiprocessors
Sela Mador-Haim, Luc Maranget, Susmit Sarkar, Kayvan Memarian, Jade Alglave, Scott Owens, Rajeev Alur, Milo M. K. Martin, Peter Sewell, Derek Williams |
CAV | 6 |
| 2012 | Proof-producing synthesis of ML from higher-order logicabstractThe higher-order logic found in proof assistants such as Coq and various HOL systems provides a convenient setting for the development and verification of pure functional programs. However, to efficiently run these programs, they must be converted (or "extracted") to functional programs in a programming language such as ML or Haskell. With current techniques, this step, which must be trusted, relates similar looking objects that have very different semantic definitions, such as the set-theoretic model of a logic and the operational semantics of a programming language. Magnus O. Myreen, Scott Owens |
ICFP | 2 |
| 2012 | Synchronising C/C++ and POWERabstractShared memory concurrency relies on synchronisation primitives: compare-and-swap, load-reserve/store-conditional (aka LL/SC), language-level mutexes, and so on. In a sequentially consistent setting, or even in the TSO setting of x86 and Sparc, these have well-understood semantics. But in the very relaxed settings of IBM®, POWER®, ARM, or C/C++, it remains surprisingly unclear exactly what the programmer can depend on. Susmit Sarkar, Kayvan Memarian, Scott Owens, Mark Batty, Peter Sewell, Luc Maranget, Jade Alglave, Derek Williams |
PLDI | 3 |
| 2012 | Clarifying and compiling C/C++ concurrency: from C++11 to POWERabstractThe upcoming C and C++ revised standards add concurrency to the languages, for the first time, in the form of a subtle *relaxed memory model* (the *C++11 model*). This aims to permit compiler optimisation and to accommodate the differing relaxed-memory behaviours of mainstream multiprocessors, combining simple semantics for most code with high-performance *low-level atomics* for concurrency libraries. In this paper, we first establish two simpler but provably equivalent models for C++11, one for the full language and another for the subset without consume operations. Subsetting further to the fragment without low-level atomics, we identify a subtlety arising from atomic initialisation and prove that, under an additional condition, the model is equivalent to sequential consistency for race-free programs. Mark Batty, Kayvan Memarian, Scott Owens, Susmit Sarkar, Peter Sewell |
POPL | 3 |
| 2011 | Lem: A Lightweight Tool for Heavyweight Semantics
Scott Owens, Peter Böhm, Francesco Zappa Nardelli, Peter Sewell |
ITP | 1 |
| 2011 | Mathematizing C++ concurrencyabstractShared-memory concurrency in C and C++ is pervasive in systems programming, but has long been poorly defined. This motivated an ongoing shared effort by the standards committees to specify concurrent behaviour in the next versions of both languages. They aim to provide strong guarantees for race-free programs, together with new (but subtle) relaxed-memory atomic primitives for high-performance concurrent code. However, the current draft standards, while the result of careful deliberation, are not yet clear and rigorous definitions, and harbour substantial problems in their details. Mark Batty, Scott Owens, Susmit Sarkar, Peter Sewell, Tjark Weber |
POPL | 2 |
| 2011 | Nitpicking C++ concurrencyabstractPrevious work formalized the C++ memory model in Isabelle/HOL in an effort to clarify the proposed standard's semantics. Here we employ the model finder Nitpick to check litmus test programs that exercise the memory model, including a simple locking algorithm. Nitpick is built on Kodkod (Alloy's backend) but understands Isabelle's richer logic; hence it can be applied directly to the C++ memory model. We only need to give it a few hints, and thanks to the underlying SAT solver it scales much better than the Cppmem explicit-state model checker. This case study inspired optimizations in Nitpick from which other formalizations can now benefit. Jasmin Blanchette, Tjark Weber, Mark Batty, Scott Owens, Susmit Sarkar |
PPDP | 4 |
| 2010 | Reasoning about the Implementation of Concurrency Abstractions on x86-TSO
Scott Owens |
ECOOP | 1 |
| 2010 | Ott: Effective tool support for the working semanticistabstractAbstract Semantic definitions of full-scale programming languages are rarely given, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics – usually either for informal mathematics or the formal mathematics of a proof assistant – make it much harder than necessary to work with large definitions. We present a metalanguage specifically designed for this problem, and a tool, Ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, and Isabelle/HOL, together with code for production-quality typesetting, and OCaml boilerplate. The main innovations are (1) metalanguage design to make definitions concise, and easy to read and edit; (2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code. This has been tested in substantial case studies, including modular specifications of calculi from the TAPL text, a Lightweight Java with Java JSR 277/294 module system proposals, and a large fragment of OCaml (OCaml light , 310 rules), with mechanised proofs of various soundness results. Our aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages. Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Tom Ridge, Susmit Sarkar, Rok Strnisa |
J. Funct. Program. | 3 |
| 2009 | The semantics of x86-CC multiprocessor machine codeabstractMultiprocessors are now dominant, but real multiprocessors do not provide the sequentially consistent memory that is assumed by most work on semantics and verification. Instead, they have subtle relaxed (or weak) memory models, usually described only in ambiguous prose, leading to widespread confusion. Susmit Sarkar, Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Tom Ridge, Thomas Braibant, Magnus O. Myreen, Jade Alglave |
POPL | 4 |
| 2009 | Regular-expression derivatives re-examinedabstractAbstract Regular-expression derivatives are an old, but elegant, technique for compiling regular expressions to deterministic finite-state machines. It easily supports extending the regular-expression operators with boolean operations, such as intersection and complement. Unfortunately, this technique has been lost in the sands of time and few computer scientists are aware of it. In this paper, we reexamine regular-expression derivatives and report on our experiences in the context of two different functional-language implementations. The basic implementation is simple and we show how to extend it to handle large character sets (e.g., Unicode). We also show that the derivatives approach leads to smaller state machines than the traditional algorithm given by McNaughton and Yamada. Scott Owens, John H. Reppy, Aaron Turon |
J. Funct. Program. | 1 |
| 2008 | A Sound Semantics for OCamllight
Scott Owens |
ESOP | 1 |
| 2007 | Structure of a Proof-Producing Compiler for a Subset of Higher Order Logic
Scott Owens, Konrad Slind |
ESOP | 2 |
| 2007 | Ott: effective tool support for the working semanticistabstractIt is rare to give a semantic definition of a full-scale programming language, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics - usually either LaTEX for informal mathematics, or the formal mathematics of a proof assistant - make it much harder than necessary to work with large definitions.We present a metalanguage specifically designed for this problem, and a tool, ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, Isabelle, and (in progress) Twelf, together with LaTEX code for production-quality typesetting, and OCaml boilerplate. The main innovations are:(1) metalanguage design to make definitions concise, and easy to read and edit;(2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code.This has been tested in substantial case studies, including modular specifications of calculi from the TAPL text, a Lightweight Java with Java JSR 277/294 module system proposals, and a large fragment of OCaml (around 306 rules), with machine proofs of various soundness results. Our aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages. Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Tom Ridge, Susmit Sarkar, Rok Strnisa |
ICFP | 3 |
| 2007 | Proof producing synthesis of arithmetic and cryptographic hardwareabstractAbstract A compiler from a synthesisable subset of higher order logic to clocked synchronous hardware is described. It is being used to create coprocessors for cryptographic and arithmetic applications. The compiler automatically translates a functionfdefined in higher order logic (typically using recursion) into a device that computesfvia a four-phase handshake circuit. Compilation is by fully automatic proof in the HOL4 system, and generates a correctness theorem for each compiled function. Synthesised circuits can be directly translated to Verilog, and then input to design automation tools. A fully-expansive ‘LCF methodology’ allows users to safely modify and extend the compiler’s theorem proving scripts to add optimisations or to enlarge the synthesisable subset of higher order logic. Konrad Slind, Scott Owens, Juliano Iyoda, Michael J. C. Gordon |
Formal Aspects Comput. | 2 |
| 2006 | From structures and functors to modules and unitsabstractComponent programming techniques encourage abstraction and reuse through external linking. Some parts of a program, however, must use concrete, internally specified references, so a pure component system is not a sufficient mechanism for structuring programs. We present the combination of a static, internally-linked module system and a purely abstractive component system. The latter extends our previous model of typed units to properly account for translucency and sharing. We also show how units and modules can express an SML-style system of structures and functors, and we explore the consequences for recursive structures and functors. Scott Owens, Matthew Flatt |
ICFP | 1 |
| 2005 | Syntactic Abstraction in Component Interfaces
Ryan Culpepper, Scott Owens, Matthew Flatt |
GPCE | 2 |
| 2005 | Functional Correctness Proofs of Encryption Algorithms
Jianjun Duan, Joe Hurd, Scott Owens, Konrad Slind, Junxing Zhang |
LPAR | 4 |
| 2000 | Deformable Volumes in Path Planning ApplicationsabstractThis paper addresses the problem of path planning for a class of deformable volumes under fairly general manipulation constraints. The underlying geometric model for the volume is provided by a mass-spring representation. It is augmented by a realistic mechanical model. The latter permits the computation of the shape of the considered object with respect to the grasping constraints by minimizing the energy function of the deformation of the object. Previous research in planning for deformable objects considered the case of elastic plates and proposed a randomized framework for planning paths for plates under manipulation constraints. The present paper modifies and extends the previously proposed framework to handle simple volumes. Our planner builds a roadmap in the configuration space. The nodes of the roadmap are equilibrium configurations of the considered volume under the manipulation constraints, while its edges correspond to quasi-static equilibrium paths. Paths are found by searching the roadmap. We present experimental results that illustrate our approach. Elliot Anshelevich, Scott Owens, Florent Lamiraux, Lydia E. Kavraki |
ICRA | 2 |