Faz : uma linguagem funcional didática
Autor(a) principal: | |
---|---|
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_ |
1815447119291482112 |