ALGORITMOS – AULA 06 DE 100
| Unidade | 1 – Fundamentos e estruturas de controle |
|---|---|
| Bloco | Algoritmos e lógica (aulas 1 a 6) |
| Duração e tipo | 45 minutos – teórica |
| Aula anterior | Aula 05 – Resolução de problemas: entrada, processamento, saída e teste de mesa |
| Próxima aula | Aula 07 – Ambiente de trabalho: Python, VS Code e terminal |
1 Objetivos da aula
- Explicar por que precisamos de linguagens de programação e de tradutores.
- Diferenciar linguagem de máquina, linguagem de montagem e linguagem de alto nível.
- Diferenciar compilação e interpretação e descrever como o Python executa um programa.
- Reconhecer as características do Python e os motivos de seu uso nesta disciplina.
2 Roteiro da aula
| Tempo | Momento | Atividade |
|---|---|---|
| 0–5 min | Retomada | As linguagens pesquisadas pela turma (tarefa da Aula 05). |
| 5–25 min | Exposição dialogada | Hardware; níveis de linguagem; compilação e interpretação; como o Python funciona. |
| 25–35 min | Atividade em duplas | Compilação ou interpretação? Analogias entre o computador e o corpo humano. |
| 35–41 min | Demonstração | O interpretador do Python no terminal e o bytecode de uma linha de código. |
| 41–45 min | Síntese e ponte | Resumo e preparação para a primeira aula prática no VS Code. |
3 Conhecimentos prévios
Aula 01 (hardware e software) e Aulas 02 a 05 (algoritmos e diagramas de blocos).
4 Conteúdo
4.1 O que o computador realmente entende
Nas Aulas 02 a 05 os algoritmos foram executados por nós, no papel. Para que o computador execute um algoritmo, ele precisa estar escrito em instruções que o processador (CPU) reconhece. Relembre as partes do computador envolvidas na execução de um programa:
| Parte | Papel na execução de um programa |
|---|---|
| Processador (CPU) | Executa as instruções, uma de cada vez, bilhões de vezes por segundo. |
| Memória principal (RAM) | Guarda o programa em execução e seus dados. É rápida, mas perde tudo ao desligar. |
| Memória secundária (disco, SSD, pendrive) | Guarda arquivos e programas de forma permanente, mesmo sem energia. |
| Dispositivos de entrada e saída | Teclado, mouse, tela, rede, alto-falante: a comunicação com o mundo externo. |
Cada processador tem um conjunto fixo de instruções muito simples, como copiar um valor, somar, comparar ou desviar para outra instrução. Essas instruções são representadas por números binários: é a linguagem de máquina (ou código de máquina). Escrever programas diretamente nela é possível, mas lento e sujeito a erros, e o programa só funciona em processadores da mesma família.
4.2 Níveis de linguagem
| Nível | Como é | Vantagens e limitações |
|---|---|---|
| Linguagem de máquina | Números binários que o processador executa diretamente. | Executa sem tradução; ilegível para pessoas e presa a um tipo de processador. |
| Linguagem de montagem (assembly) | Abreviações (mnemônicos) para cada instrução de máquina, como mov e imul. | Mais legível que o binário, mas ainda presa ao processador; cada linha corresponde a uma instrução. |
| Linguagem de alto nível | Próxima da linguagem humana e da matemática: Python, Java, C, JavaScript. | Legível e portável; precisa de um tradutor para virar código de máquina. |
Veja a mesma operação, “total recebe preço vezes quantidade”, em dois níveis. Em Python:
total = preco * quantidade
Em linguagem de montagem (exemplo ilustrativo para processadores x86-64, com números inteiros):
mov eax, [preco] ; copia preco para o registrador eax
imul eax, [quantidade] ; multiplica eax por quantidade
mov [total], eax ; guarda o resultado em total
Em linguagem de máquina, cada uma dessas três linhas seria uma sequência de bytes, ilegível para pessoas. Note que uma única linha de alto nível corresponde a várias instruções de máquina.
4.3 Tradutores: compilação e interpretação
Um programa escrito em linguagem de alto nível, o código-fonte, precisa ser traduzido para código de máquina. Há duas estratégias principais (MANZANO; OLIVEIRA, 2019, seção 2.4; SEVERANCE, 2020, cap. 1):

Figura 1 – Compilação: tradução completa antes da execução

