Use este identificador para citar ou linkar para este item: http://hdl.handle.net/1843/SLSS-8BBGJL
Tipo: Dissertação de Mestrado
Título: Especificação de sistemas utilizando lógica linear com subexponencias
Autor(es): Giselle Machado Nogueira Reis
Primeiro Orientador: Elaine Gouvea Pimentel
Primeiro Coorientador: Roberto da Silva Bigonha
Primeiro membro da banca : Edward Hermann Haeusler
Segundo membro da banca: Fernando Magno Quintao Pereira
Resumo: A programação lógica é caracterizada principalmente pela interpretação de fórmulas lógicas como programas. Essas fórmulas são utilizadas para provar objetivos e essas provas são interpretadas como a execução do programa (computação). Esse paradigma é interessante pela formalidade das especificações, herdada da lógica utilizada, o que facilita a prova de algumas propriedades importantes que não estariam tão claras se o programa fosse implementado imperativamente, por exemplo.Entretanto, uma lógica precisa de algumas características essenciais para ser a base de uma linguagem de programação. Mais especificamente, é necessário que a busca por provas possa ser feita de maneira 'bem-comportada', no sentido de existir uma forma determinística de fazer essa busca. Devido a essa restrição, somente algumas lógicas, ou mesmo fragmentos de lógicas, podem ser implementados como linguagens de programação. Como consequência disso essas linguagens ficam também limitadas, muitas vezes não apresentando aspectos básicos como modularização, abstração de dados ou concorrência. A linguagem de programação lógica mais popular, Prolog, é um exemplo claro da existência de tais problemas.Desde a popularização desse paradigma de programação, foram feitas várias tentativas no sentido de aumentar a expressividade da lógica utilizada para se obter uma linguagem mais completa e ainda puramente lógica. Entre as contribuições mais significativas estão LO e lambda-Prolog, cujas lógicas conseguem capturar a modularização, abstração de dados e alguns aspectos de concorrência. Porém, as lógicas que implementam essas linguagens ainda são fragmentos (da lógica linear, no caso de LO, e da lógica clássica, no caso de lambda-Prolog).A impossibilidade de se implementar uma linguagem de programação com toda a lógica clássica motivou o estudo da lógica linear, que pode ser completamente utilizada para se implementar uma linguagem. Recentemente foi proposto um refinamento da lógica linear, caracterizado pelo uso de subexponenciais, que podem ser interpretados como locations (repositórios de dados). Com essa nova lógica, foi possível provar a correspondência entre algoritmos e busca por provas.Essa dissertação de mestrado apresenta uma implementação para a lógica linear com subexponenciais. Além disso, para mostrar o aumento de expressividade da lógica, estão codificados alguns sistemas de provas na linguagem implementada. Também é mostrada a implementação de uma linguagem imperativa cuja especificação semântica dos comandos é feita utilizando a lógica linear com subexponenciais. Dessa forma, é possível observar de maneira clara como os algoritmos correspondem à busca por provas.
Abstract: Logic programming is defined as the use of logic formulas representing programs and proof search of these formulas as the execution of the program (computation). This is an interesting paradigm because of the specifications' formality, which is inherited from the logic itself and facilitates the proof of some properties that would not be so obvious if the program was written in an imperative programming language, for example. However, a logic needs to have some important characteristics to be the basis of a programming language. Namely, it is necessary that the proof search is well-behaved'', meaning that there is a deterministic procedure to look for proofs. Due to this restriction, only a few logics, or parts of it, can be implemented as a programming language. As a consequence, these languages are also limited, not having some basic features such as modularization, data abstraction or concurrency. The most popular logic programming language, Prolog, is an example of such limited programming languages. Since the popularization of the logic programming paradigm, numerous attempts have been made to increase the expressiveness of the underlying logic, so that the programming language obtained has more features yet still purely logic. Among the most significant contributions are LO and lambda-Prolog, whose logics can capture modularization, data abstraction and some aspects of concurrency. Nevertheless, the logics implemented are still fragments (of linear and classical logic, respectively). The impossibility to implement a programming language with the whole classical logic is the main motivation for the study of linear logic, which, in contrast, is a programming language itself. Recently a refinement of the linear logic was proposed with the use of subexponentials, interpreted as locations in the language. With this new logic, the correspondence between algorithms and proof search could be proved. This master dissertation presents an implementation for the linear logic with subexponentials. In order to show the increase of expressiveness of the logic, it is shown the codification of some sequent calculus proof systems in the new language. It also presents the implementation of a simple imperative programming language. The semantics of this language is described using linear logic with subexponentials, therefore it is possible to execute a program using this logic's implementation and it becomes clear the correspondence between algorithms and proof search.
Assunto: Linguagem e lógica
Programação lógica
Computação
Idioma: Português
Editor: Universidade Federal de Minas Gerais
Sigla da Instituição: UFMG
Tipo de Acesso: Acesso Aberto
URI: http://hdl.handle.net/1843/SLSS-8BBGJL
Data do documento: 17-Nov-2010
Aparece nas coleções:Dissertações de Mestrado

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
gisellemachadonogueirareis.pdf5.77 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.