The V language
Autor(a) principal: | |
---|---|
Data de Publicação: | 2018 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | eng |
Título da fonte: | Repositório Institucional da UFRGS |
Texto Completo: | http://hdl.handle.net/10183/190193 |
Resumo: | Linguagens de programação funcionais são conhecidas por sua facilidade de uso e concisão. As linguagens funcionais puras são um subconjunto dessas linguagens e fornecem melhorias adicionais em determinadas áreas, como facilitar raciocínio sobre programas devido à transparência referencial. Uma área na qual linguagens funcionais puras geralmente pecam, no entanto, é a manipulação de registros. Apresentamos a linguagem V, uma linguagem de programação puramente funcional com uma nova abordagem a registros. Usando acessores polimór cos, V tenta resolver problemas comumente encontrados quando manipulando registros em linguagens de programação puramente funcionais. Essa abordagem exigiu o uso de traits para prover polimor smo ad-hoc para a linguagem. Este trabalho apresenta uma visão completa da linguagem V. Uma especi cação formal é dada, com sintaxe, semântica e um sistema de inferência de tipos. A implementação atual, composta de um interpretador com um read-eval-print loop (REPL), é mostrada, juntamente com uma breve análise de alguns testes preliminares. |
id |
UFRGS-2_6ef639dd6a58186fdf95b104800dba9f |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/190193 |
network_acronym_str |
UFRGS-2 |
network_name_str |
Repositório Institucional da UFRGS |
repository_id_str |
|
spelling |
Vedana, Arthur GieselMachado, RodrigoMoreira, Alvaro Freitas2019-04-09T02:34:59Z2018http://hdl.handle.net/10183/190193001088662Linguagens de programação funcionais são conhecidas por sua facilidade de uso e concisão. As linguagens funcionais puras são um subconjunto dessas linguagens e fornecem melhorias adicionais em determinadas áreas, como facilitar raciocínio sobre programas devido à transparência referencial. Uma área na qual linguagens funcionais puras geralmente pecam, no entanto, é a manipulação de registros. Apresentamos a linguagem V, uma linguagem de programação puramente funcional com uma nova abordagem a registros. Usando acessores polimór cos, V tenta resolver problemas comumente encontrados quando manipulando registros em linguagens de programação puramente funcionais. Essa abordagem exigiu o uso de traits para prover polimor smo ad-hoc para a linguagem. Este trabalho apresenta uma visão completa da linguagem V. Uma especi cação formal é dada, com sintaxe, semântica e um sistema de inferência de tipos. A implementação atual, composta de um interpretador com um read-eval-print loop (REPL), é mostrada, juntamente com uma breve análise de alguns testes preliminares.Functional programming languages are known for their ease of use and conciseness. Pure functional languages are a subset of these languages and provide further improvements in certain areas, such as making it easier to reason about programs due to referential transparency. One area in which pure functional languages usually lack, however, is when manipulating records. We present the V language, a purely functional programming language with a novel approach to record manipulation. By using polymorphic accessors, V attempts to solve issues commonly found when manipulating records in purely functional programming languages. This approach required the use of traits to support ad-hoc polymorphism in the language. This work presents a complete picture of the V language. A formal speci cation is given, with syntax, semantics and a type-inference system. The current implementation, comprising of an interpreter with an interactive read-eval-print loop (REPL), is shown, along with a brief analysis of some preliminary tests.application/pdfengLinguagens : ProgramacaoFunctional Programming LanguagesTraitsRecordsThe V languageA Linguagem V info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2018Ciê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:UFRGSTEXT001088662.pdf.txt001088662.pdf.txtExtracted Texttext/plain190059http://www.lume.ufrgs.br/bitstream/10183/190193/2/001088662.pdf.txt5b8b63484ceb61610252f90d5bf0eb11MD52ORIGINAL001088662.pdfTexto completo (inglês)application/pdf696683http://www.lume.ufrgs.br/bitstream/10183/190193/1/001088662.pdf00ecc2a237ac08be81e29686a2655c03MD5110183/1901932021-05-26 04:42:08.85761oai:www.lume.ufrgs.br:10183/190193Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2021-05-26T07:42:08Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
The V language |
dc.title.alternative.pt.fl_str_mv |
A Linguagem V |
title |
The V language |
spellingShingle |
The V language Vedana, Arthur Giesel Linguagens : Programacao Functional Programming Languages Traits Records |
title_short |
The V language |
title_full |
The V language |
title_fullStr |
The V language |
title_full_unstemmed |
The V language |
title_sort |
The V language |
author |
Vedana, Arthur Giesel |
author_facet |
Vedana, Arthur Giesel |
author_role |
author |
dc.contributor.author.fl_str_mv |
Vedana, Arthur Giesel |
dc.contributor.advisor1.fl_str_mv |
Machado, Rodrigo |
dc.contributor.advisor-co1.fl_str_mv |
Moreira, Alvaro Freitas |
contributor_str_mv |
Machado, Rodrigo Moreira, Alvaro Freitas |
dc.subject.por.fl_str_mv |
Linguagens : Programacao |
topic |
Linguagens : Programacao Functional Programming Languages Traits Records |
dc.subject.eng.fl_str_mv |
Functional Programming Languages Traits Records |
description |
Linguagens de programação funcionais são conhecidas por sua facilidade de uso e concisão. As linguagens funcionais puras são um subconjunto dessas linguagens e fornecem melhorias adicionais em determinadas áreas, como facilitar raciocínio sobre programas devido à transparência referencial. Uma área na qual linguagens funcionais puras geralmente pecam, no entanto, é a manipulação de registros. Apresentamos a linguagem V, uma linguagem de programação puramente funcional com uma nova abordagem a registros. Usando acessores polimór cos, V tenta resolver problemas comumente encontrados quando manipulando registros em linguagens de programação puramente funcionais. Essa abordagem exigiu o uso de traits para prover polimor smo ad-hoc para a linguagem. Este trabalho apresenta uma visão completa da linguagem V. Uma especi cação formal é dada, com sintaxe, semântica e um sistema de inferência de tipos. A implementação atual, composta de um interpretador com um read-eval-print loop (REPL), é mostrada, juntamente com uma breve análise de alguns testes preliminares. |
publishDate |
2018 |
dc.date.issued.fl_str_mv |
2018 |
dc.date.accessioned.fl_str_mv |
2019-04-09T02:34:59Z |
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/190193 |
dc.identifier.nrb.pt_BR.fl_str_mv |
001088662 |
url |
http://hdl.handle.net/10183/190193 |
identifier_str_mv |
001088662 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
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/190193/2/001088662.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/190193/1/001088662.pdf |
bitstream.checksum.fl_str_mv |
5b8b63484ceb61610252f90d5bf0eb11 00ecc2a237ac08be81e29686a2655c03 |
bitstream.checksumAlgorithm.fl_str_mv |
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_ |
1815447239275839488 |