Figura 2 – Interpretação: tradução e execução, instrução por instrução
| Aspecto | Compilação | Interpretação |
|---|---|---|
| Quando traduz | Todo o programa, antes de executar. | Durante a execução, trecho a trecho. |
| O que produz | Um arquivo executável em código de máquina. | Não produz executável: o interpretador executa o código-fonte. |
| Para executar de novo | Basta rodar o executável. | O interpretador precisa estar instalado. |
| Erros de escrita | Aparecem na compilação, antes de rodar. | Aparecem quando o trecho com erro é alcançado (ou ao carregar o arquivo). |
| Exemplos usuais | C, C++, Rust, Go | Python, Ruby, PHP |
Uma analogia
O compilador é como um tradutor de livros: traduz a obra inteira e entrega um livro novo, que pode ser lido sem o tradutor. O interpretador é como um intérprete em uma palestra: traduz frase a frase, enquanto o palestrante fala, e precisa estar presente a cada vez.
A rigor, compilar ou interpretar é uma característica da implementação, não da linguagem: uma mesma linguagem pode ter implementações dos dois tipos.
4.4 E o Python?
A implementação de referência do Python, chamada CPython (escrita na linguagem C), combina as duas estratégias (Figura 3). Primeiro, ela compila o código-fonte para bytecode, uma linguagem intermediária mais simples que o Python, mas que não é código de máquina. Depois, a máquina virtual do Python executa esse bytecode, instrução por instrução. Segundo o glossário oficial, o bytecode também é guardado em cache em arquivos .pyc, para que a próxima execução não precise recompilar o código-fonte (PYTHON SOFTWARE FOUNDATION, 2026). Na prática, esse cache é criado para os módulos importados por um programa.

