Apresentação do PowerPoint - DCA

Propaganda
Universidade Federal do Rio Grande do Norte
Departamento de Engenharia de Computação e
Automação
Linguagens de Programação
DCA0800 - Algoritmos e Lógica de Programação
Heitor Medeiros
1
Tópicos da aula
• Linguagens de programação.
– Linguagem de máquina.
– Linguagem de baixo nível.
– Linguagem de alto nível.
• Compiladores e Interpretadores.
– Linguagens compiladas e interpretadas.
• Ranking das linguagens de programação.
2
Como as máquinas conversam?
Como os humanos conversam com as máquinas?
3
Máquinas só entendem símbolos do
conjunto de binário (0 ou 1)
4
Programar uma máquina!
5
Introdução à Programação
• Programar uma máquina é escrever um conjunto
de instruções que o computador deve executar.
• Voltando ao conceito do computador:
“É uma máquina de calcular que processa dados através
de um conjunto de instruções e produz resultados, com
o mínimo de intervenção humana.”
 O que são essas instruções?
 Quem entende essas instruções?
6
Introdução à Programação
• Instruções são sequências de bits definidas para
que o computador realiza uma determinado
ação.
– Operações matemáticas ou lógicas.
– Manipulação de dados.
– Operações com dispositivos de entrada e saída.
Instruções de máquinas / Códigos de máquinas
7
Linguagem de máquina
• Para programar um computador é necessário
definir instruções baseadas numa linguagem de
máquina.
• Linguagem de máquina = Conjunto de instruções
do processador.
8
Surgimento das
Linguagens de Programação
• Devido a dificuldade na definição dos códigos de
máquina (códigos de 0s e 1s), foi criado uma
linguagem para programar a máquina através de
comandos textuais, a linguagem assembly.
• ADD 1F, AB;
Soma os conteúdos dos registradores 1F e
AB, e armazena no registrador 1F.
• INC 1E;
Adiciona 1 ao conteúdo do registrador 1E.
• MOV AE, 13;
Move o conteúdo do registrador AE para o
registrador 13.
9
Linguagem de Programação:
Assembly
• As máquinas continuavam entendendo apenas
programas escritos em linguagem de máquina.
• É necessidade um tradutor.
Linguagem de
programação
Assembly
Tradutor
(Assembler)
Linguagem de
máquina (0s e 1s)
• Devido a proximidade com a linguagem de máquina,
a linguagem assembly é considerada uma linguagem
de programação de baixo nível.
10
Linguagem de Programação:
Assembly
• Cada processador pode conter seu conjunto de
instruções. Cada conjunto de instruções tem sua
linguagem assembly.
• Processadores diferentes → Conjuntos de instruções
diferentes → Linguagens assembly diferentes.
• Programação de computador baseadas em
linguagens de baixo nível são bastante complexas.
11
Linguagens de
Programação de Alto Nível
• Os programadores queriam que os computadores
fossem capazes de falar línguas parecidas com as
línguas dos humanos e, nesse sentido, criaram as
linguagens de programação de alto nível.
• Linguagens de programação de alto nível:
– Independentes do processador.
– Códigos mais complexos.
– Descrição próxima da “lógica
”pensamento humano”.
humana”
–
12
Linguagens de
Programação de Alto Nível
• Primeira linguagem de programação de alto nível
foi Fortran.
13
Linguagens de
Programação
14
Programas de Alto Nível
em 0s e 1s
• Da mesma forma que a linguagem Assembly precisou de
um tradutor para converter o programa em código de
máquina, as linguagens de alto nível precisam de
tradutores para montarem seus códigos de máquinas.
• Tradutores das linguagens de alto nível:
– Compiladores
– Interpretadores
15
Compiladores x Interpretadores
• O compilador gera um código de máquina a partir do código
em linguagem de alto nível (código fonte), assim gerando a
tradução de todas instruções do programa.
Código fonte
Código de
máquina
Compilador
• O interpretador traduz as instruções da linguagem de alto
nível em instruções de máquina em tempo de execução.
Código fonte
Interpretador
Código
intermediário
Código de
máquina
Em tempo
de execução
16
Compiladores x Interpretadores
Tradutor
Vantagens
Execução mais veloz.
Compilador
Desvantagens
Várias etapas de tradução.
Maior consumo de memória
Programas mais complexos,
para a execução, uma vez que o
com mais funcionalidades.
programa final é maior.
Permite otimização do código- Processo de depuração de cada
fonte.
linha é mais demorado.
Interpretador
Depuração mais simples.
Execução mais lenta.
Menor consumo de memória.
Programas mais simples.
Resultado
imediato
da
É necessário que a máquina
execução das instruções por
possua o programa fonte.
ser passo a passo.
17
Exemplos de linguagens
• Linguagens de programação compiladas
– C / C++
• Linguagens de programação interpretadas
– Java
– C#
– Python
18
Rankings das Linguagens de
Programação
19
Ranking 2015 – IEEE
Spectrum
• The 2015 Top Ten Programming Languages.
• Referência:
http://spectrum.ieee.org/computing/software/the-2015-top20
ten-programming-languages/
Ranking 2015 – IEEE
Spectrum: WEB
21
Ranking 2015 – IEEE
Spectrum: Mobile
22
Ranking 2015 – IEEE
Spectrum: Enterprise
23
Ranking 2015 – IEEE
Spectrum: Embedded
24
Referências
• Stephen Cass. The 2015 Top Ten Programming Languages. IEEE
Spectrum.
Acesso
em:
http://spectrum.ieee.org/computing/software/the-2015-top-tenprogramming-languages/.
• Rita, Sandra. Treinamento em Lógica de Programação. 1 ed.
Digerati Books, 2009.
25
Dúvidas?
Dúvidas por email:
[email protected]
26
Download