LiquidEff · Algebraic Foundations for Liquid Effects
„Хоризонт 2020“ — Действия „Мария Склодовска-Кюри“
- Период
- 2019-10-01 → 2021-09-30
- Финансиране от ЕС
- 150 040 €
- Участници
- 1
- Схема
- MSCA-IF-EF-ST
Линиите свързват координатора с партньорите.
Накратко на български
Алгебричните ефекти в езиците за програмиране се изследват, за да се създадат по-точни типове за описание на софтуерни процеси. Това помага за намаляване на грешките в програмите чрез автоматична проверка на техните свойства още по време на компилацията.
Кратко обяснение, генерирано от езиков модел по текста на CORDIS. Оригиналът е по-долу.
Резултати накратко
LiquidEff: Algebraic Foundations for Liquid Effects
In our ever-more digital world, the cost of software failure is staggering, and consequently many approaches to software correctness have been developed, e.g., testing, model checking, and formal verification. Programming languages can address verification via the correct-by-construction paradigm, where the types of programs are used to state the desired properties, and successful typechecking provides modular, compile-time machine-certification that those properties hold. Decades of research have culminated in the development of advanced programming languages (such as Agda, Coq, F*, Idris, Liquid Haskell), whose sophisticated type systems permit a continuum of precision of specification. The technology behind these systems also drives the development of mainstream languages with significant industrial deployment, such as F\#, Haskell, and OCaml. While such languages can accommodate precise type-level specifications and offer strong correctness guarantees, this has historically been predominantly limited to pure values or a select few computational effects. The goal of this project was to reduce this gap by building on algebraic effects and effect handlers as a unifying framework for modelling a wide range of computational effects. The project had three objectives: (i) to study the foundations of type-based specification of effectful programs; (ii) to explore and develop the language design and implementation of prototype programming language(s) for type-based specification of effectful programs; and (iii) to apply the developed prototype programming language(s) to practically relevant case studies.
Текст от CORDIS, на английски · Данни: CORDIS, © Европейски съюз
Цел на проекта
The goal of the LiquidEff project is to significantly advance the state of the art of type-based reasoning about the correctness of programs that can incorporate computational effects such as accessing memory, raising and handling exceptions, making nondeterministic and probabilistic choices, and communicating over a network---all integral features of modern mainstream programming languages. The timeliness and importance of this project is demonstrated by the staggering cost of software failure in our increasingly digital world---one recent study put the number at $1.7 trillion worldwide in 2017 alone. While there already exist different approaches to type-based reasoning about the correctness of effectful programs, they all have their notable shortcomings: the approaches might be tied to a specific typing discipline, the supported effects can be limited, and the kind of properties one can reason about may be restricted. In contrast, the LiquidEff project aims to develop a foundational, uniform, and widely applicable framework for type-based reasoning about effectful programs, based on the highly scalable and modular algebraic approach to modelling computational effects. Specifically, this project will 1) develop an expressive modal logic for reasoning about a wide range of computational effects; 2) show that this logic can express existing effect specification styles; 3) demonstrate that it can be used to design refinement type systems for lightweight type-based reasoning about effectful behaviour, thus giving a general account of the Liquid Effects effect-typing discipline that so far has been restricted to the state effect; 4) study the category-theoretic semantics of these foundations; 5) implement LiquidEff, an extension of the Eff language with a support for lightweight type-level reasoning about programs' behaviour; and 6) use LiquidEff to apply the developed theory in practice to case studies involving big data and asynchronous parallel programming.
Оригинален текст от CORDIS (на английски).
Участници
- UNIVERZA V LJUBLJANI · LjubljanaКоординаторСловения
Връзки
Данни: CORDIS, © Европейски съюз