Figura 3 – Como o Python (CPython) executa um programa
Como essas etapas acontecem automaticamente quando você roda um programa, no dia a dia dizemos que o Python é uma linguagem interpretada e chamamos o programa python de interpretador. O mesmo código-fonte funciona em Windows, Linux e macOS, desde que o interpretador esteja instalado.
4.5 Por que Python nesta disciplina
- Legibilidade: a sintaxe é enxuta e o recuo (espaços no início da linha) organiza o código, como você viu nas demonstrações das Aulas 04 e 05.
- Gratuito e de código aberto: mantido pela Python Software Foundation, sem custo de licença.
- Biblioteca padrão ampla: muitas tarefas já têm módulos prontos, como matemática, datas e arquivos.
- Uso amplo: desenvolvimento web, análise de dados, inteligência artificial, automação de tarefas e ensino.
- Multiplataforma: o mesmo programa roda em Windows (o sistema do nosso laboratório), Linux e macOS.
O Python foi criado pelo holandês Guido van Rossum e teve sua primeira versão pública em 1991; o nome é uma homenagem ao grupo de humor britânico Monty Python. Nesta disciplina usamos o Python 3, na versão 3.14 ou superior (a 3.14.0 foi lançada em 07/10/2025). O Python 2 teve o suporte encerrado em 2020; se encontrar exemplos com print sem parênteses, eles são dessa versão antiga.
4.6 O que pode dar errado: tipos de erro
| Tipo de erro | O que é | Quando aparece | Exemplo |
|---|---|---|---|
| Sintaxe | O código não segue as regras de escrita da linguagem. | Na tradução, antes de executar. | primt("Olá") ou parêntese sem fechar |
| Execução | O código é válido, mas uma operação falha. | Durante a execução. | Dividir por zero; digitar 6,5 onde se espera um número |
| Lógica | O programa roda, mas o resultado está errado. | Só nos testes. | Usar > no lugar de ≥ na média |
Os dois primeiros tipos o próprio Python aponta, com uma mensagem de erro. O erro de lógica, não: só o teste (de mesa ou no computador) o revela. As mensagens de erro serão estudadas na Aula 08.
5 Atividade em sala
Parte A – Compilação ou interpretação? (em duplas, 5 minutos). Classifique cada afirmação como característica da compilação, da interpretação ou das duas:
- Gera um arquivo executável.
- Precisa do tradutor instalado toda vez que o programa é executado.
- Traduz o código-fonte de uma linguagem de alto nível.
- Mostra todos os erros de sintaxe antes de o programa começar a rodar.
- Permite digitar uma instrução e ver o resultado imediatamente.
Parte B – O computador e o corpo humano (em duplas, 5 minutos; adaptado de SEVERANCE, 2020, cap. 1, exercício 8). Para cada parte do computador, indique o que no ser humano tem papel parecido e explique: processador, memória principal, memória secundária, dispositivo de entrada e dispositivo de saída.
6 Demonstração: o interpretador e o bytecode
O professor vai abrir o terminal (PowerShell, no Windows) e usar o inicializador py, instalado junto com o Python. Você fará o mesmo na Aula 07.
PS> py --version
Python 3.14.x
PS> py
>>> 2 + 3
5
>>> preco = 4.5
>>> quantidade = 2
>>> preco * quantidade
9.0
>>> exit()
O sinal >>> indica o modo interativo: o interpretador lê uma instrução, executa e mostra o resultado na hora. Em seguida, o professor executa o arquivo demo_aula06.py, que mostra o bytecode gerado para uma linha de Python com o módulo dis (PYTHON SOFTWARE FOUNDATION, 2026):
import dis
codigo = "total = preco * quantidade"
dis.dis(codigo) # mostra as instruções de bytecode da linha acima
Saída no Python 3.14 (os detalhes podem mudar entre versões):
0 RESUME 0
1 LOAD_NAME 0 (preco)
LOAD_NAME 1 (quantidade)
BINARY_OP 5 (*)
STORE_NAME 2 (total)
LOAD_CONST 0 (None)
RETURN_VALUE
Repare que a linha 1 virou quatro instruções principais: carregar preco, carregar quantidade, multiplicar (BINARY_OP *) e guardar em total. As duas últimas instruções encerram o trecho de código. Não é preciso decorar nada disso: o objetivo é ver que existe uma tradução entre o que escrevemos e o que é executado.
7 Síntese
- O processador só executa linguagem de máquina; linguagens de alto nível precisam de tradutores.
- O compilador traduz o programa inteiro antes da execução; o interpretador traduz e executa durante a execução.
- O CPython compila para bytecode e o executa numa máquina virtual; na prática, dizemos que o Python é interpretado.
8 Exercícios de fixação
Os exercícios 1 a 3 foram adaptados de Severance (2020, cap. 1, exercícios 1, 3 e 4).
- Qual é a função da memória secundária? (a) Executar os cálculos do programa. (b) Buscar páginas na internet. (c) Guardar informações por longo prazo, mesmo sem energia. (d) Receber dados do usuário.
- Qual é a diferença entre um compilador e um interpretador?
- Qual dos itens contém código de máquina? (a) O interpretador do Python. (b) O teclado. (c) Um arquivo de código-fonte em Python. (d) Um documento de texto.
- Coloque em ordem, do mais próximo do hardware ao mais próximo da linguagem humana: Python, linguagem de máquina, linguagem de montagem.
- Um colega compilou um programa em C no Windows e enviou o executável para um amigo que usa Linux. O programa não abriu. Já um programa em Python, enviado como arquivo .py, funcionou nos dois sistemas. Explique por quê.
- Classifique cada erro como de sintaxe, de execução ou de lógica: (a) o programa calcula a média dividindo a soma de três notas por 2; (b) falta fechar um parêntese; (c) o usuário digita uma letra onde o programa espera um número.
9 Para a próxima aula
Aula 07 – Ambiente de trabalho: Python, VS Code e terminal. Primeira aula com as mãos no teclado: você vai conhecer o terminal, o VS Code e organizar a pasta onde guardará os programas do semestre.
- Tarefa: se tiver computador em casa, verifique se ele usa Windows, Linux ou macOS e se o Python já está instalado (no terminal, digite py –version no Windows ou python3 –version no Linux e no macOS). Não instale nada ainda: faremos isso juntos.
- Leitura recomendada: SEVERANCE (2020), Python para Todos, capítulo 1, seções “Conversando com Python” e “Terminologia: interpretador e compilador”. Download gratuito: http://do1.dr-chuck.com/pythonlearn/PT_br/pythonlearn.pdf.
- Leitura complementar: MANZANO e OLIVEIRA (2019), capítulo 2, seção 2.4.
Referências
- MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 29. ed. São Paulo: Érica, 2019.
- PYTHON SOFTWARE FOUNDATION. dis: disassembler for Python bytecode. Versão 3.14. [S. l.]: PSF, 2026. Disponível em: https://docs.python.org/3.14/library/dis.html. Acesso em: 9 out. 2026.
- PYTHON SOFTWARE FOUNDATION. Glossário. Versão 3.14. [S. l.]: PSF, 2026. Disponível em: https://docs.python.org/pt-br/3.14/glossary.html. Acesso em: 9 out. 2026.
- SEVERANCE, Charles R. Python para todos: explorando dados com Python 3. Tradução: Yuri Loia et al. [S. l.: s. n.], 2020. Licença CC BY-NC-SA 3.0. Disponível em: http://do1.dr-chuck.com/pythonlearn/PT_br/pythonlearn.pdf. Acesso em: 9 out. 2026.
Licença
Esta aula adapta trechos marcados do livro Python para Todos (SEVERANCE, 2020), distribuído sob a licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 3.0 (CC BY-NC-SA 3.0). Por isso, esta aula também é distribuída sob a licença CC BY-NC-SA 3.0: pode ser copiada e adaptada para fins não comerciais, com citação da fonte e mantendo a mesma licença. Texto da licença: https://creativecommons.org/licenses/by-nc-sa/3.0/deed.pt-br.
