SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda

Detalhes bibliográficos
Autor(a) principal: Amaral, Artur Três do
Data de Publicação: 2023
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/257991
Resumo: Cálculo Lambda é um modelo de computação proposto por Alonzo Church. É baseado na definição e aplicação de funções anônimas, sendo o comportamento dos termos definido por meio da substituição de parâmetros por argumentos. Em continuação desses estudos, Church também propõe uma variação com tipos, o Cálculo Lambda Simplesmente Tipado (STLC). Com a adição de um sistema de tipos, o cálculo perde expressividade e deixa de ser Turing Completo, mas adquire uma propriedade nova, a Normalização Forte. Todos os termos bem-tipados do STLC garantidamente chegam a uma forma normal, ou seja terminam a sua execução. Nas décadas seguintes, outros cálculos tipados foram desenvolvidos, adicionando funcionalidades como: polimorfismo, construtores de tipos e tipos dependentes. Essas funcionalidades aumentam a expressividade em relação ao STLC e mantêm a Normalização Forte. Posteriormente foi proposta uma estrutura de organização para relacionar esses cálculos, o Cubo Lambda. Partindo de STLC, cada aresta representa a adição de uma dessas funcionalidades, e cada vértice representa o cálculo resultante. Na disciplina de Tópicos Especiais em Cálculo Lambda e Teoria de Tipos do curso de Ciência da Computação da UFRGS, esses cálculos são vistos com o suporte de simuladores onde se pode definir e avaliar termos de cálculo lambda tipado. Esses simuladores foram desenvolvidos pelo professor Rodrigo Machado do Instituto de Informática da UFRGS, e oferecem diversas funcionalidades para a definição e visuali zação dos termos. Para cada cálculo visto na disciplina há um simulador diferente com uma sintaxe própria para expressar as funcionalidades do cálculo que está simulando, o que pode dificultar o processo de relacionar esses cálculos entre eles. Este trabalho propõe uma linguagem de programação funcional simples chamada SimpleLambda, e desenvolve uma aplicação web onde o código SimpleLambda pode ser compilado para os simuladores dos quatro cálculos vistos na disciplina de Cálculo Lambda e Teoria de Tipos.
id UFRGS-2_e03eb4f126af9ea0a51d94f3c79e3cbc
oai_identifier_str oai:www.lume.ufrgs.br:10183/257991
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Amaral, Artur Três doMoreira, Alvaro FreitasMachado, Rodrigo2023-05-12T03:26:57Z2023http://hdl.handle.net/10183/257991001168206Cálculo Lambda é um modelo de computação proposto por Alonzo Church. É baseado na definição e aplicação de funções anônimas, sendo o comportamento dos termos definido por meio da substituição de parâmetros por argumentos. Em continuação desses estudos, Church também propõe uma variação com tipos, o Cálculo Lambda Simplesmente Tipado (STLC). Com a adição de um sistema de tipos, o cálculo perde expressividade e deixa de ser Turing Completo, mas adquire uma propriedade nova, a Normalização Forte. Todos os termos bem-tipados do STLC garantidamente chegam a uma forma normal, ou seja terminam a sua execução. Nas décadas seguintes, outros cálculos tipados foram desenvolvidos, adicionando funcionalidades como: polimorfismo, construtores de tipos e tipos dependentes. Essas funcionalidades aumentam a expressividade em relação ao STLC e mantêm a Normalização Forte. Posteriormente foi proposta uma estrutura de organização para relacionar esses cálculos, o Cubo Lambda. Partindo de STLC, cada aresta representa a adição de uma dessas funcionalidades, e cada vértice representa o cálculo resultante. Na disciplina de Tópicos Especiais em Cálculo Lambda e Teoria de Tipos do curso de Ciência da Computação da UFRGS, esses cálculos são vistos com o suporte de simuladores onde se pode definir e avaliar termos de cálculo lambda tipado. Esses simuladores foram desenvolvidos pelo professor Rodrigo Machado do Instituto de Informática da UFRGS, e oferecem diversas funcionalidades para a definição e visuali zação dos termos. Para cada cálculo visto na disciplina há um simulador diferente com uma sintaxe própria para expressar as funcionalidades do cálculo que está simulando, o que pode dificultar o processo de relacionar esses cálculos entre eles. Este trabalho propõe uma linguagem de programação funcional simples chamada SimpleLambda, e desenvolve uma aplicação web onde o código SimpleLambda pode ser compilado para os simuladores dos quatro cálculos vistos na disciplina de Cálculo Lambda e Teoria de Tipos.Lambda Calculus is a model of computation proposed by Alonzo Church. It is based on the definition and application of anonymous functions, with each term’s behavior be ing defined by the substitution of parameters for arguments. Continuing these studies, Church also proposes a typed variation, Simply Typed Lambda Calculus (STLC). With the addition of a type system, the calculus loses expressive power and is no longer Turing Complete, it does however, acquire a new property: Strong Normalization. All well typed STLC terms are guaranteed to reach a normal form, that is, finish its execution. In the following decades, many other typed calculi were developed, adding functionalities such as: polymorphism, type constructors and dependent types. These functionalities increase the expressive power compared to STLC and retain Strong Normalization. A structure was later proposed to organize and draw relations between the calculi, it was named the Lambda Cube. Starting with STLC, each edge represents the addition of one of these functionalities, and each vertex represents the resulting calculus. In the Special Topics in Lambda Calculus and Type Theory class of the Computer Science curriculum at UFRGS, these calculi are studied with the support of online simulators where terms can be defined and evaluated. These simulators were developed by professor Rodrigo Machado of the Institute of Informatics of UFRGS, and they offer many functionalities to define and visu alize lambda terms. There is a different simulator for each of the studied calculi, with its own syntax to express the functionalities of calculus being simulated, which can make it more difficult to draw relations between these calculi. This work proposes a simple func tional programming language called SimpleLambda and implements a web application where SimpleLambda code can be compiled to the simulators of any of the four calculi studied in the Lambda Calculus and Type Theory class.application/pdfporLinguagem de programaçãoCompiladoresLambdaTyped lambda calculusCode generationSimpleLambda: uma linguagem funcional didática com tradução para o Cubo LambdaSimpleLambda: a didactic functional language with translation to the Lambda Cube info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2023Ciê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:UFRGSTEXT001168206.pdf.txt001168206.pdf.txtExtracted Texttext/plain75809http://www.lume.ufrgs.br/bitstream/10183/257991/2/001168206.pdf.txt0ce1f5bc23ffb579d5a8eaee94c65f14MD52ORIGINAL001168206.pdfTexto completoapplication/pdf533437http://www.lume.ufrgs.br/bitstream/10183/257991/1/001168206.pdf5740b1af813357b1b49241b6af13e36bMD5110183/2579912023-05-13 03:27:23.588398oai:www.lume.ufrgs.br:10183/257991Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2023-05-13T06:27:23Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
dc.title.alternative.en.fl_str_mv SimpleLambda: a didactic functional language with translation to the Lambda Cube
title SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
spellingShingle SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
Amaral, Artur Três do
Linguagem de programação
Compiladores
Lambda
Typed lambda calculus
Code generation
title_short SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
title_full SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
title_fullStr SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
title_full_unstemmed SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
title_sort SimpleLambda: uma linguagem funcional didática com tradução para o Cubo Lambda
author Amaral, Artur Três do
author_facet Amaral, Artur Três do
author_role author
dc.contributor.author.fl_str_mv Amaral, Artur Três do
dc.contributor.advisor1.fl_str_mv Moreira, Alvaro Freitas
dc.contributor.advisor-co1.fl_str_mv Machado, Rodrigo
contributor_str_mv Moreira, Alvaro Freitas
Machado, Rodrigo
dc.subject.por.fl_str_mv Linguagem de programação
Compiladores
Lambda
topic Linguagem de programação
Compiladores
Lambda
Typed lambda calculus
Code generation
dc.subject.eng.fl_str_mv Typed lambda calculus
Code generation
description Cálculo Lambda é um modelo de computação proposto por Alonzo Church. É baseado na definição e aplicação de funções anônimas, sendo o comportamento dos termos definido por meio da substituição de parâmetros por argumentos. Em continuação desses estudos, Church também propõe uma variação com tipos, o Cálculo Lambda Simplesmente Tipado (STLC). Com a adição de um sistema de tipos, o cálculo perde expressividade e deixa de ser Turing Completo, mas adquire uma propriedade nova, a Normalização Forte. Todos os termos bem-tipados do STLC garantidamente chegam a uma forma normal, ou seja terminam a sua execução. Nas décadas seguintes, outros cálculos tipados foram desenvolvidos, adicionando funcionalidades como: polimorfismo, construtores de tipos e tipos dependentes. Essas funcionalidades aumentam a expressividade em relação ao STLC e mantêm a Normalização Forte. Posteriormente foi proposta uma estrutura de organização para relacionar esses cálculos, o Cubo Lambda. Partindo de STLC, cada aresta representa a adição de uma dessas funcionalidades, e cada vértice representa o cálculo resultante. Na disciplina de Tópicos Especiais em Cálculo Lambda e Teoria de Tipos do curso de Ciência da Computação da UFRGS, esses cálculos são vistos com o suporte de simuladores onde se pode definir e avaliar termos de cálculo lambda tipado. Esses simuladores foram desenvolvidos pelo professor Rodrigo Machado do Instituto de Informática da UFRGS, e oferecem diversas funcionalidades para a definição e visuali zação dos termos. Para cada cálculo visto na disciplina há um simulador diferente com uma sintaxe própria para expressar as funcionalidades do cálculo que está simulando, o que pode dificultar o processo de relacionar esses cálculos entre eles. Este trabalho propõe uma linguagem de programação funcional simples chamada SimpleLambda, e desenvolve uma aplicação web onde o código SimpleLambda pode ser compilado para os simuladores dos quatro cálculos vistos na disciplina de Cálculo Lambda e Teoria de Tipos.
publishDate 2023
dc.date.accessioned.fl_str_mv 2023-05-12T03:26:57Z
dc.date.issued.fl_str_mv 2023
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/257991
dc.identifier.nrb.pt_BR.fl_str_mv 001168206
url http://hdl.handle.net/10183/257991
identifier_str_mv 001168206
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/257991/2/001168206.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/257991/1/001168206.pdf
bitstream.checksum.fl_str_mv 0ce1f5bc23ffb579d5a8eaee94c65f14
5740b1af813357b1b49241b6af13e36b
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_ 1801224659049381888