Please use this identifier to cite or link to this item:
http://hdl.handle.net/10071/20938
Author(s): | Farinha, Diogo Miguel Hortêncio |
Advisor: | Botelho, Luís Miguel Pina Coelho Teixeira |
Date: | 4-Oct-2019 |
Title: | Automatic generation of descriptions for Prolog programs |
Reference: | Farinha, D. M. H. (2019). Automatic generation of descriptions for Prolog programs [Dissertação de mestrado, Iscte - Instituto Universitário de Lisboa]. Repositório Iscte. http://hdl.handle.net/10071/20938 |
Keywords: | Code comprehension Prolog Procedural Prolog Natural language description Formal description Programming pattern Natural language templates Formal templates Compreensão de código Prolog procedimental Descrição em linguagem natural Descrição formal Padrão de programação Templates de linguagem natural Templates formais |
Abstract: | It is often hard for students and newcomers used to imperative languages to learn a declarative
language such as Prolog. One of their main difficulties is understanding the procedural component of
Prolog. Despite being a declarative language, Prolog allows for the creation of procedures whose
structure is very different from the more common imperative languages. To tackle this issue, we try to
facilitate code comprehension of procedural Prolog through the generation of formal and natural
descriptions. First, we represent the workflow of Prolog encoded procedures through formal
descriptions similar to imperative languages. To do this, we identify programming patterns that
represent the basic blocks of certain classes of Prolog programs. Then we view more complex Prolog
programs as coherent compositions of instances of the basic patterns. By using formal templates, we
formally describe these individual patterns into an intermediate formal language. Afterwards, we
generate natural language descriptions by using templates to describe the formal constructs. Using this
two-step approach, we obtain two descriptions (one formal and one in natural language) that are both
explanatory of the original program. Normalmente é difícil para alunos e iniciantes que estão habituados a linguagens imperativas, aprender uma linguagem declarativa como o Prolog. Uma das suas principais dificuldades é entender a componente procedimental do Prolog. Apesar de ser uma linguagem declarativa, o Prolog permite a criação de procedimentos cuja estrutura é bastante diferente da usada nas linguagens imperativas. Para abordar este problema tentámos facilitar a compreensão de código do Prolog procedimental através da geração de descrições formais e em linguagem natural. Primeiro, representamos a lógica dos procedimentos em Prolog através de descrições formais similares a linguagens imperativas. Para isto, identificamos os padrões que representam os blocos básicos de certas classes de programas. Depois, consideramos os programas mais complexos como composições destes padrões básicos. Através da utilização de templates formais, descrevemos formalmente estes padrões individuais numa linguagem formal intermédia. Seguidamente, geramos descrições em linguagem natural utilizando templates para descrever os construtos formais. Ao usar esta abordagem de dois passos obtemos duas descrições (uma formal e uma em linguagem natural) que são ambas explanatórias do programa original. |
Degree: | Mestrado em Informática e Gestão |
Peerreviewed: | yes |
Access type: | Open Access |
Appears in Collections: | T&D-DM - Dissertações de mestrado |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
master_diogo_hortencio_farinha.pdf | 752,07 kB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.