Use este identificador para citar o ir al link de este elemento: 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
primer Tutor: Elaine Gouvea Pimentel
primer Co-tutor: Roberto da Silva Bigonha
primer miembro del tribunal : Edward Hermann Haeusler
Segundo miembro del tribunal: Fernando Magno Quintao Pereira
Resumen: 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.
Asunto: Linguagem e lógica
Programação lógica
Computação
Idioma: Português
Editor: Universidade Federal de Minas Gerais
Sigla da Institución: UFMG
Tipo de acceso: Acesso Aberto
URI: http://hdl.handle.net/1843/SLSS-8BBGJL
Fecha del documento: 17-nov-2010
Aparece en las colecciones:Dissertações de Mestrado

archivos asociados a este elemento:
archivo Descripción TamañoFormato 
gisellemachadonogueirareis.pdf5.77 MBAdobe PDFVisualizar/Abrir


Los elementos en el repositorio están protegidos por copyright, con todos los derechos reservados, salvo cuando es indicado lo contrario.