2018
DOI: 10.1007/978-3-030-03418-4_22
|View full text |Cite
|
Sign up to set email alerts
|

Program Correctness by Transformation

Abstract: Deductive program verification can be used effectively to verify high-level programs, but can be challenging for low-level, highperformance code. In this paper, we argue that compilation and program transformations should be made annotation-aware, i.e. during compilation and program transformation, not only the code should be changed, but also the corresponding annotations. As a result, if the original highlevel program could be verified, also the resulting low-level program can be verified. We illustrate this… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
2
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
3
3

Relationship

2
4

Authors

Journals

citations
Cited by 6 publications
(3 citation statements)
references
References 17 publications
0
2
0
Order By: Relevance
“…We will work on producing GPU programs that come with detailed annotations describing which parts of the memory are accessed and changed by which parts of the code (see [49] for preliminary ideas). Besides making a program verifiable, these annotations will also provide valuable information to determine which transformations can be applied to optimise the program.…”
Section: Correct Transformation Of Source Code Tomentioning
confidence: 99%
“…We will work on producing GPU programs that come with detailed annotations describing which parts of the memory are accessed and changed by which parts of the code (see [49] for preliminary ideas). Besides making a program verifiable, these annotations will also provide valuable information to determine which transformations can be applied to optimise the program.…”
Section: Correct Transformation Of Source Code Tomentioning
confidence: 99%
“…-we need to further develop refinement techniques that from an abstract model can generate annotated and verifiable code, where it is important that the generated code can be executed efficiently; -we need techniques to prove that a program that is transformed to optimise it for performance remains correct after the transformation, see [13] for further ideas; -we need to consider whether it is possible to automatically derive a model or abstract view from a concrete program; and -we need to further develop the abstract model theory for concurrent software, in particular making the abstract models compositional, such that it is possible to reason about the global behaviour of a system that is composed of both abstract models and concrete code components.…”
Section: Future Stepsmentioning
confidence: 99%
“…SESA busca identificar automaticamente as entradas que devem ter valores concretos, para melhorar o desempenho sem diminuir a cobertura em comparação com o GKLEE. Vercors também utiliza o SMT para verificar programas em OpenCL por condições de disputa, e tendo suporte a operações atômicas (HUISMAN;MIHELCIC, 2013;BLOM;BLOM et al, 2017;BLOM;HUISMAN;MIHELCIC, 2014;AMIGHI et al, 2015;HUISMAN et al, 2018;SAFARI et al, 2020). Entretanto ele verifica apenas o kernel, não verificando o código do host.…”
Section: Trabalhos Relacionadosunclassified