PERSIST | A Semantic Foundation for Persistent Programming

Summary
Non-volatile memory (NVM) is an emerging technology that provides orders of magnitude faster access to persistent storage (which preserves its contents after a crash or a power failure) than hard disks. While NVM is expected to radically change how we manage storage in applications, its programming model is standing on very shaky foundations.

The persistency semantics of the mainstream architectures is very unclear and full of counterintuitive behaviours. As a result, writing correct NVM programs is extremely difficult: there is no support for persistent programming in programming languages nor any techniques for testing and verifying their correct recovery from crashes.

PERSIST will develop a solid mathematical basis for determining the possible outcomes of persistent programs and reasoning about their correctness. More specifically, it will produce:

(1) formal empirically-validated persistency models for mainstream hardware architectures,

(2) formal efficient persistency models for mainstream programming languages,

(3) firmly-grounded higher-level abstractions to ease persistent programming, and

(4) the first effective testing and verification techniques for persistent programs.
Unfold all
/
Fold all
More information & hyperlinks
Web resources: https://cordis.europa.eu/project/id/101003349
Start date: 01-03-2021
End date: 28-02-2026
Total budget - Public funding: 1 999 300,00 Euro - 1 999 300,00 Euro
Cordis data

Original description

Non-volatile memory (NVM) is an emerging technology that provides orders of magnitude faster access to persistent storage (which preserves its contents after a crash or a power failure) than hard disks. While NVM is expected to radically change how we manage storage in applications, its programming model is standing on very shaky foundations.

The persistency semantics of the mainstream architectures is very unclear and full of counterintuitive behaviours. As a result, writing correct NVM programs is extremely difficult: there is no support for persistent programming in programming languages nor any techniques for testing and verifying their correct recovery from crashes.

PERSIST will develop a solid mathematical basis for determining the possible outcomes of persistent programs and reasoning about their correctness. More specifically, it will produce:

(1) formal empirically-validated persistency models for mainstream hardware architectures,

(2) formal efficient persistency models for mainstream programming languages,

(3) firmly-grounded higher-level abstractions to ease persistent programming, and

(4) the first effective testing and verification techniques for persistent programs.

Status

SIGNED

Call topic

ERC-2020-COG

Update Date

27-04-2024
Geographical location(s)
Structured mapping
Unfold all
/
Fold all
EU-Programme-Call
Horizon 2020
H2020-EU.1. EXCELLENT SCIENCE
H2020-EU.1.1. EXCELLENT SCIENCE - European Research Council (ERC)
ERC-2020
ERC-2020-COG ERC CONSOLIDATOR GRANTS