Semantical analysis of specification logic
Information and Computation
Parametricity and local variables
Journal of the ACM (JACM)
On full abstraction for PCF: I, II, and III
Information and Computation
Information and Computation
Full abstraction for functional languages with control
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Nominal Games and Full Abstraction for the Nu-Calculus
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
From Applicative to Environmental Bisimulation
Electronic Notes in Theoretical Computer Science (ENTCS)
Java JR: fully abstract trace semantics for a core java language
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
A fully abstract trace semantics for general
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Abstract Machines for Game Semantics, Revisited
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
Game semantics is a trace-like denotational semantics for programming languages where the notion of legal observable behaviour of a term is defined combinatorially, by means of rules of a game between the term (the Proponent) and its context (the Opponent). In general, the richer the computational features a language has the less constrained the rules of the semantic game. In this paper we consider the consequences of taking this relaxation of rules to the limit, by granting the Opponent omnipotence, that is, permission to play any move without combinatorial restrictions. However, we impose an epistemic restriction by not granting Opponent omniscience, so that Proponent can have undisclosed secret moves. We introduce a basic C-like programming language and we define such a semantic model for it. We argue that the resulting semantics is an appealingly simple combination of operational and game semantics and we show how certain traces explain system-level attacks, i.e. plausible attacks that are realisable outside of the programming language itself. We also show how allowing Proponent to have secrets ensures that some desirable equivalences in the programming language are preserved.