Linguagens de ProgramaçãoVisão geral
Teoria dos Tipos
Um sistema de tipos classifica expressões pelo julgamento Γ ⊢ e : T: no ambiente Γ, a expressão e tem tipo T. Γ lista as variáveis livres; se a árvore de regras não fecha, a expressão é mal-tipada.
Polimorfismo, verificação e inferência deste tópico — e os tipos primitivos e compostos no tópico seguinte — partem desse julgamento.
As páginas se agrupam em quatro blocos. O primeiro deriva Γ ⊢ e : T e recusa o que a gramática aceita mas as regras não fecham.
O segundo classifica as espécies em que um mesmo nome recebe vários tipos, e distingue cada uma da função de um único T.
O terceiro impõe um T já conhecido: no texto todo, antes de executar, ou só no valor que de fato corre.
O quarto escolhe T sem anotação e reconstitui o julgamento que a anotação correta teria escrito.
Derivar Γ ⊢ e : T e recusar Int+String está em Sistemas de Tipos. Decidir se essa recusa ocorre na compilação ou só quando a linha corre está em Verificação de Tipos.
Conferir se o texto respeita um T anotado está em Verificação de Tipos. Preencher T a partir do literal e de Γ, ou o id : ∀α. α→α, está em Inferência de Tipos.
Registrar soma : Int→Int→Int, sem ∀α, está em Sistemas de Tipos. Separar sobrecarga, coerção, parâmetro de tipo e subtipo está em Polimorfismo.
T inferido e fixo até o fim do escopo está em Inferência de Tipos. Tipo que viaja com o valor e muda de linha está em Verificação de Tipos.
Páginas deste tópico
Sistemas de Tipos
ProMédia incidência no POSCOMP11 min de leitura · 17ª mais cobrada em Linguagens de Programação
Julgamento Γ ⊢ e : T, por que um sistema rejeita Int+String, e função monomórfica vs polimórfica.
Polimorfismo
ProAlta incidência no POSCOMP11 min de leitura · 4ª mais cobrada em Linguagens de Programação
Taxonomia de Cardelli: ad-hoc (sobrecarga e coerção), paramétrico e inclusão; contraste monomórfico.
Verificação de Tipos
ProMédia incidência no POSCOMP10 min de leitura · 16ª mais cobrada em Linguagens de Programação
Quando a verificação corre: erro estático na compilação vs erro dinâmico na execução.
Inferência de Tipos
ProMédia incidência no POSCOMP8 min de leitura · 18ª mais cobrada em Linguagens de Programação
O compilador deduz o tipo; contraste com declare-then-check e um id de Hindley–Milner.