Linguagens 2
Linguagens 2
Semana 5
2
O que são linguagens de programação
●
Linguagens de programação são meios de comunicação entre
humanos e computadores.
●
Elas permitem que os programadores escrevam instruções precisas
que serão executadas pelo computador.
3
Por que são importantes?
●
Linguagens de programação permitem que os programadores
criem software, aplicativos e sistemas.
●
Elas são usadas em todas as áreas da tecnologia e são essenciais
para o desenvolvimento de produtos digitais.
4
Tipos
●
Quanto a estratégia de execução:
– Compiladas
– Interpretadas
– Híbridas
●
Quanto ao nível de abstração:
– Nível Baixo de abstração – próximo da máquina
– Nível Médio de abstração
– Nível Alto de abstração – próximo da linguagem humana
5
Linguagens Populares
●
lgumas das linguagens de programação mais populares incluem
Java, Python, C++, JavaScript e PHP.
●
Cada uma dessas linguagens é usada em diferentes situações e tem
suas próprias vantagens e desvantagens.
6
Outras características
●
Domínios de aplicação: ●
Paradigmas de programação:
– comercial, – procedural,
– automação, – estruturado,
– ensino, – orientado a objetos, etc.
– etc.
●
Tratamento de tipos:
– fortemente tipada,
– fracamente tipada,
– dinâmicamente tipada,
– estaticamente tipada. 7
Estratégias de Execução
8
Compilação
●
O código-fonte é convertido em código executável antes da
execução;
●
O compilador verifica erros de sintaxe antes da execução;
●
Exemplos: C++, Java, C#
9
Processo de compilação
●
O processo de compilação começa com o código-fonte do programa (A).;
●
Em seguida, o pré-processamento é realizado (B). Isso pode compreender a inclusão de arquivos de cabeçalho, a
expansão de macros e a eliminação de comentários;
●
Depois que o código foi pré-processado, o compilador gera o código de máquina correspondente (C). Isso envolve a
tradução do código-fonte para código de máquina, o que é feito em várias etapas, incluindo análise léxica, análise
sintática e geração de código intermediário.
●
Em seguida, a linkagem é realizada (D). Isso envolve a combinação do código objeto gerado pelo compilador com
quaisquer bibliotecas externas necessárias para criar um arquivo executável.
●
Finalmente, o arquivo executável é gerado (E). Este é o arquivo que pode ser executado diretamente no computador
do usuário final. 10
Interpretação “pura”
●
O código-fonte é executado diretamente por um interpretador.
●
Os erros de sintaxe só são detectados durante a execução.
11
Processo de interpretação “pura”
●
O processo de interpretação começa com o código-fonte do programa (A);
●
Em seguida, o código é interpretado (B). Isso envolve a análise do código-fonte linha por linha, convertendo
cada linha em instruções executáveis em tempo real;
●
Quando o código é interpretado, a execução começa (C). Isso envolve a execução das instruções do programa
em tempo real, uma por vez;
●
Durante a execução, a saída é exibida conforme o programa é executado e qualquer entrada do usuário é
fornecida ao programa através do mecanismo de entrada padrão;
●
O processo de interpretação é geralmente mais lento do que o processo de compilação, pois envolve a
análise e interpretação do código-fonte em tempo real. No entanto, isso permite que o código seja executado
em diferentes plataformas sem a necessidade de compilar o código para cada plataforma individualmente.
12
Interpretação com máquina virtual
●
O código fonte é compilado para um código intermediário
(bytecode, por exemplo);
●
O código intermediário é interpretado por uma máquina virtual.
13
Processo de interpretação com máquina virtual
●
O processo de interpretação começa com o código-fonte do programa (A).
●
Em vez de interpretar o código-fonte diretamente, o código é compilado em bytecode (B). Isso envolve a tradução do
código-fonte para um formato intermediário que pode ser interpretado pela máquina virtual.
●
Em seguida, a máquina virtual é iniciada (C). A máquina virtual é um componente de software que pode interpretar o
bytecode gerado pelo compilador e executar o programa em tempo real.
●
Quando a máquina virtual é iniciada, a execução começa (D). Isso envolve a execução das instruções do programa em
tempo real, uma por vez.
●
Durante a execução, a saída é exibida conforme o programa é executado e qualquer entrada do usuário é fornecida ao
programa através do mecanismo de entrada padrão.
●
A máquina virtual é responsável por gerenciar a execução do programa e fornecer uma camada de abstração entre o
programa e o hardware subjacente. Isso permite que o código seja executado em diferentes plataformas sem a necessidade
de recompilá-lo para cada plataforma individualmente. 14
Comparação entre estratégias
Compiladas versus interpretadas
15
16
Detalhamento do diagrama
●
As linguagens compiladas (A) são mais eficientes em termos de desempenho e
execução, pois o código é compilado para o formato executável, que é executado
diretamente pela CPU (D) sem a necessidade de uma camada intermediária. Isso torna
a execução do código mais rápida (B) e eficiente em termos de uso de recursos do
sistema. Além disso, a compilação é necessária para distribuir software executável (C)
para outros usuários.
●
As linguagens interpretadas (E), por outro lado, são mais fáceis de escrever e testar (F),
pois não requerem o processo de compilação antes da execução do código. Isso
permite que o código seja alterado e executado imediatamente (G) sem a necessidade
de um processo de compilação. No entanto, o código é executado pelo interpretador
(H), que pode ser mais lento do que o hardware subjacente, o que pode levar a uma
diminuição no desempenho em comparação com as linguagens compiladas.
17
Vamos falar sobre os exercícios
18