Mind map
Linguagens de Programação
Map content
Linguagens de Programação
Aula 07 (05/04)
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
- Entrada e Saída
- Tipos de Instruções
- -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.
- Linguagem de Programação é uma linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (software).
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.
- Uma sequencia (inicio, meio e fim) de passos (bem descritos) para resolver um problema.
- Algoritimos
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)
- Garante a:
- Linguagens de programação que utilizam máquinas virtuais utilizam uma abordagem que envolve compilação e interpretação.
- 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
- Interpretadores
- 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
- Compiladores
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++
- 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
- 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.
- Imperativo
- Baixo-nível
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
- 2
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
- Construidas com Propósitos Diferentes
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
- A variável mantém seu tipo de dado até ser descartada da memória
- Não se importam com o tipo de dados contido em uma variável.
- Fortemente Tipada
- 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
- O tipo de variável é atribuído durante a compilação
- Os tipos não são declarados no código e, portanto, conhecidos/checados em tempo de execução.
- Ruby, JavaScript
- Estaticamente tipada
- Fracamente tipada
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
- 5º Geração
- 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.
- 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
- Pascal, C
- 4º Geração
- 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
- 3º Geração
- 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
- 2º Geração
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.
- Created by
- João Pedro Dias
- Views
- 0
- Rating