Técnico e estudante de engenharia
Classificação
* Linguagens fortemente tipadas são aquelas em que a declaração do tipo é obrigatória. Todas as variáveis têm um tipo específico que tem que ser explicitado. Java, C++, C♯, Fortran, Ruby eCobol são exemplos deste tipo de linguagem. * Linguagens fracamente tipadas ou Dinamicamente tipadas são aquelas em que durante a execução do programa podem alterar o tipo de dados contido em uma variável. Permitem que o programador não tenha de fazer conversões de tipos (cast). Exemplos destas linguagens são PHP, Javascript, Python e Perl. * Linguagens não tipadas, são aquelas em que existe apenas um tipo genérico ou mesmo nenhum tipo de dados. Entre estas estão a Linguagem de montagem ou Assembly, BCPL e algumas versões de Forth.
Fortemente ou fracamente tipada
Um objeto é determinado pelo que ele pode fazer e não pelo seu tipo.
(tipo fraco)
Um conceito que muita gente confunde com tipo dinâmico ou estático é se uma linguagem é fortemente ou fracamente tipada.
A definição de fortemente ou fracamente tipada tem relação com quão profundamente um sistema verifica as operações que podem ser feitas sobre uma estrutura de dados.
Em linguagens fortemente tipadas, as operações são aplicadas para estruturas de dados bem definidas e cada operação define os tipos de dados que deve receber. Em linguagens fracamente tipadas, as operações são aplicadas para qualquer estrutura de dados; porém, essas operações podem falhar em tempo de execução caso a estrutura não suporte a operação.
Em uma linguagem fortemente tipada o sistema tem garantias sobre o comportamento do programa. Em uma linguagem fracamente tipada, essa garantia não existe porque uma estrutura de dados pode receber novas funcionalidades em tempo de execução.
Exemplo de uma função que realiza a soma de dois números, um inteiro e um ponto flutuante, e devolve um resultado em ponto flutuante:
Java (Fortemente tipada): float soma(float a, int b) { return a + b;
}
Ruby