Método B e a síntese verificada para código de montagem
Ano de defesa: | 2016 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Tese |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Não Informado pela instituição
|
Programa de Pós-Graduação: |
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: | |
Área do conhecimento CNPq: | |
Link de acesso: | https://repositorio.ufrn.br/jspui/handle/123456789/21420 |
Resumo: | A síntese de código de montagem é um processo que exige um cuidado rigoroso. Normalmente, esse processo nos tradutores e nos compiladores mais maduros é relativamente seguro, apesar de que, esporadicamente, erros são identificados neles. Em um contexto mais restrito, os tradutores utilizados em comunidades menores e em constante desenvolvimento são mais suscetíveis a erros. Considerando esse contexto, duas abordagens de tradução e de verificação usando o método B são apresentadas. A primeira abordagem propõe a tradução do componente B para o código de montagem de uma plataforma específica, usando um modelo formal do conjunto de instruções, o qual possibilita também depurar e verificar as propriedades de programas. Essa abordagem é capaz de garantir formalmente a coerência semântica da tradução, apesar de ser um processo de verificação árduo e lento. Tal esforço de verificação foi aliviado através de uma ferramenta desenvolvida (BEval), que aproveitou melhor as técnicas de verificação. Após o processo de prova automática usando uma ferramenta B robusta (Atelier B), BEval ainda foi capaz de resolver em certos modelos muitas das obrigações de prova remanescentes, chegando a até 88% do total de obrigações. Contudo, o processo de verificação da abordagem de tradução continuou complexo, exigindo várias interações manuais. Afim de viabilizar uma tradução mais eficiente e também segura, uma segunda abordagem de tradução de B para o código de máquina virtual foi desenvolvida. A segunda abordagem utilizou o tradutor desenvolvido B2LLVM e aplicou a geração automática de testes para verificar a coerência entre a especificação do programa e o seu respectivo código de montagem. Esse tradutor também suporta a avaliação de cobertura do código e a inserção de anotações de rastreabilidade. Dessa forma, o trabalho contribuiu significativamente na tradução de B para o código de montagem, oferecendo um suporte rigoroso para a verificação da tradução. Atualmente, o B2LLVM já é capaz de gerar código para 84% dos exemplos de teste baseados na gramática que são traduzíveis por um relevante tradutor industrial (C4B). Ademais, o código gerado por B2LLVM apresenta vantagens importantes na ampla capacidade de verificação, de integração e de otimização. |
id |
UFRN_c36423a778d308d08263eb6ffd033ce3 |
---|---|
oai_identifier_str |
oai:https://repositorio.ufrn.br:123456789/21420 |
network_acronym_str |
UFRN |
network_name_str |
Repositório Institucional da UFRN |
repository_id_str |
|
spelling |
Medeiros Júnior, Valério Gutemberg dehttp://lattes.cnpq.br/7451897900811657http://lattes.cnpq.br/2985658685449858Musicante, Martin Alejandrohttp://lattes.cnpq.br/6034405930958244Oliveira, Marcel Vinícius Medeiroshttp://lattes.cnpq.br/1756952696097255Mota, Alexandre Cabralhttp://lattes.cnpq.br/2794026545404598Gomes, Bruno Emerson Gurgelhttp://lattes.cnpq.br/7812661521592212Deharbe, David Boris Paul2016-10-14T20:28:33Z2016-10-14T20:28:33Z2016-03-08MEDEIROS JÚNIOR, Valério Gutemberg de. Método B e a síntese verificada para código de montagem. 2016. 138f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2016.https://repositorio.ufrn.br/jspui/handle/123456789/21420A síntese de código de montagem é um processo que exige um cuidado rigoroso. Normalmente, esse processo nos tradutores e nos compiladores mais maduros é relativamente seguro, apesar de que, esporadicamente, erros são identificados neles. Em um contexto mais restrito, os tradutores utilizados em comunidades menores e em constante desenvolvimento são mais suscetíveis a erros. Considerando esse contexto, duas abordagens de tradução e de verificação usando o método B são apresentadas. A primeira abordagem propõe a tradução do componente B para o código de montagem de uma plataforma específica, usando um modelo formal do conjunto de instruções, o qual possibilita também depurar e verificar as propriedades de programas. Essa abordagem é capaz de garantir formalmente a coerência semântica da tradução, apesar de ser um processo de verificação árduo e lento. Tal esforço de verificação foi aliviado através de uma ferramenta desenvolvida (BEval), que aproveitou melhor as técnicas de verificação. Após o processo de prova automática usando uma ferramenta B robusta (Atelier B), BEval ainda foi capaz de resolver em certos modelos muitas das obrigações de prova remanescentes, chegando a até 88% do total de obrigações. Contudo, o processo de verificação da abordagem de tradução continuou complexo, exigindo várias interações manuais. Afim de viabilizar uma tradução mais eficiente e também segura, uma segunda abordagem de tradução de B para o código de máquina virtual foi desenvolvida. A segunda abordagem utilizou o tradutor desenvolvido B2LLVM e aplicou a geração automática de testes para verificar a coerência entre a especificação do programa e o seu respectivo código de montagem. Esse tradutor também suporta a avaliação de cobertura do código e a inserção de anotações de rastreabilidade. Dessa forma, o trabalho contribuiu significativamente na tradução de B para o código de montagem, oferecendo um suporte rigoroso para a verificação da tradução. Atualmente, o B2LLVM já é capaz de gerar código para 84% dos exemplos de teste baseados na gramática que são traduzíveis por um relevante tradutor industrial (C4B). Ademais, o código gerado por B2LLVM apresenta vantagens importantes na ampla capacidade de verificação, de integração e de otimização.Assembly code synthesis is a process that requires rigorous care. Typically, this process in mature translators and compilers is relatively safe, though some errors have occasionally been identified. In a more restricted context, the translators used in the smaller communities and developed constantly have been more susceptible to these kind of errors. Considering this context, two translation and verification approaches using the B method have been presented. The first approach considers the B component translation to assembly code for a specific platform by using a formal model of the instruction set, which also allows to debug and to check program properties. This approach can formally ensure the semantic consistency of the translation, although the verification process is difficult and time-consuming. This verification effort was somewhat relieved by the development of BEval, a tool which has made better use of the verification techniques. After applying the automatic verification process using the Atelier B tool, BEval was still able to solve, in the certain models, many of the remaining proof obligations, reaching up to 88 % of total obligations. However, the verification process of this translation approach is still complex, requiring several manual interactions. In order to make a translation more efficient and also safe, a second approach for the translating B to virtual machine code was developed. This second approach used the developed translator B2LLVM and applied the automatic generation of tests to check the consistency of the program specifications and their respective assembly code. This translator also supported the code coverage evaluation and the insertion of the traceability annotations. Thus, this study has significantly contributed to developing B translation to assembly code, providing rigorous support for the verification of the translation. Currently, the B2LLVM outweighs 20,9% the percentage of translatable test samples based on grammar compared to the C4B industrial translator. Furthermore, the generated code by B2LLVM has important advantages in the ample capacity of verification, integration and optimization.porCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOMétodos formaisMétodo BTradução de modelosVerificação de traduçãoLinguagem de montagemMétodo B e a síntese verificada para código de montageminfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisPROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOUFRNBrasilinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALValerioGutembergDeMedeirosJunior_TESE.pdfValerioGutembergDeMedeirosJunior_TESE.pdfapplication/pdf1841011https://repositorio.ufrn.br/bitstream/123456789/21420/1/ValerioGutembergDeMedeirosJunior_TESE.pdff8f19906bfa21de2969ec15ccb9408edMD51TEXTValerioGutembergDeMedeirosJunior_TESE.pdf.txtValerioGutembergDeMedeirosJunior_TESE.pdf.txtExtracted texttext/plain268014https://repositorio.ufrn.br/bitstream/123456789/21420/6/ValerioGutembergDeMedeirosJunior_TESE.pdf.txtc56f7d8ae95a884a1fa291c130b8f93fMD56THUMBNAILValerioGutembergDeMedeirosJunior_TESE.pdf.jpgValerioGutembergDeMedeirosJunior_TESE.pdf.jpgIM Thumbnailimage/jpeg1390https://repositorio.ufrn.br/bitstream/123456789/21420/7/ValerioGutembergDeMedeirosJunior_TESE.pdf.jpg300d68d3533f218b321432d689e58273MD57123456789/214202017-11-03 03:45:20.339oai:https://repositorio.ufrn.br:123456789/21420Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2017-11-03T06:45:20Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false |
dc.title.pt_BR.fl_str_mv |
Método B e a síntese verificada para código de montagem |
title |
Método B e a síntese verificada para código de montagem |
spellingShingle |
Método B e a síntese verificada para código de montagem Medeiros Júnior, Valério Gutemberg de CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO Métodos formais Método B Tradução de modelos Verificação de tradução Linguagem de montagem |
title_short |
Método B e a síntese verificada para código de montagem |
title_full |
Método B e a síntese verificada para código de montagem |
title_fullStr |
Método B e a síntese verificada para código de montagem |
title_full_unstemmed |
Método B e a síntese verificada para código de montagem |
title_sort |
Método B e a síntese verificada para código de montagem |
author |
Medeiros Júnior, Valério Gutemberg de |
author_facet |
Medeiros Júnior, Valério Gutemberg de |
author_role |
author |
dc.contributor.authorID.pt_BR.fl_str_mv |
|
dc.contributor.authorLattes.none.fl_str_mv |
http://lattes.cnpq.br/7451897900811657 |
dc.contributor.advisorID.pt_BR.fl_str_mv |
|
dc.contributor.advisorLattes.none.fl_str_mv |
http://lattes.cnpq.br/2985658685449858 |
dc.contributor.referees1.none.fl_str_mv |
Musicante, Martin Alejandro |
dc.contributor.referees1ID.pt_BR.fl_str_mv |
|
dc.contributor.referees1Lattes.none.fl_str_mv |
http://lattes.cnpq.br/6034405930958244 |
dc.contributor.referees2.none.fl_str_mv |
Oliveira, Marcel Vinícius Medeiros |
dc.contributor.referees2ID.pt_BR.fl_str_mv |
|
dc.contributor.referees2Lattes.none.fl_str_mv |
http://lattes.cnpq.br/1756952696097255 |
dc.contributor.referees3.none.fl_str_mv |
Mota, Alexandre Cabral |
dc.contributor.referees3ID.pt_BR.fl_str_mv |
|
dc.contributor.referees3Lattes.none.fl_str_mv |
http://lattes.cnpq.br/2794026545404598 |
dc.contributor.referees4.none.fl_str_mv |
Gomes, Bruno Emerson Gurgel |
dc.contributor.referees4ID.pt_BR.fl_str_mv |
|
dc.contributor.referees4Lattes.none.fl_str_mv |
http://lattes.cnpq.br/7812661521592212 |
dc.contributor.author.fl_str_mv |
Medeiros Júnior, Valério Gutemberg de |
dc.contributor.advisor1.fl_str_mv |
Deharbe, David Boris Paul |
contributor_str_mv |
Deharbe, David Boris Paul |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO Métodos formais Método B Tradução de modelos Verificação de tradução Linguagem de montagem |
dc.subject.por.fl_str_mv |
Métodos formais Método B Tradução de modelos Verificação de tradução Linguagem de montagem |
description |
A síntese de código de montagem é um processo que exige um cuidado rigoroso. Normalmente, esse processo nos tradutores e nos compiladores mais maduros é relativamente seguro, apesar de que, esporadicamente, erros são identificados neles. Em um contexto mais restrito, os tradutores utilizados em comunidades menores e em constante desenvolvimento são mais suscetíveis a erros. Considerando esse contexto, duas abordagens de tradução e de verificação usando o método B são apresentadas. A primeira abordagem propõe a tradução do componente B para o código de montagem de uma plataforma específica, usando um modelo formal do conjunto de instruções, o qual possibilita também depurar e verificar as propriedades de programas. Essa abordagem é capaz de garantir formalmente a coerência semântica da tradução, apesar de ser um processo de verificação árduo e lento. Tal esforço de verificação foi aliviado através de uma ferramenta desenvolvida (BEval), que aproveitou melhor as técnicas de verificação. Após o processo de prova automática usando uma ferramenta B robusta (Atelier B), BEval ainda foi capaz de resolver em certos modelos muitas das obrigações de prova remanescentes, chegando a até 88% do total de obrigações. Contudo, o processo de verificação da abordagem de tradução continuou complexo, exigindo várias interações manuais. Afim de viabilizar uma tradução mais eficiente e também segura, uma segunda abordagem de tradução de B para o código de máquina virtual foi desenvolvida. A segunda abordagem utilizou o tradutor desenvolvido B2LLVM e aplicou a geração automática de testes para verificar a coerência entre a especificação do programa e o seu respectivo código de montagem. Esse tradutor também suporta a avaliação de cobertura do código e a inserção de anotações de rastreabilidade. Dessa forma, o trabalho contribuiu significativamente na tradução de B para o código de montagem, oferecendo um suporte rigoroso para a verificação da tradução. Atualmente, o B2LLVM já é capaz de gerar código para 84% dos exemplos de teste baseados na gramática que são traduzíveis por um relevante tradutor industrial (C4B). Ademais, o código gerado por B2LLVM apresenta vantagens importantes na ampla capacidade de verificação, de integração e de otimização. |
publishDate |
2016 |
dc.date.accessioned.fl_str_mv |
2016-10-14T20:28:33Z |
dc.date.available.fl_str_mv |
2016-10-14T20:28:33Z |
dc.date.issued.fl_str_mv |
2016-03-08 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
MEDEIROS JÚNIOR, Valério Gutemberg de. Método B e a síntese verificada para código de montagem. 2016. 138f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2016. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufrn.br/jspui/handle/123456789/21420 |
identifier_str_mv |
MEDEIROS JÚNIOR, Valério Gutemberg de. Método B e a síntese verificada para código de montagem. 2016. 138f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2016. |
url |
https://repositorio.ufrn.br/jspui/handle/123456789/21420 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.program.fl_str_mv |
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO |
dc.publisher.initials.fl_str_mv |
UFRN |
dc.publisher.country.fl_str_mv |
Brasil |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRN instname:Universidade Federal do Rio Grande do Norte (UFRN) instacron:UFRN |
instname_str |
Universidade Federal do Rio Grande do Norte (UFRN) |
instacron_str |
UFRN |
institution |
UFRN |
reponame_str |
Repositório Institucional da UFRN |
collection |
Repositório Institucional da UFRN |
bitstream.url.fl_str_mv |
https://repositorio.ufrn.br/bitstream/123456789/21420/1/ValerioGutembergDeMedeirosJunior_TESE.pdf https://repositorio.ufrn.br/bitstream/123456789/21420/6/ValerioGutembergDeMedeirosJunior_TESE.pdf.txt https://repositorio.ufrn.br/bitstream/123456789/21420/7/ValerioGutembergDeMedeirosJunior_TESE.pdf.jpg |
bitstream.checksum.fl_str_mv |
f8f19906bfa21de2969ec15ccb9408ed c56f7d8ae95a884a1fa291c130b8f93f 300d68d3533f218b321432d689e58273 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN) |
repository.mail.fl_str_mv |
|
_version_ |
1802118113285636096 |