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
   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;


                               Prof. Adriano Teixeira de Souza

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

  • 1.
  • 2.
    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
  • 3.
    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
  • 4.
    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
  • 5.
    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
  • 6.
  • 7.
    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
  • 8.
    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
  • 9.
    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
  • 10.
  • 11.
    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
  • 12.
    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
  • 13.
    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
  • 14.
    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
  • 15.
    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; Prof. Adriano Teixeira de Souza