Repositório Digital

A- A A+

Faz : uma linguagem funcional didática

.

Faz : uma linguagem funcional didática

Mostrar registro completo

Estatísticas

Título Faz : uma linguagem funcional didática
Outro título Faz : a didactical functional programming language
Autor Araújo, Vítor Bujés Ubatuba de
Orientador Duarte, Lucio Mauro
Co-orientador Machado, Rodrigo
Data 2013
Nível Graduação
Instituição Universidade Federal do Rio Grande do Sul. Instituto de Informática. Curso de Ciência da Computação: Ênfase em Ciência da Computação: Bacharelado.
Assunto Linguagens : Programacao
Programação
[en] Functional programming language
[en] Introductory programming language
Resumo A linguagem de programação Racket e o ambiente DrRacket são utilizados em diversos cursos introdutórios de programação. O uso de uma linguagem funcional facilita a exposição de certos conceitos, tais como recursão estrutural, reuso de código através de composição de funções e rotinas genéricas através do uso de funções de alta ordem. Além disso, o ambiente de desenvolvimento interativo propiciado pelo DrRacket facilita a criação, experimentação e teste de programas. Por outro lado, devido ao fato de Racket ser uma linguagem dinamicamente tipada, declarações de tipos de dados e a noção de domínio dos argumentos de funções e dos campos de estruturas, conceitos frequentemente abordados em disciplinas introdutórias, não possuem uma representação direta na linguagem, sendo frequentemente representados por comentários no código. Além disso, a sintaxe de Racket, baseada nas convenções do LISP, diverge das convenções sintáticas utilizadas na notação matemática tradicional e na maior parte das linguagens de programação. Acreditamos que esse desencontro entre os conceitos apresentados e as expectativas dos alunos de um lado, e os recursos sintáticos e semânticos de Racket de outro, provoca dificuldades de exposição e compreensão do conteúdo de tais disciplinas. Visando evitar esses problemas, desenvolvemos uma nova linguagem de programação, intitulada Faz. Essa linguagem incorpora um sistema de tipos semi-estático, buscando permitir a expressão dos domínios dos dados manipulados pelo programa e ao mesmo tempo manter a flexibilidade proporcionada pelo sistema de tipos de Racket. Além disso, a linguagem emprega uma sintaxe concebida para facilitar a compreensão dos programas pelos alunos. Para isso, utiliza recursos notacionais da matemática convencional e de outras linguagens de programação, bem como palavras-chave baseadas no português. A linguagem foi implementada como uma extensão do ambiente DrRacket, permitindo o uso de seus recursos interativos no desenvolvimento de programas na nova linguagem.
Abstract The Racket programming language and the DrRacket environment are used in various courses of introduction to programming. The use of a functional language makes it easier to present certain concepts, such as structural recursion, code reuse through function composition, and generic routines through higher-order functions. Moreover, the interactive development environment provided by DrRacket eases the creation, experimentation and testing of programs. On the other hand, because Racket is a dynamically typed programming language, data type declarations and the notion of domains of function arguments and structure fields, concepts often studied in introductory courses, do not have a direct representation in the language, being often represented by comments in the code. Moreover, the syntax of Racket, based in the conventions of LISP, diverges from the syntactical conventions used in traditional mathematical notation and most of the other programming languages. We believe that this mismatch between the concepts presented and the students’ expectations in addition to the syntactic and semantic resources of Racket cause difficulties in the explanation and comprehension of the subject of such courses. Aiming to avoid these problems, we have developed a new programming language, named Faz. This language incorporates a semi-static type system, with the intent of enabling the expression of the domains of the data manipulated by the program while keeping the flexibility provided by the type system of Racket. Moreover, the language employs a syntax devised to ease the comprehension of programs by the students, using notational resources from conventional mathematics and other programming languages, as well as Portuguese-based keywords. The language has been implemented as an extension to the DrRacket environment, allowing the use of its interactive features in the development of programs in the new language.
Tipo Trabalho de conclusão de graduação
URI http://hdl.handle.net/10183/86408
Arquivos Descrição Formato
000910096.pdf (366.0Kb) Texto completo Adobe PDF Visualizar/abrir

Este item está licenciado na Creative Commons License

Este item aparece na(s) seguinte(s) coleção(ões)


Mostrar registro completo

Percorrer



  • O autor é titular dos direitos autorais dos documentos disponíveis neste repositório e é vedada, nos termos da lei, a comercialização de qualquer espécie sem sua autorização prévia.
    Projeto gráfico elaborado pelo Caixola - Clube de Criação Fabico/UFRGS Powered by DSpace software, Version 1.8.1.