GoConqr has a new look! Let us know what you think.

Mind map

Linguagens de Programação

João Pedro Dias SI - Fundamentos para Computação TI Portuguese

Map content

Linguagens de Programação

  1. Aula 07 (05/04)

  2. Definição

    • Linguagem de Programação é uma linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (software).
      • -Sintaxe das instruções; -Comunicação de programado x máquina; -Construir um algoritmo que a máquina entenda; -Código-fonte para representar as instruções de alto nível.
        • Tipos de Instruções
          • Entrada e Saída
            • Teclado, mouse, tela, rede..
          • Aritméticas e lógicas
            • Operadores matemáticos, de relação, lógica booleana
          • Seletivas
            • If, if/else, switch/case
          • Repetitivas
            • for, while, do while
  3. Conceitos

    • Algoritimos
      • Uma sequencia (inicio, meio e fim) de passos (bem descritos) para resolver um problema.
        • 1 Programa = uma série de algoritimos
      • Método padronizado para comunicar instruções para um computador
      • Um conjunto de regras sintáticas (estrutura) e semânticas (significado) usadas para definir um programa de computador.
  4. Tradutores

    • Compiladores
      • Interpretadores
        • /Performance do programa é menor (por que a interpretação é feita junto com a execução); /Independência de plataforma (desde que exista um interpretador para os diferentes SO/Arquiteturas); /Facilidade de encontrar erros em tempo de execução (interpretação para na instrução ''problemática'').
        • Abordagem Mista
          • Linguagens de programação que utilizam máquinas virtuais utilizam uma abordagem que envolve compilação e interpretação.
            • Garante a:
              • portabilidade entre múltiplas plataformas (exemplo, java)
              • Integração entre diferentes linguagens (exemplo, .Net)
      • O compilador (um programa) transforma o arquivo do código escrito em uma linguagem especifica para formato binário, que pode ser executado diretamente pelo computador.
      • /Maior demora na conversão; /Execução mais rápida do programa; /Programa binário dependente: sistema operacional, arquitetura do computador
        • Caso precise ser executado em outro SO/Arquitetura precisar ser recompilado
    • Um programa tradutor converte um programa escrito em uma linguagem de programação para a linguagem de máquina, a qual o computador consiga entender
      • Compilação -> Interpretação
  5. Classificações

    • Baixo-nível
      • Mais próxima de uma máquina
    • Médio-nível
      • São aquelas que possuem símbolos que são um representação direta do código de máquina, mas também símbolos complexos que são convertidos por um compilador
        • C e C++
    • Alto-nível
      • Mais próxima de uma ''conversação''
    • -Applicative (functional) languages -Concurrent, distributed, and parallel languages -Constraint and logic languages -Data-flow languages -Design languages -Extensible languages -Macro and assembly languages -Microprogramming languages -Multiparadigm languages -Nondeterministic languages -Nonprocedural languages -Object-oriented languages -Specializes application languages -Very high-level languages
    • Paradigmas
      • Imperativo
        • Procedural
        • Blocos
        • Orientado a objetos
        • Distribuído
        • Descreve a computação como ações, enunciados ou comandos que mudam o estado (variáveis) de um programa.
          • Fundamental: variáveis, comandos de atribuição, execução sequencial de instruções, laços de repetição.
      • Declarativo
        • Funcional
        • Lógico
        • Descreve apenas o conjunto das tarefas a serem realizadas
          • Não estando preocupado com os detalhes de como o executor da linguagem (interpretador, compilador ou a própria máquina real ou virtual de execução) realmente implementará essas tarefas.
  6. Linguagem de Máquina

    • 2
      • Diagramação UML
    • Para programar nessa linguagem, envolve conhecer toda a arquitetura do sistema que esta utilizando
      • Identificação dos registradores
      • Identificação das instruções fornecidas pela CPU
      • Acesso direto à memória (através dos endereços)
      • Porém dependendo da CPU utilizada, não podendo pensar em portabilidade de código
        • Escrito para cada tipo de CPU
  7. Por que analisar várias linguagens?

    • Construidas com Propósitos Diferentes
      • Apresentando por consequência Vantagens e Desvantagens
      • Escolher a certa, facilita na resolução do problema.
    • Ajuda no Entendimento de Lógica de Programação
      • Não fixa o entendimento em apenas uma linguagem.
      • Facilidade de adaptação
  8. Estrutura de Dados

    • Fracamente tipada
      • Fortemente Tipada
        • A variável mantém seu tipo de dado até ser descartada da memória
          • Seu valor pode ser alterado, porém seu tipo armazenado será o mesmo do inicio ao fim da execução
        • Java, ruby
      • Não se importam com o tipo de dados contido em uma variável.
    • Dinamicamente tipada
      • Estaticamente tipada
        • O tipo de variável é atribuído durante a compilação
          • O programador deve determinar o tipo da variável antes da etapa de execução
        • Java, C
      • Os tipos não são declarados no código e, portanto, conhecidos/checados em tempo de execução.
      • Ruby, JavaScript
  9. 1º Geração

    • 2º Geração
      • 3º Geração
        • 4º Geração
          • 5º Geração
            • Maclennan agrupa diversos paradigmas como a orientação a objeto e os paradigmas funcional e lógico
            • Java, C#, C++, ADA
          • É essencialmente o sinônimo para linguagens com abstração de dados
            • A maioria das linguagens desta geração focam na modularização e no encapsulamento
          • ADA
        • Dão ênfase a simplicidade e eficiência.
          • A estrutura de dados desta geração mostram um deslocamento da máquina para a aplicação. As estruturas de controle são mais simples e eficientes
            • Aproximação da linguagem do usuário, e afastamento da máquina.
        • Pascal, C
      • São linguagens onde as estruturas de controle são estruturadas de forma a minimizar ou dispensar o uso de instruções GOTO
        • Elaborou melhor e generalizou diversas estruturas de controle das linguagens de primeira geração
      • Algol 60
    • São linguagens onde as estruturas de controle são aparentemente orientadas a máquina
      • As instruções condicionais não são aninhadas e dependem fortemente de instruções de desvio incondicional com o "GOTO"
    • Fortran 66

Information

Description
TI SI - Fundamentos para Computação Mind Map on Linguagens de Programação, created by João Pedro Dias on 05/04/2021.
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?