Faz : uma linguagem funcional didática
View/ Open
Date
2013Advisor
Co-advisor
Academic level
Graduation
Title alternative
Faz : a didactical functional programming language
Subject
Abstract in Portuguese (Brasil)
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 fa ...
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 dynam ...
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. ...
Institution
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.
Collections
This item is licensed under a Creative Commons License