GamaBoogie : a contract-based slicer for Boogie programs

Bibliographic Details
Main Author: Coelho, Márcio
Publication Date: 2011
Format: Master thesis
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/1822/28362
Summary: Dissertação de mestrado em Engenharia de Informática
id RCAP_7910d9284efb2d9620696e2c91d00cec
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/28362
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling GamaBoogie : a contract-based slicer for Boogie programs681.3.06Dissertação de mestrado em Engenharia de InformáticaIn the context of the Informatics Engineering MSc. degree (MEI), second year, this document describes and discusses a master thesis project in the area of source code analysis using slicing and program verification techniques. Design-by-Contract is an approach that allows a programmer to specify the expected behaviour of a component by the means of preconditions, postconditions and invariants. These annotations (or contracts) can be seen as a form of enriched software documentation and they are used to verify that the program is correct with respect to these contracts. On one hand, slicing the program to extract the code that is relevant for the contracts reduce the size of the program and improves its verification. On the other hand, using the contract to slice a program in a finer, more sensible semantic way, enables to optimise the code reducing it to the minimum necessary to keep the postcondition true. Following the last research direction, Daniela da Cruz introduced in her Ph.D. thesis the concepts of Assertion-based Slicing and Contract-based Slicing to explore (at an intra-procedural or interprocedural level) the optimisation of code according to the semantics expressed by contracts. Her approach is based on the source code analyses and her slicing uses annotations present in the procedures. This thesis focuses on the study of BoogiePL language and its use as an intermediate representation for annotated programs in order to build slices of Boogie programs (instead of slicing the source code). Boogie compiler is used to generate the verification conditions in SMT just for the computed slice; these conditions can be then passed to the Z3 Prover to ensure that all contracts are preserved when invoking annotated procedures. The final objective is to make possible the comparison between the SMT code produced by this approach and the code currently generated by GamaSlicer, expecting to obtain a more efficient solution. To implement that idea, a tool called GamaBoogie was developed. That tool, at the end, offers more than its main functionality in slicing and verifying. Actually it allows to inspect and visualise boogie programs; this functionality seems to be very useful for Boogie program comprehension.No contexto do Mestrado em Engenharia Informática (MEI), segundo ano, este documento é uma dissertação que descreve e discute um projeto de tese de mestrado na área de análise de código fonte utilizando técnicas de slicing e de verificação de programas. Design-by-Contract é uma abordagem que permite ao programador especificar o comportamento esperado de um componente por meio de pré-condições, pós-condições e invariantes. Estas anotações (ou contratos) podem ser vistos como uma forma de enriquecer a documentação do software e são usados �para verificar se o programa está correto com relação a esses contratos. Por um lado, fazer o slicing do programa para extrair o código que é relevante para os contratos, pode reduzir o tamanho do programa e melhorar a sua verificação. Por outro lado, usando o contrato para fazer o slicing de um programa de forma mais sensível à semântica, permite otimizar o código reduzindo-o ao mínimo necessário para manter o contrato válido. Seguindo a direção da última pesquisa, Daniela da Cruz introduziu na sua tese de doutoramento os conceitos de Assertion-based Slicing e Contract-based Slicing para explorar (a nível intraprocedimento ou inter-procedimento) a otimização de código de acordo com a semântica expressa por contratos. A sua abordagem é baseada na análise de código fonte e o slicing aplicado a tais programas utiliza anotações presentes nos procedimentos. Esta tese centra-se no estudo da linguagem BoogiePL e no seu uso como uma representação intermédia para programas anotados a fim de construir slices de programas Boogie (em vez de fazer o slicing ao nível do código fonte). O compilador Boogie é usado para gerar as condições de verificação em SMT apenas para o slice calculado; essas condições podem ser passadas para o Prover Z3 para garantir que todos os contratos são preservados quando invocados os procedimentos anotados. O objetivo final é tornar possível a comparação entre o código final produzido por esta abordagem e o código atualmente gerado pelo GamaSlicer, com a expetativa de obter uma solução mais eficiente. Para implementar essa ideia, uma ferramenta chamada GamaBoogie foi desenvolvida. Essa ferramenta, no final, oferece mais do que sua funcionalidade principal de slicing e verificação. Na verdade, permite inspecionar e visualizar programas Boogie; esta funcionalidade demonstrou ser útil para a compreensão de programas Boogie.Henriques, Pedro RangelCruz, Daniela daUniversidade do MinhoCoelho, Márcio2011-12-152011-12-15T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/1822/28362enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T04:41:30Zoai:repositorium.sdum.uminho.pt:1822/28362Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T14:55:47.148112Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv GamaBoogie : a contract-based slicer for Boogie programs
title GamaBoogie : a contract-based slicer for Boogie programs
spellingShingle GamaBoogie : a contract-based slicer for Boogie programs
Coelho, Márcio
681.3.06
title_short GamaBoogie : a contract-based slicer for Boogie programs
title_full GamaBoogie : a contract-based slicer for Boogie programs
title_fullStr GamaBoogie : a contract-based slicer for Boogie programs
title_full_unstemmed GamaBoogie : a contract-based slicer for Boogie programs
title_sort GamaBoogie : a contract-based slicer for Boogie programs
author Coelho, Márcio
author_facet Coelho, Márcio
author_role author
dc.contributor.none.fl_str_mv Henriques, Pedro Rangel
Cruz, Daniela da
Universidade do Minho
dc.contributor.author.fl_str_mv Coelho, Márcio
dc.subject.por.fl_str_mv 681.3.06
topic 681.3.06
description Dissertação de mestrado em Engenharia de Informática
publishDate 2011
dc.date.none.fl_str_mv 2011-12-15
2011-12-15T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/28362
url http://hdl.handle.net/1822/28362
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833594981056512000