Utilize este identificador para referenciar este registo: http://hdl.handle.net/10071/20938
Autoria: Farinha, Diogo Miguel Hortêncio
Orientação: Botelho, Luís Miguel Pina Coelho Teixeira
Data: 4-Out-2019
Título próprio: Automatic generation of descriptions for Prolog programs
Referência bibliográfica: 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
Palavras-chave: 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
Resumo: 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.
Designação do grau: Mestrado em Informática e Gestão
Arbitragem científica: yes
Acesso: Acesso Aberto
Aparece nas coleções:T&D-DM - Dissertações de mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
master_diogo_hortencio_farinha.pdf752,07 kBAdobe PDFVer/Abrir


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpaceOrkut
Formato BibTex mendeley Endnote Logotipo do DeGóis Logotipo do Orcid 

Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.