[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...

Full description

Bibliographic Details
Main Author: HUGO MUSSO GUALANDI
Other Authors: ROBERTO IERUSALIMSCHY
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
id ndltd-puc-rio.br-oai-MAXWELL.puc-rio.br-26999
record_format oai_dc
spelling ndltd-puc-rio.br-oai-MAXWELL.puc-rio.br-269992018-07-12T04:46:19Z[en] TYPING DYNAMIC LANGUAGES: A REVIEW[pt] TIPANDO LINGUAGENS DINÂMICAS: UMA REVISÃOHUGO MUSSO GUALANDI[pt] SISTEMAS DE TIPOS[en] TYPE SYSTEMS[pt] LINGUAGEM DINAMICA[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.MAXWELLROBERTO IERUSALIMSCHY2016-07-25TEXTOhttps://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=26999@1https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=26999@2http://doi.org/10.17771/PUCRio.acad.26999en
collection NDLTD
language en
sources NDLTD
topic [pt] SISTEMAS DE TIPOS
[en] TYPE SYSTEMS
[pt] LINGUAGEM DINAMICA
spellingShingle [pt] SISTEMAS DE TIPOS
[en] TYPE SYSTEMS
[pt] LINGUAGEM DINAMICA
HUGO MUSSO GUALANDI
[en] TYPING DYNAMIC LANGUAGES: A REVIEW
description [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.
author2 ROBERTO IERUSALIMSCHY
author_facet ROBERTO IERUSALIMSCHY
HUGO MUSSO GUALANDI
author HUGO MUSSO GUALANDI
author_sort HUGO MUSSO GUALANDI
title [en] TYPING DYNAMIC LANGUAGES: A REVIEW
title_short [en] TYPING DYNAMIC LANGUAGES: A REVIEW
title_full [en] TYPING DYNAMIC LANGUAGES: A REVIEW
title_fullStr [en] TYPING DYNAMIC LANGUAGES: A REVIEW
title_full_unstemmed [en] TYPING DYNAMIC LANGUAGES: A REVIEW
title_sort [en] typing dynamic languages: a review
publisher MAXWELL
publishDate 2016
url 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
work_keys_str_mv AT hugomussogualandi entypingdynamiclanguagesareview
AT hugomussogualandi pttipandolinguagensdinamicasumarevisao
_version_ 1718711918055653376