Estudos normais sobre tipos têm influenciado, de forma significativa, o projeto e definição de linguagens
de programação. Neste tutorial são apresentados conceitos fundamentais sobre sistemas de tipos de linguagens
de programação e são discutidos alguns sistemas de tipos que formalizam conceitos utilizados em linguagens de programação
modernas, tais como polimorfismo, sobrecarga e subtipagem. Os tópicos abordados incluem relevância do uso de tipos
em linguagens de programação, definição formal da sintaxe de linguagens tipadas através
de sistemas de tipos, propriedades requeridas de sistemas de tipos de linguagens de programação, sistemas de
tipos simples, sistemas de tipos polimórficos, inferência de tipos, polimorfismo restrito, subtipagem e tipos abstratos.