[en] TYPED LUA: AN OPTIONAL TYPE SYSTEM FOR LUA
[pt] Linguagens dinamicamente tipadas, tais como Lua, não usam tipos estáticos em favor de simplicidade e exibilidade, porque a ausência de tipos estáticos significa que programadores não precisam se preocupar em abstrair tipos que devem ser validados por um verificador de tipos. Por outro lado, lin...
| Author: | |
|---|---|
| Format: | doctoral thesis |
| Status: | Published version |
| Publication Date: | 2015 |
| Country: | Brasil |
| Institution: | Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
| Repository: | Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| Language: | English |
| OAI Identifier: | oai:MAXWELL.puc-rio.br:25305 |
| Online Access: | https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=25305&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=25305&idi=2 http://doi.org/10.17771/PUCRio.acad.25305 |
| Access Level: | Open access |
| Keyword: | [pt] LINGUAGENS DE SCRIPT [pt] TIPAGEM GRADUAL [pt] SISTEMAS DE TIPOS OPCIONAIS [pt] SISTEMAS DE TIPOS [pt] LUA [en] SCRIPTING LANGUAGES [en] GRADUAL TYPING [en] OPTIONAL TYPE SYSTEMS [en] TYPE SYSTEMS [en] LUA |
| Summary: | [pt] Linguagens dinamicamente tipadas, tais como Lua, não usam tipos estáticos em favor de simplicidade e exibilidade, porque a ausência de tipos estáticos significa que programadores não precisam se preocupar em abstrair tipos que devem ser validados por um verificador de tipos. Por outro lado, linguagens estaticamente tipadas ajudam na detecção prévia de diversos bugs e também ajudam na estruturação de programas grandes. Tais pontos geralmente são vistos como duas vantagens que levam programadores a migrar de uma linguagem dinamicamente tipada para uma linguagem estaticamente tipada, quando os pequenos scripts deles evoluem para programas complexos. Sistemas de tipos opcionais nos permitem combinar tipagem dinâmica e estática na mesma linguagem, sem afetar a semântica original da linguagem, tornando mais fácil a evolução de código tipado dinamicamente para código tipado estaticamente. Desenvolver um sistema de tipos opcional para uma linguagem dinamicamente tipada é uma tarefa desafiadora, pois ele deve ser o mais natural possível para os programadores que já estão familiarizados com essa linguagem. Neste trabalho nós apresentamos e formalizamos Typed Lua, um sistema de tipos opcional para Lua, o qual introduz novas características para tipar estaticamente alguns idiomas e características de Lua. Embora Lua compartilhe várias características com outras linguagens dinamicamente tipadas, em particular JavaScript, Lua também possui várias características não usuais, as quais não estão presentes nos sistemas de tipos dessas linguagens. Essas características incluem funções com aridade flexível, atribuições múltiplas, funções que são sobrecarregadas no número de valores de retorno e a evolução incremental de registros e objetos. Nós discutimos como Typed Lua tipa estaticamente essas características e também discutimos nossas decisões de projeto. Finalmente, apresentamos uma avaliação de resultados, a qual obtivemos ao usar Typed Lua para tipar código Lua existente. |
|---|