[pt] COMPILAÇÃO OTIMIZADA DE UMA LINGUAGEM DINÂMICA PARA UM AMBIENTE DE EXECUÇÃO GERENCIADA

[pt] Ambientes de Execução Gerenciada tornaram-se alvos populares para compiladores de linguagens de programação de alto nível. Eles provêem um sistema tipos de alto nível com segurança de memória garantida, assim como facilidades como coleta de lixo, acesso a serviços da plataforma subjacente (poss...

Descripción completa

Detalles Bibliográficos
Autor: FABIO MASCARENHAS DE QUEIROZ
Tipo de recurso: tesis doctoral
Estado:Versión publicada
Fecha de publicación:2017
País:Brasil
Institución:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
Repositorio:Repositório Institucional da PUC-RIO (Projeto Maxwell)
Idioma:inglés
OAI Identifier:oai:MAXWELL.puc-rio.br:29074
Acceso en línea:https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=29074&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=29074&idi=2
http://doi.org/10.17771/PUCRio.acad.29074
Access Level:acceso abierto
Palabra clave:[pt] COMPILADORES
[pt] AMBIENTES DE EXECUCAO GERENCIADA
[pt] INFERENCIA DE TIPOS
[pt] LINGUAGEM DINAMICA
[pt] DESEMPENHO
[pt] LUA
[pt] LINGUAGENS DE PROGRAMACAO
[en] COMPILERS
[en] ACHIEVEMENT
[en] LUA
[en] PROGRAMMING LANGUAGES
Descripción
Sumario:[pt] Ambientes de Execução Gerenciada tornaram-se alvos populares para compiladores de linguagens de programação de alto nível. Eles provêem um sistema tipos de alto nível com segurança de memória garantida, assim como facilidades como coleta de lixo, acesso a serviços da plataforma subjacente (possivelmente através de uma sandbox), multithreading, e uma rica biblioteca de estruturas de dados e algorithmos, mas não possuem um modelo de desempenho claro, o que atrapalha as tentativas de otimização de qualquer linguagem que não tenha um mapeamento direto na semântica do ambiente de execução, especialmente se a linguagem é dinamicamente tipada. Nós afirmamos que é possível construir um compilador para uma linguagem dinâmica que tem como alvo um ambiente de execução gerenciada que rivaliza um compilador que tem como alvo linguagem de máquina na eficiência do código que ele gera. Essa tese apresenta um compilador com tal característica, descrevendo as otimizações necessárias para sua construção, e testes de desempenho que validam essas otimizações. Nossas otimizações não dependem de geração de código em tempo de execução, apenas em informação estaticamente disponível no código fonte. Nós usamos uma nova análise de inferência de tipos para aumentar a quantidade de informação disponível.