Faz : uma linguagem funcional didática

Detalhes bibliográficos
Autor(a) principal: Araújo, Vítor Bujés Ubatuba de
Data de Publicação: 2013
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/86408
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.
id UFRGS-2_70362ae4e2892254d0c68f89203f4018
oai_identifier_str oai:www.lume.ufrgs.br:10183/86408
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Araújo, Vítor Bujés Ubatuba deDuarte, Lucio MauroMachado, Rodrigo2014-01-22T01:54:34Z2013http://hdl.handle.net/10183/86408000910096A 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.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.application/pdfporProgramaçãoLinguagens : ProgramacaoFunctional programming languageIntroductory programming languageFaz : uma linguagem funcional didáticaFaz : a didactical functional programming languageinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2013Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000910096.pdf000910096.pdfTexto completoapplication/pdf366009http://www.lume.ufrgs.br/bitstream/10183/86408/1/000910096.pdf0b53258591bf4c5870e89f863c9e0176MD51TEXT000910096.pdf.txt000910096.pdf.txtExtracted Texttext/plain167440http://www.lume.ufrgs.br/bitstream/10183/86408/2/000910096.pdf.txt789e85752ce0017b05206599c837542cMD52THUMBNAIL000910096.pdf.jpg000910096.pdf.jpgGenerated Thumbnailimage/jpeg944http://www.lume.ufrgs.br/bitstream/10183/86408/3/000910096.pdf.jpga08323101067a4af9d3f1cfc940971b8MD5310183/864082018-10-09 08:44:07.669oai:www.lume.ufrgs.br:10183/86408Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2018-10-09T11:44:07Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Faz : uma linguagem funcional didática
dc.title.alternative.en.fl_str_mv Faz : a didactical functional programming language
title Faz : uma linguagem funcional didática
spellingShingle Faz : uma linguagem funcional didática
Araújo, Vítor Bujés Ubatuba de
Programação
Linguagens : Programacao
Functional programming language
Introductory programming language
title_short Faz : uma linguagem funcional didática
title_full Faz : uma linguagem funcional didática
title_fullStr Faz : uma linguagem funcional didática
title_full_unstemmed Faz : uma linguagem funcional didática
title_sort Faz : uma linguagem funcional didática
author Araújo, Vítor Bujés Ubatuba de
author_facet Araújo, Vítor Bujés Ubatuba de
author_role author
dc.contributor.author.fl_str_mv Araújo, Vítor Bujés Ubatuba de
dc.contributor.advisor1.fl_str_mv Duarte, Lucio Mauro
dc.contributor.advisor-co1.fl_str_mv Machado, Rodrigo
contributor_str_mv Duarte, Lucio Mauro
Machado, Rodrigo
dc.subject.por.fl_str_mv Programação
Linguagens : Programacao
topic Programação
Linguagens : Programacao
Functional programming language
Introductory programming language
dc.subject.eng.fl_str_mv Functional programming language
Introductory programming language
description 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.
publishDate 2013
dc.date.issued.fl_str_mv 2013
dc.date.accessioned.fl_str_mv 2014-01-22T01:54:34Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/86408
dc.identifier.nrb.pt_BR.fl_str_mv 000910096
url http://hdl.handle.net/10183/86408
identifier_str_mv 000910096
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/86408/1/000910096.pdf
http://www.lume.ufrgs.br/bitstream/10183/86408/2/000910096.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/86408/3/000910096.pdf.jpg
bitstream.checksum.fl_str_mv 0b53258591bf4c5870e89f863c9e0176
789e85752ce0017b05206599c837542c
a08323101067a4af9d3f1cfc940971b8
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1801224458563747840