[en] TYPING DYNAMIC LANGUAGES: A REVIEW
[pt] Linguagens de programação tem tradicionalmente sido classificadas como estaticamente tipadas ou dinamicamente tipadas, estas últimas também sendo conhecidas como linguagens de scripting. Linguagens com tipagem dinâmica são bastante populares para a escrita de programas menores, um cenário onde...
Main Author: | |
---|---|
Other Authors: | |
Language: | en |
Published: |
MAXWELL
2016
|
Subjects: | |
Online Access: | https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=26999@1 https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=26999@2 http://doi.org/10.17771/PUCRio.acad.26999 |
Summary: | [pt] Linguagens de programação tem tradicionalmente sido classificadas como
estaticamente tipadas ou dinamicamente tipadas, estas últimas também
sendo conhecidas como linguagens de scripting. Linguagens com tipagem
dinâmica são bastante populares para a escrita de programas menores, um
cenário onde a facilidade de uso e flexibilidade da linguagem são altamente
valorizados. No entanto, com o passar do tempo, pequenos scripts podem
se tornar grandes sistemas e a flexibilidade da linguagem pode passar a ser
uma fonte de defeitos no programa. Para estes sistemas maiores, a tipagem
estática, que oferece detecção de erros em tempo de compilação, melhor documentação
e oportunidades de otimização, passa a ser mais atrativa. Como
reescrever todo o sistema em uma linguagem estática não é ideal do ponto de
um vista da engenharia de software, encontrar formas de adicionar tipos estáticos
em programas dinamicamente tipados já existentes tem sido uma área
de pesquisa bem rica. Nesse trabalho, nós apresentamos uma perspectiva
histórica dessa pesquisa. Nos focamos em abordagens que não são específicas
para uma única linguagem de programação, como as Type Hints de
Common LISP, o Soft Typing de Fagan et al e o Gradual Typing de Siek et al,
contrastando essas diferentes soluções a partir de uma perspectiva moderna. === [en] Programming languages have traditionally been classified as either statically
typed or dynamically typed, the latter often being known as scripting
languages. Dynamically typed languages are very popular for writing smaller
programs, a setting where ease of use and flexibility of the language are highly
valued. However, with time, small scripts tend to evolve into large systems
and the flexibility of the dynamic language may become a source of program
defects. For these larger systems, static typing, which offers compile-time
error detection, improved documentation and optimization opportunities, becomes
more attractive. Since rewriting the whole system in a statically typed
language is not ideal from a software engineering point of view, investigating
ways of adding static types to existing dynamically typed programs has been
a thriving research area. In this work, we present a historical overview of this
research. We focus on general approaches that apply to multiple programming
languages, such as the Type Hints of Common LISP, the Soft Typing of
Fagan et al and the Gradual Typing of Siek et al, contrasting these different
solutions from a modern perspective. |
---|