[pt] A IMPLEMENTAÇÃO DE REGISTROS EM PALLENE - GABRIEL DE QUADROS LIGNEUL (2020)
[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.