Paradigmas de Linguagens
Chamamos de paradigma um conjunto de características que servem para categorizar um grupo de linguagens. Existem diversas classificações de paradigmas de LPs, sendo a mais comum a que divide os paradigmas de LPs nos paradigmas imperativo, orientado a objetos, funcional e lógico. A classificação utilizada aqui foi adaptada da apresentada por Appleby (1991). As únicas alterações realizadas nessa classificação são a substituição do paradigma "distribuído" pelo "concorrente" e a exclusão do paradigma de "linguagens de bancos de dados". Cabe ressalvar a não rigidez dessa classificação, deixando aberta a possibilidade de LPs se enquadrarem em mais de um desses paradigmas simultaneamente. A Figura abaixo ilustra a classificação adotada nesta apostila.
Nessa classificação, os paradigmas são subdivididos em duas categorias principais: imperativo e declarativo.
Paradigma imperativo
O paradigma imperativo engloba os paradigmas fundamentados na ideia de computação como um processo que realiza mudanças de estados. Nesse sentido, um estado representa uma configuração qualquer da memória do computador. Os programas de LPs incluídas nesse paradigma especificam como uma computação é realizada por uma sequência de alterações no estado da memória do computador.
O foco dos programas no paradigma imperativo é especificar como um processamento deve ser feito no computador. Os conceitos fundamentais são de variável, valor e atribuição. Variáveis são vistas como sendo um conjunto de células de memória. Elas possuem um valor associado em um determinado instante do processamento e podem ter seu valor modificado por meio de operações de atribuição.
O paradigma imperativo é subdividido nos paradigmas estruturado, orientado a objetos e concorrente.
O paradigma estruturado
As primeiras LPs foram fortemente influenciadas pela programação em linguagem de máquina. Esse tipo de programação se caracterizava pela existência de uma sequência monolítica de