Use este identificador para citar ou linkar para este item:
https://repositorio.unipampa.edu.br/jspui/handle/riu/4839
Tipo: | Trabalho de Conclusão de Curso |
Título: | SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA |
Autor(es): | Santos, Guilherme Souza |
Primeiro Orientador: | Gindri, Letícia |
Coorientador: | Coelho, Rafael Santos |
Resumo: | O que conhecemos hoje por Teoria da Computação começou a ser formulado a partir do ano de 1900. Neste ano, uma lista de problemas matemáticos foi apresentada por Hilbert e um deles, conhecido como Entscheidungsproblem, motivou diversos estudos que contribuíram significativamente para a construção do conceito de computação moderna. Os trabalhos desenvolvidos nos anos seguintes, apresentaram propostas de vários modelos de máquinas de computar, a saber: Máquinas de Turing, Máquinas de Post, Máquinas de Registradores, 𝜆-Cálculo e Autômatos com Pilhas. Tendo como base o conceito de máquinas de registradores, em particular, a máquina NORMA, este trabalho visa desenvolver um simulador para essa estrutura que possa ser utilizado como ferramenta didática em componentes curriculares de computabilidade ou teoria da computação. Pesquisando em literatura apropriada encontramos alguns simuladores de máquina NORMA dos quais comentamos um pouco na seção 2.4. Entre eles, o que mais se destaca é o simulador desenvolvido pelo Prof. Rodrigo Machado (UFRGS). O diferencial da nossa proposta é justamente tentar facilitar o máximo possível a sintaxe das estruturas a serem programadas no simulador a fim de tornar mais simples a experiência do usuário. A fim de alcançar esse objetivo, utilizamos procedimentos da Engenharia de Software, começando pela definição do modelo de desenvolvimento de software a ser utilizado, tendo sido selecionado o processo Cascata. Esta escolha justifica-se pois este modelo sugere uma abordagem sequencial e sistemática e, além disso, os requisitos são bem definidos e estáveis. Com isso, iniciamos pelo levantamento de requisitos e em seguida realizamos a fase de planejamento, na qual definimos o cronograma e verificações de status de desenvolvimento. Na etapa de modelagem fizemos a análise e o projeto, seguindo para codificação e por último, foram realizados testes de código e com usuários onde obtivemos alguns feedbacks com relação ao software e suas funcionalidades, concluindo assim o processo. Além disso, foram utilizadas técnicas de qualidades para garantir que o simulador desenvolvido tivesse a qualidade e usabilidade adequadas. O simulador foi desenvolvido na linguagem Python e também foi desenvolvida uma interface para interação do usuário, contendo as funcionalidades presentes no software. Destacamos que a ferramenta oferece suporte para programar por meio de estruturação iterativa, sendo assim, a maioria das estruturas internas são testes condicionais e laços de repetição, visando facilitar a forma de programar, bem como otimizar o tempo gasto para isso. |
Abstract: | The theory of computation, as we know it today, began to flourish as an independent research field in the early 1900s. One of its main enablers was David Hilbert’s famous Entscheidungsproblem, a mathematical problem in logic that can be phrased as the following question: is there an effective method that can determine, in a finite amount of steps, the validity of a given formula expressed in the language of first-order arithmetic? In an effort to solve Hilbert’s Entscheidungsproblem, a group of mathematicians and logicians (most notably Alonzo Church, Alan Turing, Kurt Goedel, Emil Post and Stephen Kleene), throughout the 1920s and 1930s, set out to find a precise, rigorous definition of the intuitive notion of "effective method". As a result of their work, different (but equivalent) formal models of computation were proposed, such as Turing machines, the untyped 𝜆-Calculus and the general recursive functions. Later on, in the 1960s and 1970s, another strand of models of computation was introduced in the literature, namely the unlimited register machines. The NORMA machine (Number-theORetic Register MAchine), a very minimalistic kind of unlimited register machine, was invented by Richard Bird in 1976. In this work, we present SiNo, a user-friendly simulator for the NORMA machine. We hope that this simulator can be used as a didactic tool to help teachers communicate, in a clearer and more straightforward manner, abstract concepts within the scope of the theory of computation. There are some other NORMA machine simulators available on the Internet. However, what distinguises ours from those is that our simulator has a more flexible syntax, which makes the learning experience less tedious. We have built SiNo using the Python programming language and following the well-known waterfall model of software engineering. During the development of our work, we had the opportunity to employ SiNo in classroom activities and to get positive feedback from students. |
Palavras-chave: | Engenharia de software Desenvolvimento de software Teoria da computação Simuladores Software engineering Software development Computation theory Simulators |
CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA |
Idioma: | por |
País: | Brasil |
Editor: | Universidade Federal do Pampa |
Sigla da Instituição: | UNIPAMPA |
Campus: | Campus Alegrete |
Citação: | SANTOS, Guilherme Souza. SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA. Orientador: Letícia Gindri. 2019. 77 p. Trabalho de Conclusão de Curso (Bacharel em Engenharia de Software) - Universidade Federal do Pampa, Curso de Engenharia de Software, Alegrete, 2019. |
Tipo de Acesso: | Acesso Aberto |
URI: | http://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839 |
Data do documento: | 28-Nov-2019 |
Aparece nas coleções: | Engenharia de Software |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Guilherme Souza Santos - 2019.pdf | 1.66 MB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.