European Commission logo
English English
CORDIS - EU research results

Differential Program Semantics

Project description

Similarities or differences: it's a matter of semantics

Computer programming languages, much like other languages, can be characterised by both syntax and semantics. Syntax refers to the actual string of characters that comprise a programme. Semantics provides an abstraction, an overarching meaning of the programme, ignoring details and typically focussing on the relationship between input and output. Comparisons of programmes have generally relied on comparing their similarities or evaluating whether their meanings are the same. The EU-funded DIAPASoN project is studying differences rather than similarities between programmes through the lens of common frameworks used to define programme semantics.


Traditionally, program semantics is centered around the notion of program identity, that is to say of program equivalence: a program is identified with its meaning, and programs are considered as equal only if their meanings are the same. This view has been extremely fruitful in the past, allowing for a deep understanding of highly interactive forms of computation as embodied by higher-order or concurrent programs. The byproducts of all this lie everywhere in computer science, from programming language design to verification methodologies. The emphasis on equality — as opposed to differences — is not however in line with the way programs are written and structured in modern complex software systems. Subtasks are delegated to pieces of code which behave as expected only up to a certain probability of error, and only if the environment in which they operate makes this possible deviation irrelevant. These aspects have been almost neglected by the program semantics community until recently, and still have a marginal role. DIAPASON's goal is to study differences between programs as a constitutive and informative concept, rather than by way of relations between them. This will be accomplished by generalizing four major frameworks of program semantics, traditionally used for giving semantics to programs, comparing them, proving properties of them, and controlling their usage of resources: logical relations, bisimulation, game semantics, and linear logic.

Host institution

Net EU contribution
€ 959 562,00
40126 Bologna

See on map

Nord-Est Emilia-Romagna Bologna
Activity type
Higher or Secondary Education Establishments
Total cost
€ 959 562,00

Beneficiaries (1)