Lindsay Groves

ORCID: 0000-0002-9179-3602
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Logic, programming, and type systems
  • Parallel Computing and Optimization Techniques
  • Distributed systems and fault tolerance
  • Formal Methods in Verification
  • Software Engineering Research
  • Advanced Database Systems and Queries
  • Software Testing and Debugging Techniques
  • Real-Time Systems Scheduling
  • Security and Verification in Computing
  • Semantic Web and Ontologies
  • Advanced Data Storage Technologies
  • Distributed and Parallel Computing Systems
  • Software Reliability and Analysis Research
  • Model-Driven Software Engineering Techniques
  • Optimization and Search Problems
  • Data Management and Algorithms
  • Simulation Techniques and Applications
  • Algorithms and Data Compression
  • Scientific Computing and Data Management
  • Embedded Systems Design Techniques
  • Data Quality and Management
  • Petri Nets in System Modeling
  • Software Engineering Techniques and Practices
  • Software-Defined Networks and 5G
  • Natural Language Processing Techniques

Victoria University of Wellington
2013-2022

University of Waikato
1980-1982

Despite years of research, the design efficient nonblocking algorithms remains difficult. A key reason is that current shared-memory multiprocessor architectures support only single-location synchronisation primitives such as compare-and-swap (CAS) and load-linked/store-conditional (LL/SC). Recently researchers have investigated utility double-compare-and-swap (DCAS)--a generalisation CAS supports atomic access to two memory locations -- in overcoming these problems. We summarise recent...

10.1145/1007912.1007945 article EN 2004-06-27

We describe an approach to verifying concurrent data structures based on simulation between two Input/Output Automata (IOAs), modelling the specification and implementation. explain how we used this in mechanically a simple lock-free stack implementation using forward simulation, briefly discuss our experience three other algorithms which all required use of backward simulation.

10.1016/j.entcs.2005.04.026 article EN Electronic Notes in Theoretical Computer Science 2005-07-01

We describe an array-based nonblocking implementation of a concurrent bounded queue, due to Shann, Huang and Chen (2000), explain how we detected errors in the algorithm while attempting formal verification. first corrected errors, then modified obtain behaviour boundary cases. Both versions were verified using PVS theorem proven. verification algorithm, which subsumes proof version.

10.1109/iceccs.2005.49 article EN 2005-01-01

10.1016/0950-5849(94)90007-8 article EN Information and Software Technology 1994-01-01

We describe ongoing work in which we aim to formally specify a correctness condition for transactional memory (TM) called Weakest Reasonable Condition (WRC), and facilitate fully formal machine-checked proofs that TM implementations satisfy the condition. To precisely define WRC condition, express it using an I/O automaton. similarly present another PRAG, is more restrictive, but closely reflects intuition about common implementation techniques. sketch simulation proof PRAG implements WRC,...

10.1016/j.entcs.2010.01.001 article EN Electronic Notes in Theoretical Computer Science 2009-12-01

We develop a mechanized proof of Featherweight Java with Assignment and Immutability in the Coq assistant. This is step towards more machine-checked proofs non-trivial type system. used object immutability close to that IGJ [9]. describe challenges mechanisation encoding we inside Coq.

10.1145/2318202.2318206 article EN 2012-06-12

We report on the software development techniques used in New Zealand industry, paying particular attention to requirements gathering. surveyed a selection of companies with general questionnaire and then conducted in-depth interviews four companies. Our results show wide variety kinds undertaking development, employing range techniques. Although our data are not sufficiently detailed draw statistically significant conclusions, it appears that larger groups typically have more well-defined...

10.1109/aswec.2000.844576 article EN 2002-11-07

We show how a sophisticated, lock-free concurrent stack implementation can be derived from an abstract specification in series of verifiable steps. The algorithm is simplified version one described by Hendler, Shavit and Yerushalmi [Hendler, D., N. L. Yerushalmi, A scalable algorithm, in: SPAA 2004: Proceedings the Sixteenth Annual ACM Symposium on Parallel Algorithms, June 27–30, 2004, Barcelona, Spain, pp. 206–215], which allows push pop operations to paired off eliminated without...

10.1016/j.entcs.2006.08.044 article EN Electronic Notes in Theoretical Computer Science 2007-07-01

Path dependent types have long served as an expressive component of the Scala programming language. They allow for modelling both bounded polymorphism and a degree nominal subtyping. Nominality in turn provides ability to capture first class modules. Thus single language feature gives rise rich array expressiveness. Recent work has proven path sound presence intersection recursive types, but unfortunately typing remains undecidable, posing problems programmers who rely on results type...

10.1145/3371134 article EN Proceedings of the ACM on Programming Languages 2019-12-20

Correctness of concurrent objects is defined in terms conditions that determine allowable relationships between histories a object and those the corresponding sequential object. Numerous correctness have been proposed over years, more recently as algorithms implementing adapted to cope with multicore processors relaxed memory architectures. We present formal framework for defining architectures, covering both standard totally ordered newer memory, which allows them be expressed uniform...

10.4230/lipics.ecoop.2015.470 article EN 2015-01-01

Traditionally, formal semantic models of Java-like languages use an explicit model the store which mimics pointers and ram. These low level hamper understanding semantics, development proofs about ownerships other encapsulation properties, since real (graph) structure data is obscured by encoding. Such are also inadequate for didactic purposes they rely on run-time structures that do not exist in source program --- order to understand meaning expression middle execution one required...

10.1145/2489804.2489805 article EN 2013-07-01

It is well known that the principal operators in Z schema calculus are not monotonic with respect to refinement, which limits their usefulness software development. The usual reaction this observation remove all before performing any kind of or move a different formalism such as B refinement calculus. This paper examines interaction between and more closely, showing exactly how non-monotonicity arises, identifying various conditions under components expressions can be safely replaced by...

10.1016/s1571-0661(05)80486-4 article EN Electronic Notes in Theoretical Computer Science 2002-11-01
Coming Soon ...