Dissertação

A Reference Implementation of ECMAScript Built-in Objects EVALUATED

ECMAScript (ES), vulgarmente conhecida como JavaScript, é uma das linguagens mais importantes de hoje porque é a opção de facto para desenvolvimento web front-end. Ao longo dos anos, ES tornou-se uma linguagem cada vez mais complexa, tornando-se um alvo difı́cil para análises estáticas. Este projeto faz parte de um projeto mais amplo que visa construir um interpretador de referência fiável para ES, que permitirá, entre outras coisas, o desenvolvimento de ferramentas de análise estática precisas para aplicações ES modernas através do uso de uma nova linguagem intermédia chamada ECMA-SL. Este trabalho foca-se na implementação de três bibliotecas built-in da edição 5.1 do standard de ES: Array (15.4), RegExp (15.10), e JSON (15.12). Também implementa alguns métodos da biblioteca String (15.5) e implementa a biblioteca Promise (25.4) da 6ª edição do standard. Esta implementação segue escrupulosamente o pseudo-código do standard linha por linha, assegurando assim que o nosso interpretador está correto com respeito ao standard e permitindo-nos considerar o interpretador como o próprio standard no contexto da análise estática. Para este fim, também estendemos o motor de execução da ECMA-SL com novas construções de programação, incluindo suporte para UTF-8. Além disso, a nossa implementação de referência é testada na totalidade com a Test262, a suite de testes oficial para ECMAScript. Finalmente, a fim de auxiliar na transição da representação HTML atual do standard de ES para ECMA-SL, apresentamos HTML2ECMA-SL, uma ferramenta que visa gerar o código ECMA-SL para qualquer função descrita no standard.
ECMAScript, Linguagem de especificação, Interpretadores de referência, Linguagens dinâmicas, Test262, OCaml

novembro 24, 2021, 18:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

José Faustino Fragoso Femenin dos Santos

Departamento de Engenharia Informática (DEI)

Assistant Professor