[pt] A IMPLEMENTAÇÃO DE REGISTROS EM PALLENE

[pt] As características dinâmicas de linguagens de scripting introduzem um gargalo significativo no tempo de execução quando comparadas a linguagens de sistemas. A arquitetura scripting pode ser usada para melhorar o desempenho ruim de linguagens de scripting. O programador deve usar a linguagem de...

ver descrição completa

Detalhes bibliográficos
Autor: GABRIEL DE QUADROS LIGNEUL
Tipo de documento: tese
Estado:Versão publicada
Data de publicação:2020
País:Brasil
Recursos:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
Repositório:Repositório Institucional da PUC-RIO (Projeto Maxwell)
Idioma:inglês
OAI Identifier:oai:MAXWELL.puc-rio.br:46954
Acesso em linha:https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=46954&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=46954&idi=2
http://doi.org/10.17771/PUCRio.acad.46954
Access Level:Acceso aberto
Palavra-chave:[pt] LUA
[pt] TIPAGEM ESTATICA
[pt] SCRIPTING
[en] LUA
[en] STATIC TYPING
[en] SCRIPTING
Descrição
Resumo:[pt] As características dinâmicas de linguagens de scripting introduzem um gargalo significativo no tempo de execução quando comparadas a linguagens de sistemas. A arquitetura scripting pode ser usada para melhorar o desempenho ruim de linguagens de scripting. O programador deve usar a linguagem de sistemas para tarefas que consomem muitos recursos, e a de scripting para flexibilidade. Entretanto, essa arquitetura tem duas falhas significativas quando usada para melhorar o desempenho de linguagens de scripting. Primeiro, existe uma lacuna conceitual entre as duas linguagens, logo migrar da linguagem de scripting para linguagem de sistemas pode exigir enorme esforço. Segundo, existe um gargalo escondido ao manipular as estruturas de dados da linguagem de scripting a partir da linguagem de sistemas. Pallene é uma linguagem de sistemas projetada particularmente para Lua que almeja resolver essas duas falhas. Pallene é um subconjunto estaticamente tipado de Lua, o que facilita o processo de migração. Além disso, Pallene manipula diretamente as estruturas de dados de Lua sem introduzir gargalo. Neste trabalho, nós propomos dois tipos de registros para Pallene, e nós apresentamos a implementação do compilador de Pallene. Nós avaliamos o desempenho do nosso compilador para compará-la com Lua padrão, LuaJIT, e programas C que utilizam a API C de Lua. Nossos experimentos mostram que Pallene é competitiva com as soluções existentes para melhorar o desempenho de Lua.