Categorias de Linguagens de Programação
Aluno: Claudinei Matos
Matrícula: 20091101258
Linguagem Imperativa
Na Ciência da Computação, programação imperativa (ou programação procedural) é um paradigma de programação que descreve a computação como ações, enunciados ou comandos que mudam o estado (variáveis) de um programa. Muito parecido com o comportamento imperativo das linguagens naturais que expressam ordens, programas imperativos são uma sequência de comandos para o computador executar.
Na programação imperativa ou procedural, um programa é feito de um ou mais procedimentos (subrotinas ou funções), sendo que o uso dos procedimentos têm um efeito significativo na forma como programas imperativos são construídos. Quando a forma de programação focaliza a alteração de estados (variáveis) em procedimentos ou as restringe a argumentos e resultados de procedimentos, chamamos de programação estruturada. De
1960 em diante a programação estruturada assim como a programação modular foram adotadas como formas de aprimorar a manutenção assim como a qualidade dos programas imperativos. [1], [2]
Vantagens [1]
Eficiência
Paradigma dominante e bem estabelecido
"Natural"
Flexível
Desvantagens [1]
Focaliza o "como" e não o "quê" fazer
Relacionamento indireto com a E/S (indução a erros/estados)Referências
Exemplo em C: [4]
// To sort array a[] of size n: qsort(a,0,n-1) void qsort(int a[], int lo, int hi)
{
int h, l, p, t; if (lo < hi) { l = lo; h = hi; p = a[hi]; do { while ((l < h) && (a[l] <= p)) l = l+1; while ((h > l) && (a[h] >= p)) h = h-1; if (l < h) { t = a[l]; a[l] = a[h]; a[h] = t;
}
} while (l < h); a[hi] = a[l]; a[l] = p; qsort( a, lo, l-1 ); qsort( a, l+1, hi );
}
}
Linguagem Funcional
Programação funcional é um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis. Ela enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa.
Uma