Dan R. Ghica - Profile on Academia.edu (original) (raw)
Papers by Dan R. Ghica
Lecture Notes in Computer Science, 2009
We introduce a technique for using conventional predicate abstraction methods to reduce the state... more We introduce a technique for using conventional predicate abstraction methods to reduce the state-space of models produced using game semantics. We focus on an expressive procedural language that has both local store and local control, a language which enjoys a simple game-semantic model yet is expressive enough to allow non-trivial examples. Our compositional approach allows the verification of incomplete programs (e.g. libraries) and offers the opportunity for new heuristics for improved efficiency. Game-semantic predicate abstraction can be embedded in an abstraction-refinement cycle in a standard way, resulting in an improved version of our experimental model-checking tool Mage, and we illustrate it with several toy examples.
Semantical Analysis of Specification Logic, 3: An Operational Approach
European Symposium on Programming, 2004
Semantics of Dynamic Variables in Algol-like Languages
A denotational semantic model of an Algol-like programming language with local variables,providin... more A denotational semantic model of an Algol-like programming language with local variables,providing fully functional dynamic variable manipulation is presented. Alongwith the other usual language features, the standard operations with pointers, thatis reattachement and dereferencing, and dynamic variables, that is creation and assignment,are explicated using a possible worlds, functor category, location orientedmodel.It is shown that the model used to explicate local
A GAMES-BASED FOUNDATION FOR COMPOSITIONAL SOFTWARE MODEL CHECKING
A Regular-Language Model for Hoare-Style Correctness Statements
Recent developments in game semantics have led to fully abstract models for a varietyof theoretic... more Recent developments in game semantics have led to fully abstract models for a varietyof theoretically important programming languages. While the full-blown gamemodels tend to be complex and unwieldy for practical purposes, language subsetswithout higher-order and recursive functions allow greatly simplied models. Twoprevious papers of the author show how imperative languages with rst order functions,local variables and arrays can be modeled
Higher-order and Symbolic Computation / Lisp and Symbolic Computation, 2000
This note is a historical survey of Christopher Strachey's influence on the development of se... more This note is a historical survey of Christopher Strachey's influence on the development of semantic models of assignment and storage management in procedural languages.
On-the-Fly Techniques for Game-Based Software Model Checking
Lecture Notes in Computer Science, 2008
Automated software verification evolved rapidly in the last few years, culminat-ing in the develo... more Automated software verification evolved rapidly in the last few years, culminat-ing in the development of industry-strength verification toolkits such as Slam [6] and Blast [19]. These toolkits represent impressive feats of engineering, com-bining techniques from model checking [10] and ...
The Regular-Language Semantics of First-Order Idealized Algol
We explain how recent developments in game semantics can be applied to reasoning about equivalenc... more We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a non-trivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inherits its good theoretical properties; in fact, for first order IA taken as
Logic in Computer Science, 2009
After informally reviewing the main concepts from game semantics and placing the development of t... more After informally reviewing the main concepts from game semantics and placing the development of the field in a his- torical context we examine its main applications. We focus in particular on finite state model checking, higher order model checking and more recent developments in hardware design. 1. Chronology, methodology, ideology Game Semantics is a denotational semantics in the con- ventional
The regular-language semantics of second-order idealized ALGOL
Theoretical Computer Science, 2003
We explain how recent developments in game semantics can be applied to reasoning about equivalenc... more We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a non-trivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inherits its good theoretical properties; in fact, for second-order IA taken as a
We present a research programme dedicated to the application of Game Semantics to program analysi... more We present a research programme dedicated to the application of Game Semantics to program analysis and verification. We high- light several recent theoretical results and describe a prototypical software modeling and verification tool. The distinctive novel fea- tures of the tool are its ability to handle open programs and the fact that the models it produces are observationally fully abstract.
Tools and Algorithms for Construction and Analysis of Systems, 2004
We describe a software model checking tool founded on game semantics, highlight the underpinning ... more We describe a software model checking tool founded on game semantics, highlight the underpinning theoretical results and discuss several case studies. The tool is based on an interpretation algorithm defined compositionally on syntax and thus can also handle open programs. Moreover, the models it produces are equationally fully abstract. These features are essential in the modeling and verification of software
Compositional Model Extraction for Higher-Order Concurrent Programs
Lecture Notes in Computer Science, 2006
The extraction of accurate finite-state models of higher-order or open programs is a dicult probl... more The extraction of accurate finite-state models of higher-order or open programs is a dicult problem. We show how it can be addressed using newly developed game-semantic techniques and illustrate the solu- tion with a model-checking tool based on such techniques. The approach has several important advantages over more traditional ones: precise ac- count of inter-procedural behaviour, concise procedure summaries and
Geometry of synthesis
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '07, 2007
We propose a new technique for hardware synthesis from higher- order functional languages with im... more We propose a new technique for hardware synthesis from higher- order functional languages with imperative features based on Reynolds's Syntactic Control of Interference. The restriction on contraction in the type system is useful for managing the thorny issue of sharing of physical circuits. We use a semantic model in- spired by game semantics and the geometry of interaction, and express
Lecture Notes in Computer Science, 2011
A synchronous game semantics-one in which several moves may occur simultaneously-is derived from ... more A synchronous game semantics-one in which several moves may occur simultaneously-is derived from a conventional (sequential) game semantics using a round abstraction algorithm. We choose the programming language Syntactic Control of Interference and McCusker's fully abstract relational model as a convenient starting point and derive a synchronous game model first by refining the relational semantics into a trace semantics, then applying a round abstraction to it. We show that the resulting model is sound but not fully abstract. This work is practically motivated by applications to hardware synthesis via game semantics.
On the Compositionality of Round Abstraction
Lecture Notes in Computer Science, 2010
Game Semantics is an approach to denotational semantics that has been successful in providing acc... more Game Semantics is an approach to denotational semantics that has been successful in providing accurate, fully abstract models for various programming languages. It has thereafter been applied, amongst other things, to model checking, access control analysis, ...
2009 24th Annual IEEE Symposium on Logic In Computer Science, 2009
In this paper we introduce "clipping," a new method of syntactic approximation which is motivated... more In this paper we introduce "clipping," a new method of syntactic approximation which is motivated by and works in conjunction with a sound and decidable denotational model for a given programming language. Like slicing, clipping reduces the size of the source code in preparation for automatic verification; but unlike slicing it is an imprecise but computationally inexpensive algorithm which does not require a whole-program analysis. The technique of clipping can be framed into an iterated refinement cycle to arbitrarily improve its precision. We first present this rather simple idea intuitively with some examples, then work out the technical details in the case of an Algol-like programming language and a decidable approximation of its gamesemantic model inspired by Hankin and Malacaria's "lax functor" approach. We conclude by presenting an experimental model checking tool based on these ideas and some toy programs.
Slot games
Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of programming languages - POPL '05, 2005
We present a games-based denotational semantics for a quantitative analysis of programming langua... more We present a games-based denotational semantics for a quantitative analysis of programming languages. We define a Hyland-Ong-style games framework called slot games, which consists of HO games augmented with a new action called token. We develop a slot-game model for the language Idealised Concurrent Algol by instrumenting the strategies in its HO game model with token actions. We show that the slot-game model is a denotational semantics induced by a notion of observation formalised in the operational theory of improvement of Sands, and we give a full abstraction result. A quantitative analysis of programs has many potential applications, from compiler optimisations to resource-constrained execution and static performance profiling. We illustrate several such applications with putative examples that would be nevertheless difficult, if not impossible, to handle using known operational techniques.
Geometry of synthesis III
ACM SIGPLAN Notices, 2011
Abstract Geometry of Synthesis is a technique for compiling higher-level programming languages in... more Abstract Geometry of Synthesis is a technique for compiling higher-level programming languages into digital circuits via their game seman-tic model. Ghica (2007) first presented the key idea, then Ghica and Smith (2010) gave a provably correct compiler into asynchronous ...
Lecture Notes in Computer Science, 2009
We introduce a technique for using conventional predicate abstraction methods to reduce the state... more We introduce a technique for using conventional predicate abstraction methods to reduce the state-space of models produced using game semantics. We focus on an expressive procedural language that has both local store and local control, a language which enjoys a simple game-semantic model yet is expressive enough to allow non-trivial examples. Our compositional approach allows the verification of incomplete programs (e.g. libraries) and offers the opportunity for new heuristics for improved efficiency. Game-semantic predicate abstraction can be embedded in an abstraction-refinement cycle in a standard way, resulting in an improved version of our experimental model-checking tool Mage, and we illustrate it with several toy examples.
Semantical Analysis of Specification Logic, 3: An Operational Approach
European Symposium on Programming, 2004
Semantics of Dynamic Variables in Algol-like Languages
A denotational semantic model of an Algol-like programming language with local variables,providin... more A denotational semantic model of an Algol-like programming language with local variables,providing fully functional dynamic variable manipulation is presented. Alongwith the other usual language features, the standard operations with pointers, thatis reattachement and dereferencing, and dynamic variables, that is creation and assignment,are explicated using a possible worlds, functor category, location orientedmodel.It is shown that the model used to explicate local
A GAMES-BASED FOUNDATION FOR COMPOSITIONAL SOFTWARE MODEL CHECKING
A Regular-Language Model for Hoare-Style Correctness Statements
Recent developments in game semantics have led to fully abstract models for a varietyof theoretic... more Recent developments in game semantics have led to fully abstract models for a varietyof theoretically important programming languages. While the full-blown gamemodels tend to be complex and unwieldy for practical purposes, language subsetswithout higher-order and recursive functions allow greatly simplied models. Twoprevious papers of the author show how imperative languages with rst order functions,local variables and arrays can be modeled
Higher-order and Symbolic Computation / Lisp and Symbolic Computation, 2000
This note is a historical survey of Christopher Strachey's influence on the development of se... more This note is a historical survey of Christopher Strachey's influence on the development of semantic models of assignment and storage management in procedural languages.
On-the-Fly Techniques for Game-Based Software Model Checking
Lecture Notes in Computer Science, 2008
Automated software verification evolved rapidly in the last few years, culminat-ing in the develo... more Automated software verification evolved rapidly in the last few years, culminat-ing in the development of industry-strength verification toolkits such as Slam [6] and Blast [19]. These toolkits represent impressive feats of engineering, com-bining techniques from model checking [10] and ...
The Regular-Language Semantics of First-Order Idealized Algol
We explain how recent developments in game semantics can be applied to reasoning about equivalenc... more We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a non-trivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inherits its good theoretical properties; in fact, for first order IA taken as
Logic in Computer Science, 2009
After informally reviewing the main concepts from game semantics and placing the development of t... more After informally reviewing the main concepts from game semantics and placing the development of the field in a his- torical context we examine its main applications. We focus in particular on finite state model checking, higher order model checking and more recent developments in hardware design. 1. Chronology, methodology, ideology Game Semantics is a denotational semantics in the con- ventional
The regular-language semantics of second-order idealized ALGOL
Theoretical Computer Science, 2003
We explain how recent developments in game semantics can be applied to reasoning about equivalenc... more We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a non-trivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inherits its good theoretical properties; in fact, for second-order IA taken as a
We present a research programme dedicated to the application of Game Semantics to program analysi... more We present a research programme dedicated to the application of Game Semantics to program analysis and verification. We high- light several recent theoretical results and describe a prototypical software modeling and verification tool. The distinctive novel fea- tures of the tool are its ability to handle open programs and the fact that the models it produces are observationally fully abstract.
Tools and Algorithms for Construction and Analysis of Systems, 2004
We describe a software model checking tool founded on game semantics, highlight the underpinning ... more We describe a software model checking tool founded on game semantics, highlight the underpinning theoretical results and discuss several case studies. The tool is based on an interpretation algorithm defined compositionally on syntax and thus can also handle open programs. Moreover, the models it produces are equationally fully abstract. These features are essential in the modeling and verification of software
Compositional Model Extraction for Higher-Order Concurrent Programs
Lecture Notes in Computer Science, 2006
The extraction of accurate finite-state models of higher-order or open programs is a dicult probl... more The extraction of accurate finite-state models of higher-order or open programs is a dicult problem. We show how it can be addressed using newly developed game-semantic techniques and illustrate the solu- tion with a model-checking tool based on such techniques. The approach has several important advantages over more traditional ones: precise ac- count of inter-procedural behaviour, concise procedure summaries and
Geometry of synthesis
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '07, 2007
We propose a new technique for hardware synthesis from higher- order functional languages with im... more We propose a new technique for hardware synthesis from higher- order functional languages with imperative features based on Reynolds's Syntactic Control of Interference. The restriction on contraction in the type system is useful for managing the thorny issue of sharing of physical circuits. We use a semantic model in- spired by game semantics and the geometry of interaction, and express
Lecture Notes in Computer Science, 2011
A synchronous game semantics-one in which several moves may occur simultaneously-is derived from ... more A synchronous game semantics-one in which several moves may occur simultaneously-is derived from a conventional (sequential) game semantics using a round abstraction algorithm. We choose the programming language Syntactic Control of Interference and McCusker's fully abstract relational model as a convenient starting point and derive a synchronous game model first by refining the relational semantics into a trace semantics, then applying a round abstraction to it. We show that the resulting model is sound but not fully abstract. This work is practically motivated by applications to hardware synthesis via game semantics.
On the Compositionality of Round Abstraction
Lecture Notes in Computer Science, 2010
Game Semantics is an approach to denotational semantics that has been successful in providing acc... more Game Semantics is an approach to denotational semantics that has been successful in providing accurate, fully abstract models for various programming languages. It has thereafter been applied, amongst other things, to model checking, access control analysis, ...
2009 24th Annual IEEE Symposium on Logic In Computer Science, 2009
In this paper we introduce "clipping," a new method of syntactic approximation which is motivated... more In this paper we introduce "clipping," a new method of syntactic approximation which is motivated by and works in conjunction with a sound and decidable denotational model for a given programming language. Like slicing, clipping reduces the size of the source code in preparation for automatic verification; but unlike slicing it is an imprecise but computationally inexpensive algorithm which does not require a whole-program analysis. The technique of clipping can be framed into an iterated refinement cycle to arbitrarily improve its precision. We first present this rather simple idea intuitively with some examples, then work out the technical details in the case of an Algol-like programming language and a decidable approximation of its gamesemantic model inspired by Hankin and Malacaria's "lax functor" approach. We conclude by presenting an experimental model checking tool based on these ideas and some toy programs.
Slot games
Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of programming languages - POPL '05, 2005
We present a games-based denotational semantics for a quantitative analysis of programming langua... more We present a games-based denotational semantics for a quantitative analysis of programming languages. We define a Hyland-Ong-style games framework called slot games, which consists of HO games augmented with a new action called token. We develop a slot-game model for the language Idealised Concurrent Algol by instrumenting the strategies in its HO game model with token actions. We show that the slot-game model is a denotational semantics induced by a notion of observation formalised in the operational theory of improvement of Sands, and we give a full abstraction result. A quantitative analysis of programs has many potential applications, from compiler optimisations to resource-constrained execution and static performance profiling. We illustrate several such applications with putative examples that would be nevertheless difficult, if not impossible, to handle using known operational techniques.
Geometry of synthesis III
ACM SIGPLAN Notices, 2011
Abstract Geometry of Synthesis is a technique for compiling higher-level programming languages in... more Abstract Geometry of Synthesis is a technique for compiling higher-level programming languages into digital circuits via their game seman-tic model. Ghica (2007) first presented the key idea, then Ghica and Smith (2010) gave a provably correct compiler into asynchronous ...