Paradigmas de Linguagens de Programação - Classificações

15
Prof. Adriano Teixeira de Souza

Transcript of Paradigmas de Linguagens de Programação - Classificações

Prof. Adriano Teixeira de Souza

Existem três classes de linguagens de programação, isto, por níveis de abstração:

◦ Linguagens de máquina,

◦ Linguagens de baixo nível e

◦ Linguagens de alto nível.

Prof. Adriano Teixeira de Souza

Possuem alfabeto baseado em dígitos binários (zero e um)

Possui gramática (conjunto de regras sintáticas) específica para cada tipo de processador (ou microprocessador);

Exemplo: a instrução “some 1 + 1” deveria ser representada como: 10100100

Prof. Adriano Teixeira de Souza

Muitas desvantagens:

◦ Grande probabilidade de erro em todos os estágios

do processo de programação.

◦ Mesmo sendo com algoritmos simples resulta em longos programas, o que dificulta o processo de validação e detecção de erros.

◦ O cálculo de endereços de memória devem ser feitos manualmente, com um árduo trabalho e uma grande probabilidade de erros.

Prof. Adriano Teixeira de Souza

São compostas por mnemônicos ao invés de códigos binários (uma palavra para cada comando)e

Possuem assembler's que interpretam e convertem os mnemônicos para códigos binários,

Estas linguagens são específicas para cada tipo de processador (ou microprocessador). ◦ Exemplo: ADD 1 , 1

Prof. Adriano Teixeira de Souza

Prof. Adriano Teixeira de Souza

São linguagens que não requerem cuidados com a arquitetura física,

Elas são portáveis (são de certa forma independentes de tipos de processadores),

Para rodar algum programa elas necessitam ter traduzido o código fonte para uma linguagem que possa ser lida e entendida pela máquina (processador ou microprocessador).

Esta linguagem é a mais próxima à linguagem humana.

Prof. Adriano Teixeira de Souza

Alto nível ◦ Minimiza as dificuldades da programação em Linguagem

de Baixo Nível pois se aproxima da linguagem humana

◦ Problemas podem ser solucionados muito mais rapidamente e com muito mais facilidade.

◦ A solução do problema não necessita ser obscurecida pelo nível de detalhes necessários em um programa em linguagem de baixo nível.

◦ O programa em linguagem de alto nível é normalmente fácil de seguir e entender cada passo da execução.

◦ Fácil portabilidade em diferentes CPUs.

Prof. Adriano Teixeira de Souza

Baixo nível

◦ Indicada para funções que precisam implementar instruções de máquina específicas que não são suportadas por linguagens de alto nível.

◦ Impossibilidade de uso de linguagens de alto nível (hardware simples).

◦ Difícil portabilidade em diferentes CPUs.

◦ Minimiza as dificuldades de programação em notação binária já que faz uso de códigos mnemônicos ao invés da notação binária.

Prof. Adriano Teixeira de Souza

Prof. Adriano Teixeira de Souza

Fracamente tipada: ◦ Permite operações entre de tipos de dados

diferentes. Exemplo: (Smalltalk)

Fortemente tipada: ◦ Não permite operações entre tipos de dados

diferentes. Exemplo : (Java, Ruby)

Dinamicamente tipada: ◦ Checa os tipos de dados em tempo de execução.

Exemplo: (Python, Ruby)

Estaticamente tipada ◦ O tipo da variável é declarada em tempo de

programação. Exemplo: (Java, C)

Prof. Adriano Teixeira de Souza

Existem cinco gerações de linguagens de programação:

◦ Primeira geração, as linguagens de máquina (Binário: Zero e Um).

◦ Segunda geração, as linguagens de baixo nível (Assembly).

◦ Terceira geração, linguagens de alto nível. Suportar variáveis, matrizes, instruções condicionais, instruções repetitivas, funções e procedimentos (C, Pascal, Cobol, Fortran).

◦ Quarta geração, linguagens que geram código a partir de expressões de alto-nível; e linguagens de consulta (Java, C++, SQL).

◦ Quinta geração, linguagens lógicas para inteligência artificial (Lisp, Prolog). São criadas bases de conhecimentos, obtidas a partir de especialistas, e as linguagens fazem deduções, inferências e tiram conclusões baseadas nas bases de conhecimento.

Prof. Adriano Teixeira de Souza

Computadores são usados em uma infinidade de diferentes áreas.

Aplicações científicas: ◦ Primeiros computadores foram inventados para

aplicações científicas: Características: estruturas de dados simples, grande número

de computações aritméticas com números reais e eficientes. Ex: FORTRAN.

Aplicações comerciais: ◦ Características: facilidade de produzir relatórios,

precisão para armazenar números decimais e textos, capacidade de especificar operações aritméticas com decimais.

◦ Ex: COBOL.

Prof. Adriano Teixeira de Souza

Inteligência artificial simbólica: ◦ Características: computações simbólicas ao invés de

numéricas, computação por listas encadeadas.

◦ Ex: LISP e PROLOG.

Programação de sistemas: ◦ Software básico: sistema operacional e todas as

ferramentas de suporte à programação.

◦ Características: usados continuamente, requerem eficiência na execução.

◦ Ex: Sistema operacional UNIX foi escrito em C.

Prof. Adriano Teixeira de Souza

Prof. Adriano Teixeira de Souza

Linguagens de scripting: ◦ Script: uma lista de comandos em um arquivo para

serem executados. ◦ Primeira linguagem script foi sh (de shell), pequena

coleção de comandos interpretados como chamadas aos subprogramas do sistema que executam funções de utilidade.

◦ A essa base foram adicionadas variáveis, instruções de fluxo de controle, funções e outras capacidades → linguagem completa.

◦ Ex: Pearl – popular com advento da www e Java Script – usada tanto em servidores web como em navegadores.

Linguagens de propósito especiais. ◦ Geração de relatório, troca de informações, etc;