Buscar

Pensamento Computacional - Software e Tipos de Linguagem de Programação


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

T2 - M1/M2/M3 1
🗒
T2 - M1/M2/M3
🗓 30/03/23
Introdução
Os computadores precisam receber instruções para funcionar e fazer coisas úteis para nós, como assistir a vídeos, ouvir podcasts 
ou ler textos. Essas instruções são passadas aos computadores através de programas de computador, que são como conjuntos 
de instruções com diferentes finalidades.
Introdução
🎬 Introdução
M1 - Conceitos básicos de softwares
Conhecendo o software
🎬 O que é software?
🎬 Representação e armazenamento das instruções em hardware?
Software de código aberto
Código aberto
Código fechado
🎬 Softwares de código aberto X softwares de código fechado
O que é um programa?
Instrução para alterar a ordem de execução de instruções
Instrução que teste alguma condição
🎬 Como o programa vai parar na memória RAM?
M2 - Softwares funcionais
Sistema Operacional
Definição
🎬 O sistema operacional e seu papel em sistema computacional
Arquivo Word.exe
Câmera Digital
Boot e Reboot
🎬 Processo de boot em um computador
Versões de sistemas operacionais
Computador Pessoal
Smartphone
🎬 O Software e a sua função
M3 - Tipos de linguagens de programação
Conceito
Tipos de linguagem de programação
Linguagem Compilada
🎬 Linguagem Compilada
Linguagem dinâmica ou interpretada
🎬 Linguagem dinâmica ou interpretada
Podcast
Tendências
Considerações Finais
Podcast
Referências
Explore +
Livro Autonomia, liberdade e software livre, de Doriedson de Almeida e Nicia Riccio
Artigo Proposta de integração da engenharia de software nas estratégias empresariais, de Adalberto Reis e Ivanir Costa
Artigo A eficácia do software de educação ambiental utilizado no ensino à distância, de Franklin Porto Jr.
T2 - M1/M2/M3 2
Os programas são formados por instruções que são executadas por uma parte do computador chamada processador. O resultado 
dessas instruções determina o que o programa faz. Mas não são apenas os computadores que usam programas. Outros 
dispositivos eletrônicos, como geladeiras e smartphones, também têm programas que executam ações específicas ou funções 
mais amplas.
🎬 Introdução
Neste vídeo, vamos fazer uma breve introdução ao nosso tema. Para entender o que é um software, precisamos voltar no tempo e 
espaço, mais precisamente para a China do século IV a.C., quando o famoso estrategista militar Sun Tzu escreveu o famoso livro 
"A Arte da Guerra". Neste livro, ele descreve táticas e estratégias militares que podem ser usadas para superar um adversário.
Você pode estar se perguntando o que um livro sobre guerra tem a ver com a produção de software de computador. A resposta é 
simples. Assim como no livro de Sun Tzu, um programa de computador é uma estratégia escrita passo a passo para resolver um 
problema de forma computacional, utilizando as ferramentas e recursos que um computador pode nos oferecer.
O software é resultado da relação humana com o pensamento e a capacidade de definir problemas, declarar variáveis e manipulá-
las para solucionar um problema. Um software é apenas um conjunto de instruções utilizadas na programação de um computador, 
e não possui materialização física ou concreta. Um software só se torna real quando é destinado a resolver um problema 
computacional específico, independentemente da linguagem de programação utilizada ou da estrutura necessária.
Um programa de computador é utilizado para solicitar à CPU (Central de Processamento Única) do computador que execute 
comandos, que são transformados em instruções e alocados sequencialmente na memória, representando pequenos passos em 
uma grande estratégia para solucionar um problema específico. O problema é geralmente escrito em uma linguagem de 
programação, que origina um arquivo chamado código fonte. Este código fonte é escrito seguindo regras semânticas e sintáticas, 
assim como em qualquer linguagem falada ou escrita.
Após o código fonte ser validado, ele passa por um compilador, que gera o programa final em uma linguagem chamada código de 
máquina, representada apenas por 0s e 1s. É nessa linguagem que o programa pode ser efetivamente compreendido pelo 
computador. Portanto, entre o momento em que o programador escreveu o programa e ele ser executado no computador, há uma 
sequência de passos e uma ordem de execução para que isso aconteça.
M1 - Conceitos básicos de softwares
Conhecendo o software
Aqui descreveremos os conceitos básicos sobre software de computadores e responderemos, de forma introdutória, às seguintes 
perguntas:
O que é software?
O que é código de computador?
Como os softwares rodam (são executados) em um computador?
🎬 O que é software?
Neste vídeo, vamos falar sobre o que é um software. Um software nada mais é do que um conjunto de instruções fornecidas por 
uma pessoa inteligente e que são usadas por um computador para executar uma sequência de instruções de forma rápida, a fim 
de alcançar um objetivo. Geralmente, esse objetivo é resolver um problema do mundo real ou representar alguma realidade no 
mundo dos computadores. Os computadores são incrivelmente rápidos, mas não têm inteligência. O software é o que dá sentido 
aos computadores, permitindo que as pessoas transmitam sua inteligência e façam com que os computadores executem tarefas 
de forma automatizada, como Inteligência Artificial e aprendizado de máquina.
Uma boa analogia para entender o software é imaginar um cozinheiro novato recebendo uma lista de instruções e ingredientes 
básicos para preparar um prato. O cozinheiro segue as instruções cuidadosamente e alcança um resultado muito mais elaborado 
do que apenas os ingredientes separados. No mundo dos computadores, essas instruções são chamadas de código e os 
ingredientes são os dados de entrada. Através da sequência de instruções, o software alcança o objetivo maior de resolver um 
problema ou representar algo no mundo real. Cada tipo de computador, como computadores pessoais, celulares Android ou 
celulares da Apple, possui um conjunto específico de instruções, chamado de conjunto de instruções ou código binário. No 
entanto, é difícil para os seres humanos entenderem e fornecerem essas instruções na forma binária. Por isso, foram 
desenvolvidas linguagens de programação que tornam mais fácil para as pessoas escreverem essas instruções de forma 
compreensível. Em seguida, o computador traduz essas instruções para o código binário que ele pode executar. O software já 
traduzido na linguagem do computador é chamado de programa.
T2 - M1/M2/M3 3
Quando você vê um computador ligado ou baixa um programa, está presenciando um software sendo executado. Isso não é algo 
novo, pois até mesmo no passado, aparelhos como telefones e máquinas de fax já possuíam um software que dava materialidade 
às suas funções.
Um software é um conjunto de funções programadas que usam a estrutura física de um dispositivo para realizar ações 
específicas. Por exemplo, uma máquina de costura mecânica realiza um movimento repetitivo, mas quando programada por um 
humano, pode trançar uma estrutura para alcançar objetivos claros e novos.
O computador é filho da II Guerra Mundial, criado para realizar processamento de informações e comunicação mais eficientes. 
Mas para utilizá-lo, é necessário programar um software para definir as funções desejadas e reprogramá-lo sempre que 
necessário. Por isso, softwares para computadores são uma construção e sofisticação contínuas.
Embora não seja uma entidade física, um software ganha materialização em sua construção virtual. É a manifestação de uma 
imagem e dos desdobramentos a partir da construção de códigos e execuções. Para entender melhor, é importante compreender 
que a CPU é a responsável por executar as instruções de código de máquina que compõem um software.
Lembre-se que sempre haverá mudanças e atualizações nos softwares, por isso é importante entender o que é um software e 
como ele funciona para acompanhar essas transformações.
🎬 Representação e armazenamento das instruções em hardware?
Eu sou o Guilherme Jaime, e neste vídeo vamos falar sobre como as instruções são representadase armazenadas no hardware 
de um computador. Vamos lá! O software é um conjunto de instruções que a CPU, ou processador do computador, segue e 
executa de forma muito rápida, mas sem inteligência própria. É importante lembrar que é o software que traz inteligência para a 
CPU.
Agora, vamos dar uma olhada em como isso acontece no hardware. Na imagem que trouxe, você pode ver a CPU do computador 
à esquerda, que é o equivalente ao cérebro do computador. Ela é capaz de executar as instruções de forma incrivelmente rápida, 
na ordem de trilhões de instruções por segundo nos computadores mais modernos. Essas instruções são armazenadas em uma 
memória volátil, ou seja, se o dispositivo for desligado, as instruções são perdidas. Essa memória é chamada de RAM, que é a 
abreviação para Memória de Acesso Aleatório.
As instruções são armazenadas na RAM, como você pode ver no canto inferior direito da imagem, e a CPU busca essas 
instruções usando um circuito chamado barramento, que liga a CPU à memória. Isso ocorre na placa-mãe dos computadores, 
assim como em smartphones e outros dispositivos.
A CPU busca uma instrução de cada vez, executando-a e, em seguida, busca a próxima instrução e assim por diante. É 
importante entender que esse processo é rígido e mecânico. A CPU apenas lê as instruções da memória RAM e as executa o 
mais rápido possível. É através desse processo que percebemos o quão desprovida de inteligência a CPU é e como a 
responsabilidade de trazer inteligência para o processo vem dos seres humanos, que escrevem as instruções.
Essa é uma visão geral de como o software é armazenado e lido pela CPU nos equipamentos.
T2 - M1/M2/M3 4
As instruções que a CPU executa são formadas apenas pelos números 0 e 1, chamados de código binário. Esse conjunto de 
instruções é como se fosse uma linguagem de baixo nível, ou seja, muito básica e direta, chamada de "código de máquina".
Cada tipo de CPU (como a família Intel x86 usada em computadores pessoais) tem seu próprio código de máquina, que está 
relacionado ao design do hardware da CPU e não pode ser mudado facilmente. Por isso, os códigos de máquina de diferentes 
famílias de CPUs não são compatíveis entre si.
Quando os humanos escrevem instruções de alto nível, elas são mais fáceis de entender do que as instruções de baixo nível que 
os computadores conseguem executar. Então, essas instruções de alto nível são "traduzidas" em várias instruções de baixo nível 
que o computador pode entender e executar.
Isso significa que, quando o programa é executado, o computador não executa diretamente as instruções de alto nível, mas sim 
uma sequência de instruções de baixo nível que foram geradas a partir das instruções de alto nível. Essas instruções de baixo 
nível são executadas uma após a outra e, juntas, elas realizam a mesma tarefa que a instrução de alto nível original.
Por exemplo, uma instrução de alto nível pode ser "definir o valor vermelho do pixel para 255". Mas, para que o computador possa 
executar essa instrução, ela precisa ser convertida em várias instruções de baixo nível que possam ser entendidas pela CPU. 
Essas instruções de baixo nível podem ser algo como "carregar o valor atual do pixel", "alterar o valor vermelho para 255" e 
"salvar o novo valor do pixel".
Muitas vezes, os programadores cometem erros de programação enquanto escrevem códigos. Se você quiser corrigir esses erros, 
a forma correta de fazer isso é voltar ao código-fonte original e fazer as alterações necessárias no código.
Depois de fazer as mudanças, é preciso executar o compilador novamente para transformar o código-fonte em um programa 
executável que possa ser lido pela máquina. Dessa forma, você terá uma nova versão do programa que incluirá as correções que 
você fez. Por exemplo, se você quiser corrigir um erro no Firefox, você precisa fazer as mudanças no código-fonte, compilar 
novamente e instalar a nova versão do Firefox com as correções.
Software de código aberto
O software de código aberto é uma forma de distribuição de software em que o programa compilado é fornecido, mas também há 
acesso ao código-fonte original do programa. Isso significa que qualquer pessoa pode ver como o programa funciona e fazer 
alterações no código-fonte. O código-fonte geralmente é acompanhado por uma licença que permite que você crie sua própria 
versão do programa.
A diferença entre softwares de código aberto e softwares de código fechado é que, com os softwares de código aberto, se você 
fizer alterações no código-fonte e adicionar algum recurso, é necessário oferecer essas alterações à comunidade. Isso é 
importante porque, da mesma forma que você se beneficiou dos outros ao obter o programa gratuito e seu código-fonte, eles 
podem se beneficiar do seu trabalho. Em geral, os softwares de código aberto têm termos de licença diferentes, mas a maioria 
exige que as alterações sejam compartilhadas com a comunidade.
Código aberto
Se forem necessários ajustes, correções e incrementações 
que você queira fazer com o programa – ou se o fornecedor 
original não existe mais –, você tem total liberdade para agir.
Você pode realizar as modificações, ou talvez prefira contratar 
alguém para produzir sua própria versão personalizada.
Código fechado
Se você precisa de algum recurso diferente ou adicional, ou se 
há um bug que precisa ser corrigido, você realmente depende 
do fornecedor, pois somente ele detém o código-fonte.
Então, só o fornecedor é capaz de realizar ajustes e 
correções.
Compilador traduz linhas de código escritas pelo programador em instruções de código de máquina compreensíveis à CPU.
T2 - M1/M2/M3 5
🎬 Softwares de código aberto X softwares de código fechado
Neste vídeo vamos falar sobre códigos abertos e códigos fechados. Vamos entender a diferença entre eles e quais são suas 
vantagens e desvantagens.
Os softwares de código fechado são normalmente distribuídos comercialmente e você provavelmente já os conhece. Quando um 
software é desenvolvido, um programador escreve um código fonte, que é uma coleção de arquivos com instruções que serão 
processadas por um compilador para gerar um software pronto. Esse software final é destinado a resolver algum tipo de problema 
específico, como um editor de texto, um navegador de internet ou um aplicativo de streaming de vídeos. Quando esse software é 
disponibilizado para o público, apenas o programa final é disponível, ou seja, o software pronto, sem acesso ao código fonte. Isso 
significa que os usuários ficam reféns da forma como o software foi programado e disponibilizado, sem poder fazer alterações.
Essa metodologia de desenvolvimento é adotada principalmente para fins financeiros, pois as empresas que desenvolvem 
software dessa maneira buscam vender o produto e sabem que os usuários que precisarem de novas versões ou melhorias terão 
que solicitar à empresa a confecção de um novo software.
Por outro lado, os softwares de código aberto passam pelo mesmo processo de produção, com um programador escrevendo um 
código fonte que será transformado em um programa por meio de um compilador. A diferença é que, quando esse software é 
distribuído para o público, o código fonte também é disponibilizado, permitindo que os usuários possam conferir como o programa 
foi feito e até mesmo fazer alterações e gerar uma nova versão do programa por conta própria.
Um exemplo famoso de software de código aberto é o sistema operacional Android, utilizado em smartphones. A empresa 
desenvolvedora do Android, a Google, disponibiliza o código fonte sempre que uma nova versão é lançada, permitindo que várias 
fabricantes de smartphones façam ajustes no software para melhor desempenho em seus dispositivos. Por exemplo, a Samsung 
ajusta o Android para seus smartphones, assim como a Motorola faz o mesmo para seus dispositivos. Isso permite uma maior 
flexibilidade e adaptação do software às necessidades específicas de cada fabricante.
Outra vantagem dos softwares de código aberto é que eles são mantidos por comunidades. Como sãodisponibilizados para uso 
de todos, pessoas interessadas nesse tipo de software se reúnem, compartilham experiências e fazem manutenções de forma 
rápida e eficiente, muitas vezes chegando a resultados melhores e mais rápidos do que seria possível individualmente. É como diz 
o ditado: "duas cabeças pensam melhor do que uma".
Além disso, do ponto de vista comercial, as empresas que desenvolvem e disponibilizam seus códigos de forma aberta são 
geralmente bem vistas pelo público avançado e pelo consumidor mais sofisticado, preocupado com a sustentabilidade. Isso tem 
mudado até mesmo o pensamento de empresas tradicionais, como a Microsoft, que em breve estará distribuindo parte do seu 
principal sistema operacional, o Windows, como software aberto.
Até agora, falamos sobre um tipo de linguagem de programação em que usamos um compilador para transformar o código que 
escrevemos em um arquivo que pode ser executado pelos usuários. Agora, vamos nos concentrar na próxima questão.
O que é um programa?
Nesse texto, é explicado como um programa de computador é formado por um conjunto de instruções de código de máquina que 
são executadas pela CPU, fazendo com que tudo o que vemos na tela, como o cursor piscando ou o navegador exibindo uma 
página da web, ocorra de forma fluida e natural.
Cada instrução de código de máquina é como um grão de areia, sem sentido sozinho, mas quando milhares deles são juntados de 
forma correta, formam uma estrutura complexa, como um programa de computador.
A CPU executa as instruções de forma sequencial, uma após a outra, utilizando um método chamado ciclo busca-execução. A 
velocidade com que as instruções são executadas é medida em GHz, e existem diferentes tipos de instruções que podem ser 
utilizadas em um programa de computador.
Portanto, um programa de computador é uma sequência de instruções simples, mas quando executadas em conjunto, criam uma 
ferramenta poderosa que pode ser usada para realizar diversas tarefas, desde editar um texto até jogar um jogo digital.
Instrução para alterar a ordem de execução de instruções
Quando um programa é executado na CPU, a ordem das instruções é muito importante. Normalmente, a CPU executa as 
instruções na ordem em que estão armazenadas na memória, uma após a outra.
No entanto, algumas instruções especiais podem ser usadas para dizer à CPU para voltar e executar instruções novamente ou 
pular para uma instrução diferente.
Por exemplo, imagine que um programa tem uma instrução que diz "repita as instruções 1, 2 e 3 cinco vezes". A CPU executaria 
as instruções 1, 2 e 3 normalmente, mas quando chega na instrução que indica a repetição, ela volta para a instrução 1 e repete 
T2 - M1/M2/M3 6
todo o processo mais quatro vezes antes de continuar com as instruções seguintes.
Isso é como a CPU implementa as estruturas de repetição de instruções (loops).
GOTO
A goto é uma instrução na linguagem de informática e significa: vá para a linha indicada e siga executando o código a partir 
desse local.
Conforme vimos, a instrução goto é usada para alterar a ordem de execução de instruções. Dois importantes exemplos da 
utilidade dessa instrução de código de máquina são implementar loops de repetição e implementar estruturas 
condicionais.
Instrução que teste alguma condição
Para entender como a CPU pode executar diferentes instruções com base em uma condição, podemos pensar em uma decisão 
que tomamos todos os dias: se estivermos com fome, vamos comer; se não, vamos continuar fazendo o que estamos fazendo.
Da mesma forma, a CPU pode verificar se uma condição é verdadeira ou falsa e executar diferentes instruções com base nisso. 
Por exemplo, se a condição for verdadeira, a CPU pode pular para uma instrução específica, enquanto se for falsa, ela pode pular 
para outra.
Essa é a ideia por trás de uma estrutura condicional, como a declaração if. Combinando diferentes instruções e condições, 
podemos escrever programas que tomam decisões com base em várias situações e dados de entrada.
🎬 Como o programa vai parar na memória RAM?
Neste vídeo vamos explicar como os programas são carregados na memória RAM do computador. A memória RAM é como o 
cérebro do computador, responsável por executar as instruções do programa. Mas como os programas vão parar na memória 
RAM? Vamos entender isso!
O computador executa instruções através da CPU, que é o processador. A CPU é como o cérebro do computador, capaz de 
executar instruções. Mas para que isso aconteça, ela precisa ler os dados da memória RAM, que é uma memória volátil, ou seja, 
perde as informações quando o computador é desligado.
Quando desligamos o computador e o ligamos novamente no dia seguinte, ou quando queremos executar um novo programa que 
não estava na memória, como isso acontece? É aí que entra o processo de carregamento de um programa na memória RAM.
Imagine que existe um dispositivo de armazenamento secundário, como um pendrive, DVD, CD, HD antigo ou SSD (os novos 
tipos de HD). Esses dispositivos armazenam programas que foram ou serão convertidos para serem executados pela CPU.
Quando o usuário ordena a execução de um programa, o primeiro passo é a CPU fazer a leitura desses dados no dispositivo de 
armazenamento secundário. Essas instruções são então copiadas para a memória RAM, dando início ao processo de 
carregamento do programa. Isso é o que chamamos de iniciar um programa.
Instrução 4 solicitando que a CPU, em vez de seguir para a instrução 5, volte a executar a instrução 1.
T2 - M1/M2/M3 7
Essa é a forma básica como o computador carrega programas na memória RAM, para que possam ser executados 
sequencialmente, de acordo com as instruções fornecidas pelo desenvolvedor.
Quando você instala um programa, ele é armazenado em um dispositivo de armazenamento permanente, como um HD, SSD ou 
pendrive. Para entender melhor, vamos usar como exemplo o programa Firefox.
O Firefox é basicamente um arquivo chamado Firefox.exe, que contém muitos bytes. A maioria desses bytes são apenas as 
instruções que compõem o programa, além de alguns ícones e fotos.
Quando você clica duas vezes no arquivo Firefox.exe ou no atalho que aponta para ele, ocorrem três etapas:
1. A CPU lê as instruções do arquivo Firefox.exe na memória principal do computador (RAM).
2. A CPU carrega as instruções necessárias na memória cache, que é muito mais rápida que a memória principal.
3. A CPU executa as instruções na memória cache, o que faz com que o programa Firefox seja iniciado e apareça na tela do seu 
computador.
Quando você instala um programa, ele é colocado em um lugar seguro de armazenamento, como um HD ou um pen drive. Por 
exemplo, o programa Firefox é apenas um arquivo chamado Firefox.exe, que é composto de muitas instruções e alguns ícones e 
fotos.
Quando você clica duas vezes no arquivo Firefox.exe, ou no atalho que aponta para ele, três coisas acontecem:
Passo 1: 
Copiar todas as instruções do arquivo do HD para uma área da memória RAM que não esteja em uso. Isso é chamado de 
carregar o programa.
Passo 2: 
Dizer à CPU para iniciar o ciclo de busca-execução a partir da instrução 1 do programa.
Passo 3: 
A CPU executa as instruções rapidamente e o Firefox começa a rodar, permitindo que você navegue pela Internet.
T2 - M1/M2/M3 8
M2 - Softwares funcionais
Sistema Operacional
Definição
Quando estamos aprendendo sobre software e como a CPU executa as instruções, é comum surgirem dúvidas como:
Quem é responsável pelo duplo clique que inicia a execução de um programa?
Como garantir que um novo programa seja carregado na RAM em uma região livre e sem sobreposição com outros programas 
em execução?
Quem determina o carregamento de um programa do HD para a RAM?
Ao final da execução de um programa, quem é responsável por liberar a região da RAM utilizada?
A resposta para todas essas perguntas é o Sistema Operacional (SO). O SO é um conjunto de programas que administram e 
supervisionam todo o sistema, desde a inicialização do computador até o encerramento de um programa.Podemos dizer que o SO é como o governo de um país, responsável por manter tudo em ordem e garantir que todos os recursos 
sejam utilizados de maneira eficiente.
🎬 O sistema operacional e seu papel em sistema computacional
Nesse vídeo, vamos falar sobre sistemas operacionais, que são programas especiais responsáveis por permitir que o usuário use 
o computador. Eles são a interface entre o usuário e o computador, permitindo a execução de programas, finalização de 
programas, impressão de arquivos e muito mais. Os sistemas operacionais são desenvolvidos por grupos de pessoas com o 
propósito especial de serem a interface do usuário com o computador. Eles estão presentes em todos os dispositivos que usamos, 
como celulares com Android, iOS para dispositivos Apple e Windows para computadores pessoais, só para citar alguns exemplos.
Um componente importante do sistema operacional é o Kernel, que é o núcleo do sistema operacional. O Kernel possui 
componentes como drivers, que são softwares específicos que permitem ao sistema operacional interagir com dispositivos 
específicos, como câmeras, microfones, impressoras, teclados, mouses, entre outros. Os drivers fornecem instruções 
padronizadas para que o sistema operacional possa fazer solicitações aos dispositivos e receber respostas.
Além disso, o Kernel também é responsável por gerenciar todos os programas em execução na memória RAM do computador. 
Por exemplo, quando o usuário inicia vários programas ao mesmo tempo, como um navegador, um leitor de e-mails, um jogo e um 
editor de texto, o sistema operacional garante que cada um desses programas obtenha uma fração do poder de processamento 
do computador, permitindo que todos eles coexistam harmoniosamente.
O Sistema Operacional (SO) é o responsável por administrar o computador, organizando e gerenciando todas as solicitações que 
o usuário faz aos programas/aplicações instalados. Ele é como um programa de supervisão que é executado quando o 
computador é ligado, e faz tudo isso de maneira invisível para o usuário.
Ao ser iniciado, o SO organiza as coisas e inicia um programa chamado "explorador de arquivos", que mostra quais sistemas de 
arquivos estão disponíveis no equipamento. Isso permite que o usuário navegue pelo sistema e opere seus programas, solicitando 
que eles sejam iniciados ou finalizados.
T2 - M1/M2/M3 9
O SO também é responsável por permitir que vários programas sejam executados ao mesmo tempo, através do recurso de 
multitarefa. Ele fornece a cada programa sua própria área de memória, de modo que cada programa acesse apenas seus próprios 
recursos. Isso é importante para a segurança do sistema, impedindo que programas incorretos ou mal-intencionados afetem 
outros programas ou o próprio sistema.
Em resumo, o SO é como um gerente invisível que mantém tudo organizado em segundo plano, permitindo que o usuário opere 
seus programas com segurança e facilidade.
Vamos ver dois exemplos?
Arquivo Word.exe
Quando você clica duas vezes em um arquivo .exe, você está 
pedindo para o sistema operacional (SO) iniciar o programa.
Isso significa que o SO vai limpar um espaço na memória RAM 
para o programa, carregar a primeira parte do código do 
programa nessa memória e, por fim, direcionar a CPU para 
começar a executar esse código. 
O arquivo .exe é basicamente um conjunto de instruções em 
linguagem de máquina que o SO sabe como executar.
Câmera Digital
Uma câmera digital é como um computador pequeno e possui 
um programa que é executado quando ela é ligada. 
Esse programa é diferente dos programas de gerenciamento 
de arquivos encontrados em computadores convencionais. 
Ao ligar a câmera, ela executa um programa que desenha os 
menus na tela e responde aos cliques nos botões da câmera. 
É por meio desse programa que você pode ver as fotos que 
tirou e fazer ajustes nas configurações da câmera.
Boot e Reboot
Quando você liga seu computador, a primeira coisa que é executada é o sistema operacional (SO). É ele quem realiza uma série 
de processos de inicialização e configuração, antes mesmo de o usuário poder escolher e executar seus programas.
Você pode estar curioso para saber:
Qual programa é responsável por executar o SO assim que você liga o computador?
🎬 Processo de boot em um computador
Neste vídeo vamos falar sobre o processo de boot dos computadores. Vamos lá! Uma coisa interessante para refletir é o que 
acontece quando ligamos um computador que está desligado, totalmente apagado. Quando apertamos o botão de ligar, 
observamos o que acontece a partir dali. Esse processo é o que chamamos de boot, que pode ser traduzido como inicialização, 
início ou partida do computador. Existe todo um processo que permite que isso ocorra até o momento em que o usuário possa 
operar e interagir com o software desejado.
Os computadores possuem uma placa mãe onde a CPU, a memória RAM e os dispositivos de armazenamento secundários, como 
HDs, estão conectados. Quando você liga o computador, a placa mãe é energizada e possui um software gravado de fábrica, 
O sistema operacional e seu papel em sistema computacional.
T2 - M1/M2/M3 10
chamado de BIOS ou firmware. Esse software realiza alguns testes básicos para verificar se está tudo conforme o esperado e, a 
partir disso, é dado início ao processo chamado de Bootstrap, que pode ser traduzido como as primeiras instruções para iniciar o 
carregamento do sistema operacional.
Esse processo consiste em encontrar um dispositivo de armazenamento secundário que tenha um sistema operacional gravado 
com as instruções de boot para carregar o sistema operacional na memória RAM. O Bootstrap encontra esse dispositivo, lê as 
instruções para a memória RAM e inicia o processador. Assim, começa a sequência de execução dessas instruções, que são 
instruções especiais que dizem ao computador como carregar o sistema operacional para a memória RAM.
Durante esse processamento, as instruções são lidas dos dispositivos de armazenamento secundários para a memória RAM, e 
em seguida o kernel do sistema operacional é carregado, seguido dos drivers e dos serviços que são os softwares necessários 
para garantir o bom funcionamento do sistema operacional, ou aqueles que o usuário definiu para serem carregados durante o 
boot. A interface mais comum que vemos é a interface gráfica de login, onde inserimos nosso nome e senha, mas também pode 
ser uma interface de texto, dependendo do tipo de computador. Em servidores, é mais comum vermos interfaces de texto onde o 
usuário faz login e começa a utilizar o equipamento. E assim, o processo de boot é finalizado.
O primeiro programa que é executado quando ligamos o computador é o firmware, que é um programa gravado pela fábrica no 
hardware. 
O termo firmware é usado, geralmente, para se referir especificamente ao firmware de inicialização, 
que controla um computador desde o momento em que é ligado até o sistema operacional principal 
assumir o controle.
Ele faz alguns testes de hardware e procura um dispositivo de armazenamento persistente que contenha um sistema operacional 
instalado. 
Depois disso, ele carrega as instruções do SO para a RAM e indica à CPU qual é a primeira instrução do SO a ser executada. 
Esse processo é chamado de boot.
⚠ O firmware de inicialização é comumente chamado de BIOS em computadores pessoais. 
Este processo é comumente denominado inicializar (boot ou boot up).
T2 - M1/M2/M3 11
E quando ocorre o Reboot?
O reboot ocorre quando ordenamos ao SO que o computador seja reiniciado, ou seja, o próprio SO cuida das tarefas necessárias 
para a finalização e o desligamento do computador. Imediatamente, o computador é religado, e o processo de boot recomeça.
Versões de sistemas operacionais
Quando ligamos o computador, o primeiro programa que é executado é o Sistema Operacional (SO), mesmo antes de qualquer 
outro programa do usuário. 
Agora que entendemos o que é um sistema operacional, podemos ver alguns exemplos e onde eles são usados.
Computador Pessoal
Microsoft Windows:proprietário, pago. Usado em cerca de 
80% dos desktops/laptops.
Linux: aberto, gratuito. Usado em cerca de 80% dos 
servidores em ambientes de computação em nuvem. Em 
desktops e laptops, é usado principalmente por entusiastas e 
projetos de inclusão social.
Mac OS X: proprietário, pago, específico para computadores 
Apple. Usado por cerca de 5% dos desktops/laptops.
Smartphone
IOS: proprietário, específico para Apple Iphone.
Android: aberto, usado pelos demais fabricantes (Samsung, 
Motorola, LG, Sony etc.). Projeto baseado no Linux.
Agora que aprendemos sobre sistemas operacionais e firmwares, podemos nos perguntar:
Existem apenas esses dois tipos de softwares funcionais?
Não, existem outros tipos de softwares funcionais, como aplicativos de produtividade (por exemplo, processadores de texto, 
planilhas eletrônicas, softwares de gerenciamento de projetos), softwares de comunicação (por exemplo, clientes de e-mail, 
navegadores web, softwares de videoconferência) e softwares de segurança (por exemplo, antivírus, firewalls).
Mas o que é um software funcional? E qual é a sua importância no pensamento computacional?
Um software funcional é um programa que foi projetado para realizar uma função específica e resolver um problema em particular. 
Ele é desenvolvido para ser eficiente e confiável, e deve funcionar corretamente em uma variedade de condições. 
A importância do pensamento computacional na compreensão dos softwares funcionais é que ele ajuda as pessoas a entenderem 
como os programas são projetados e como funcionam, o que é fundamental para o uso efetivo e desenvolvimento de soluções 
tecnológicas.
🎬 O Software e a sua função
Vamos falar sobre o que é um software e qual a sua função. Um software, também conhecido como programa de computador, é 
responsável por atender a uma demanda computacional, ou seja, resolver um problema específico. Ele é o responsável por dizer 
à máquina quais são os passos a seguir para atender a essa demanda. Por exemplo, quando você está navegando na internet, 
assistindo a um episódio de uma série, ouvindo música ou conversando em uma rede social, cada um desses programas, ou 
softwares, segue uma sequência de passos, uma sequência de tarefas para resolver suas necessidades. Mas como todos esses 
programas chegaram até lá e como é possível que todos os programas estejam rodando ao mesmo tempo? Isso é possível graças 
a um outro software especial chamado sistema operacional.
O sistema operacional é um software que controla outros softwares. Ele determina como cada software irá utilizar os recursos do 
hardware, ou seja, da máquina. Em uma tradução literal do inglês para o português, "hardware" significa "duro" e "software" 
significa "suave" ou "programa". Portanto, software é o programa e hardware é a máquina. O sistema operacional também permite 
que você gerencie os programas instalados em sua máquina, possibilitando a instalação de novos programas e a remoção de 
programas existentes. Além disso, ele é responsável por determinar quais recursos do hardware cada software pode utilizar para 
executar suas atividades. Todo computador possui um sistema operacional para possibilitar seu funcionamento e permitir que você 
gerencie quais programas efetivamente deseja usar para resolver seus problemas.
Um software é uma série de comandos ou códigos binários, representados por 0s e 1s, onde cada código representa um sinal 
elétrico. O 0 representa a ausência de eletricidade e o 1 representa um pulso elétrico presente. Um software é composto por 
bilhões de circuitos. Segundo palavras de Bill Gates, um computador tem a capacidade de realizar tarefas incríveis, mas o fator 
que sempre definirá como esse computador funcionará é o ser humano. Isso porque um computador não pode se programar 
sozinho, sempre será necessário um programador humano para que um computador possa realizar alguma coisa.
Quando alguém aprende a programar, essa pessoa se torna responsável por criar o programa que irá transformar uma ideia em 
realidade. Programar oferece a oportunidade de criar conteúdo que faça a diferença não apenas para si mesmo, mas também 
T2 - M1/M2/M3 12
para sua comunidade e até mesmo para o mundo. O caminho para transformar uma ideia em um programa disponível para a 
sociedade começa com a criação de uma parte inicial chamada de código fonte. O código fonte é o conjunto de instruções que 
irão formar o software e é escrito em uma linguagem de programação. Existem diversos tipos de linguagens de programação, e 
um programa simples escrito por um programador experiente pode ser feito em poucas horas. No entanto, um software 
profissional com funcionalidades complexas pode envolver centenas de programadores e levar anos para ficar pronto, resultando 
em milhares de arquivos que compõem toda a complexidade do software.
Vamos falar sobre o que é um software de forma simples e clara. Um software, ou programa de computador, é responsável por 
resolver um problema ou atender a uma necessidade específica em um computador. Por exemplo, quando você navega na 
internet, assiste a um episódio de uma série, ouve música ou conversa em uma rede social, cada um desses programas precisa 
seguir uma sequência de passos para atender às suas necessidades.
Mas como todos esses programas funcionam ao mesmo tempo? Isso é possível graças a outro software especial chamado 
sistema operacional. O sistema operacional é o responsável por controlar outros softwares e determinar como cada programa 
utilizará os recursos do hardware do computador. Ele também permite que você gerencie os programas instalados em seu 
computador, como instalar novos programas ou remover programas existentes.
Um software é composto por uma série de comandos de código binário, que são representados por sinais elétricos de 0s e 1s. 
Bilhões de circuitos trabalham juntos para executar as tarefas necessárias. No entanto, é importante destacar que um computador 
sempre precisa ser programado por um ser humano. A programação é o processo de criar o código fonte, que são as instruções 
que compõem o software, usando uma linguagem de programação específica.
Os programas podem ser escritos em diferentes linguagens de programação, e um programa simples pode ser criado em poucas 
horas por um programador experiente. No entanto, programas profissionais com funcionalidades complexas podem envolver 
centenas de programadores e levar anos para serem concluídos, resultando em milhares de arquivos que compõem a 
complexidade do software.
É comum que surjam problemas nos programas, chamados de bugs, mesmo após o lançamento para o público. O termo "bug" 
vem da época em que os computadores eram programados de forma física, com circuitos eletrônicos, e ocasionalmente insetos 
causavam problemas nos circuitos, causando falhas no funcionamento do computador. Os bugs são corrigidos pelos 
programadores por meio de atualizações de software ou novas versões lançadas periodicamente, muitas vezes com melhorias em 
relação à versão original.
Existem duas formas principais de criar um software: ele pode ser patenteado, o que significa que pertence a uma pessoa ou 
empresa, visando lucro financeiro; ou pode ser licenciado para uso público, o que significa que não pode ser vendido.
O que acontece quando executamos o Firefox.exe em um computador.
O SO copia as intruções do Firefox do disco para a RAM e, em seguida, a CPU executa as instruções na RAM.
O sistema operacional (SO) é o nome dado ao conjunto de programas administrativos e de supervisão que intermedeiam a 
interação humano-computador. 
Entre as funções do SO, está receber o comando do usuário para iniciar programas (exemplo: duplo clique) e realizar as tarefas 
administrativas necessárias para que o programa seja executado. 
Em específico, quando o usuário dá um duplo clique em um arquivo de programa, o SO é quem comanda o carregamento do 
programa, ou seja, a cópia do conteúdo do arquivo de programa do disco para a RAM. Depois, ele indica à CPU onde, na RAM, 
está aprimeira instrução do programa a ser executado.
M3 - Tipos de linguagens de programação
Conceito
Nos sistemas de computação modernos, é incomum escrever códigos diretamente em linguagem de máquina. Isso ocorre porque 
as instruções são muito simples e há um grande número delas, tornando difícil para os humanos fazerem esse processo.
Em vez disso, os programadores escrevem código em linguagens de programação de "alto nível", que têm recursos mais úteis e 
poderosos do que as operações simples encontradas no código da máquina.
Algumas das estruturas de alto nível usadas pelos programadores incluem:
Estruturas de repetição (loops) que permitem a execução repetida de um conjunto de instruções
A função print(), que imprime algo na tela
T2 - M1/M2/M3 13
A estrutura condicional (if) que permite testar uma condição e executar um conjunto de instruções se essa condição for 
atendida.
Esses recursos de alto nível não estão diretamente presentes no código da máquina de "baixo nível", mas são adicionados por 
linguagens de programação, como JavaScript, Java, Python, C, C++, entre outras.
Tipos de linguagem de programação
Essas categorias definem como a linguagem funciona e quais são as suas características. Algumas dessas categorias são:
Linguagens de programação de baixo nível: elas são próximas à linguagem de máquina e, por isso, são muito rápidas e 
eficientes. Exemplos incluem Assembly e C.
Linguagens de programação de alto nível: são mais fáceis de aprender e de usar do que as linguagens de baixo nível. Elas 
têm muitos recursos úteis, como estruturas de repetição e condicionais. Exemplos incluem Python, Java e C++.
Linguagens de programação interpretadas: são traduzidas em tempo real, ou seja, enquanto o programa está sendo 
executado. Exemplos incluem JavaScript e Python.
Linguagens de programação compiladas: são traduzidas antes da execução do programa. Isso torna o processo de 
execução mais rápido. Exemplos incluem C e C++.
Essas categorias ajudam os programadores a escolher a melhor linguagem para cada situação, levando em consideração a 
velocidade de execução, facilidade de uso, recursos disponíveis e outros fatores importantes.
Para entender como uma linguagem de programação funciona, precisamos saber em que categoria ela se encaixa. Existem várias 
classificações, mas vamos simplificar e agrupá-las em algumas categorias.
Essas categorias definem como a linguagem funciona e quais são as suas características. Algumas dessas categorias são:
Linguagem Compilada
A Linguagem Compilada é um tipo de linguagem de programação que precisa passar por um processo de tradução antes de 
ser executada pelo computador. Esse processo é chamado de compilação e transforma o código escrito em uma linguagem de 
programação de alto nível, como C ou C++, em código de máquina que o computador pode entender e executar.
A compilação é feita antes do código ser executado, e o resultado final é um arquivo executável que pode ser rodado 
diretamente pelo sistema operacional, sem precisar passar por mais nenhum processo de tradução.
As linguagens compiladas têm algumas vantagens em relação às linguagens interpretadas, como a execução mais rápida e a 
capacidade de gerar código mais eficiente em termos de uso de recursos do computador.
Exemplos de linguagens compiladas incluem C, C++, Java, Fortran e Ada.
Resumindo nas linguagens de programação compiladas. o código escrito pelo programador é transformado em código de 
máquina pelo compilador antes de ser executado pelo computador. Isso torna a execução do programa mais rápida e eficiente.
São aquelas em que o processo de tradução (compilação) é feito com antecedência e o código é necessariamente executável
🎬 Linguagem Compilada
Nesse vídeo vamos falar sobre linguagens compiladas. Vamos lá! Softwares são conjuntos de instruções que o computador 
executa para resolver problemas ou representar fenômenos do mundo real. Cada CPU possui um conjunto de instruções chamado 
"instruction set", que é capaz de executar. Essas instruções são geralmente em código binário, o que torna difícil para os humanos 
escreverem diretamente em linguagem de máquina, pois é de baixo nível e mais difícil de entender.
Para facilitar a vida dos desenvolvedores, foram criadas as linguagens de programação, incluindo as linguagens compiladas, 
como a linguagem C, que ainda é muito usada no mundo, inclusive para desenvolver sistemas operacionais. Em linguagens 
compiladas, o desenvolvedor escreve as instruções usando a linguagem e, em seguida, utiliza um software chamado compilador 
específico para aquela linguagem de programação. O compilador analisa a sintaxe e a semântica do código escrito e verifica se 
estão de acordo com as regras definidas pela linguagem. Isso é semelhante a uma professora de português corrigindo a 
gramática de um texto, sem olhar para o sentido do que foi escrito.
Depois que o compilador verifica e corrige eventuais erros de gramática e semântica, ele converte e traduz as instruções para a 
linguagem de máquina específica que o computador é capaz de entender. Isso é o que chamamos de programa. As instruções já 
traduzidas para linguagem de máquina são chamadas de arquivo binário, pois estão prontas para serem executadas pelo 
computador.
T2 - M1/M2/M3 14
Uma vantagem das linguagens compiladas é que o programa já compilado é executado em uma linguagem binária específica, o 
que geralmente resulta em um melhor desempenho na CPU em comparação com linguagens interpretadas, por exemplo.
Quando se utiliza uma linguagem compilada, é necessário executar um programa para traduzir os 
arquivos-fonte, legíveis em linguagem de alto nível, em código executável. As linguagens compiladas 
têm a vantagem de produzir código de alta performance, o qual está ajustado para o funcionamento 
em um tipo específico de processador ou arquitetura de processador. Aplicativos compilados, 
chamados de código binário, só podem rodar no tipo de computador para o qual foram compilados, 
uma vez que esses aplicativos consistem, na realidade, em instruções em linguagem de máquina, 
entendidas e executadas pelo microprocessador. (INDRUSIAK, 1996, p. 4)
Vamos explicar um exemplo de como a linguagem compilada funciona:
Suponha que o programador queira criar um programa para imprimir a mensagem "Bom dia!" na tela. Ele pode escrever o código-
fonte na linguagem de programação que preferir, nesse caso, C++.
O código-fonte é então processado pelo compilador, que transforma o código de alto nível em código de máquina, que é 
executável pelo computador. O código de máquina é uma sequência de instruções muito simples que a CPU pode executar 
diretamente.
a = “Bom dia”; 
b = a + “!”;
No exemplo, o compilador olha para o código-fonte escrito pelo programador e traduz as duas linhas de código em código de 
máquina, que é executado pela CPU para imprimir a mensagem "Bom dia!" na tela.
Dessa forma, a linguagem compilada permite que os programadores escrevam em uma linguagem mais amigável, enquanto o 
compilador se encarrega de transformar o código em uma sequência de instruções que a CPU pode executar.
Código Fonte
Código-fonte é o conjunto de instruções escritas em uma linguagem de programação que o programador utiliza para 
desenvolver um software. 
É como se fosse o esqueleto do programa, onde estão todas as instruções que o computador deve seguir para executar o 
software. 
É a partir do código-fonte que o compilador irá gerar o código de máquina, que é a linguagem que a CPU consegue entender 
e executar. O código-fonte pode ser escrito em diversas linguagens de programação, como C++, Java, Python, entre outras. 
É a partir do código-fonte que os programadores conseguem criar programas de computador de todos os tipos e tamanhos.
Resumindo
O código-fonte é um conjunto de instruções escritas por um programador em uma linguagem de programação que os 
computadores não conseguem entender diretamente. 
É a partir dessas instruções que é possível criar programas de computador e aplicativosque executam tarefas específicas. O 
código-fonte é como a receita de um bolo, que precisa ser seguida para que o bolo seja feito corretamente. 
O compilador é uma ferramenta usada para traduzir o código-fonte em um formato que o computador possa entender e 
executar.
Vamos entender isso de uma maneira mais simples.
Quando os desenvolvedores escrevem um programa, eles o fazem em uma linguagem de programação, que é uma linguagem 
mais fácil para os seres humanos entenderem. Mas as máquinas não entendem essa linguagem, elas só entendem código de 
máquina, que é composto de uma série de números.
Então, para que o programa seja executado, o código-fonte precisa ser convertido em código de máquina. É aí que entra o 
compilador, um software que traduz o código-fonte em código de máquina.
Por exemplo, imagine que um programa tenha uma instrução "if" no código-fonte, mas não existe uma instrução específica em 
código de máquina para isso. Nesse caso, o compilador traduz essa instrução em uma sequência de instruções de código de 
máquina que chegam ao mesmo resultado.
T2 - M1/M2/M3 15
Assim, o código-fonte é convertido em um arquivo executável, que pode ser distribuído e usado em diferentes computadores.
⚠ A compilação só precisa ser feita pelo desenvolvedor/programador uma vez.
Para que um programa escrito em linguagem compilada possa ser utilizado por outras pessoas, é necessário que ele passe pelo 
processo de compilação, em que o código-fonte escrito pelo desenvolvedor é traduzido para linguagem de máquina, que é a 
linguagem que o computador entende e executa. Dessa forma, é criado um arquivo executável que pode ser distribuído para que 
outras pessoas possam rodar o programa em seus computadores, desde que sejam compatíveis com o código de máquina 
gerado. Vale destacar que os usuários finais não precisam ter o código-fonte nem o compilador para utilizar o programa. 
No entanto, é importante saber que não é possível obter o código-fonte original a partir das instruções em código de máquina do 
arquivo executável, ou seja, não é possível realizar a tradução reversa.
Não é possível, a partir das instruções em código de máquina do Firefox.exe, realizar a tradução reversa e obter o código-fonte 
em linguagem de alto nível originalmente escrita pelo(s) programador(es). É até possível obter uma versão imperfeita do código-
fonte original, mas ela ficará bem distante do ideal.
Linguagem dinâmica ou interpretada
Também conhecida como Linguagem Tipo Script
A linguagem dinâmica ou interpretada é um tipo de linguagem de programação que não precisa passar pela etapa de 
compilação para se tornar um programa executável. Em vez disso, o código-fonte é interpretado por um software chamado de 
interpretador.
Ao contrário das linguagens compiladas, as linguagens dinâmicas são mais flexíveis e permitem que o programador faça 
alterações no código-fonte enquanto o programa está sendo executado, sem a necessidade de compilar novamente. Isso torna 
o processo de desenvolvimento mais ágil e rápido.
Um exemplo de linguagem dinâmica é o Python. Quando um programador escreve um código em Python, ele pode 
simplesmente executá-lo em um interpretador Python sem a necessidade de passar pelo processo de compilação. O 
interpretador Python lê o código-fonte linha por linha e executa as instruções, gerando a saída esperada.
No entanto, como o interpretador precisa ler e executar o código-fonte a cada vez que o programa é executado, as linguagens 
dinâmicas podem ter um desempenho um pouco mais lento em comparação com as linguagens compiladas. Além disso, o 
código-fonte em linguagens dinâmicas pode ser mais difícil de ser protegido, uma vez que qualquer pessoa pode ler e alterar o 
código-fonte em tempo de execução.
Em resumo, a linguagem dinâmica ou interpretada é um tipo de linguagem de programação que permite que o código-fonte 
seja interpretado por um software em tempo de execução, sem a necessidade de passar pela etapa de compilação. Isso torna 
o processo de desenvolvimento mais ágil e flexível, mas pode afetar um pouco o desempenho do programa.
Resumindo
A linguagem de programação interpretada ou dinâmica é aquela que não precisa ser compilada antes de ser executada. 
Em vez disso, o código-fonte é executado diretamente pelo interpretador, que lê o código linha por linha e executa as 
instruções correspondentes. 
Essas linguagens são mais flexíveis e permitem alterações no código durante a execução do programa, o que é útil em alguns 
casos. Além disso, o código-fonte pode ser facilmente distribuído e executado em diferentes plataformas sem a necessidade 
de recompilação. 
Processo de disponibilização de um programa escrito em linguagem compilada.
T2 - M1/M2/M3 16
Alguns exemplos de linguagens interpretadas são Python, Ruby, JavaScript e PHP.
🎬 Linguagem dinâmica ou interpretada
Neste vídeo, vamos falar sobre linguagens interpretadas. Linguagens interpretadas são linguagens de programação em que o 
software escrito pelo desenvolvedor não é compilado em um código binário específico para a CPU em que será executado, como 
acontece em linguagens compiladas. Em vez disso, um programa intermediário chamado interpretador é usado no momento da 
execução. O interpretador lê as instruções escritas pelo desenvolvedor e as interpreta em tempo real para que o computador 
possa executá-las.
Ao contrário das linguagens compiladas, em que o código fonte é transformado em código binário antes da execução, nas 
linguagens interpretadas o código fonte é executado diretamente pelo interpretador. Isso significa que o desenvolvedor escreve 
instruções em um nível mais alto, que é mais fácil de entender para os humanos, e o interpretador se encarrega de traduzi-las em 
instruções de baixo nível que o computador pode executar.
Uma das vantagens das linguagens interpretadas é que elas são mais fáceis de entender e escrever, o que pode aumentar a 
produtividade do desenvolvedor. Porém, uma desvantagem é que os programas escritos em linguagens interpretadas tendem a 
ser executados mais lentamente em comparação com programas escritos em linguagens compiladas.
No entanto, as linguagens interpretadas têm ganhado popularidade, sendo algumas das mais usadas atualmente, como Python, 
Java e JavaScript, especialmente para o desenvolvimento web. Isso ocorre porque o mercado de desenvolvedores de software 
enfrenta uma escassez de profissionais, e a maior produtividade alcançada com linguagens interpretadas tem sido considerada 
uma vantagem positiva, mesmo que os programas possam ser um pouco mais lentos para executar.
Linguagem dinâmica é um tipo de linguagem de programação que é executada em tempo real, utilizando bibliotecas para 
combinar e executar funções complexas. Algumas linguagens dinâmicas populares são Java, JavaScript e Python.
Em vez de usar um compilador, como nas linguagens estáticas, as linguagens dinâmicas utilizam um software especial chamado 
interpretador. O interpretador lê o código-fonte escrito em uma linguagem como Java, JavaScript ou Python e executa o programa.
Um exemplo de linguagem interpretada é o JavaScript, que vem embutido em navegadores como o Firefox, Chrome, Internet 
Explorer ou Edge. 
Quando um website contém código JavaScript, o interpretador do navegador executa o código linha por linha, uma de cada vez.
a = 1; 
 
b = a + 1;
Portanto, neste exemplo, o interpretador diria: “Acho que preciso de um nome de variável ´a´, e preciso colocar o valor ‘1’ nela”. 
Então, após executar essa linha, ele seguiria em frente e interpretaria/executaria a próxima linha, e assim por diante.
Podcast
Ouvir
Tendências
De forma geral, a programação de computadores está caminhando para o uso de linguagens dinâmicas ou interpretadas, que são 
mais fáceis de programar. Isso é importante porque há uma falta de programadores qualificados em todo o mundo. É mais 
atraente para empresas usar menos horas de trabalho dos programadores, mesmo que isso signifique que o programa final rode 
mais lentamenteno computador.
O recurso mais escasso na programação de computadores é o programador. As CPUs estão cada vez mais baratas e poderosas, 
então a velocidade do programa não é tão importante quanto o tempo de desenvolvimento. A tendência é que o programador seja 
ainda mais valorizado no futuro.
Para tentar obter o melhor dos dois mundos (linguagens compiladas e interpretadas), foi criada a Just in Time Compiler (JIT). O 
JIT tenta compilar rapidamente uma parte do código-fonte antes de executá-lo, para obter um programa que rode mais rápido na 
CPU. Isso funciona muito bem e é uma ótima solução para quem quer a simplicidade de uma linguagem dinâmica e o 
desempenho de uma linguagem compilada.
T2 - M1/M2/M3 17
Navegadores modernos de Internet, como o Firefox, o Chrome, o Microsoft Internet Explorer e o 
Microsoft Edge, agora embutem JITs para código JavaScript. Assim, na verdade, quando você está 
executando o código JavaScript dentro do navegador, o JIT examina trechos do código dinâmico 
(Javascript) que estão sendo executados com muita frequência e compila o código nativo desses 
trechos em tempo real.
Quando falamos de interpretação de código, ela é mais usada em trechos de código mais complexos, como uma repetição, por 
exemplo. Já o JIT (compilador Just In Time) é usado para criar blocos de código que são executados rapidamente na memória.
Isso é feito para aumentar o desempenho de linguagens interpretadas, como JavaScript e Java. Embora o uso do JIT melhore a 
performance, ainda é inferior ao desempenho de linguagens compiladas, como C e C++.
O JIT é uma tecnologia muito usada em navegadores de internet para melhorar o desempenho do JavaScript, que é uma 
linguagem interpretada. Por causa disso, os navegadores estão mais rápidos e eficientes hoje em dia.
Considerações Finais
Neste conteúdo, você mergulhou na representação do que é um software para computadores, reconhecendo alguns softwares 
funcionais que fazem parte do seu cotidiano. 
No fim, aproximou-se da linguagem de programação, podendo, com isso, perceber como a linguagem e sua dinâmica são 
atualizadas continuamente.
Podcast
ouvir
Referências
CARVALHO, A.; LORENA, A. Introdução à Computação: hardware, software e dados. 1. ed. Rio de Janeiro: LTC, 2017.
DALE, N.; LEWIS J. Ciência da Computação. 4. ed. Rio de Janeiro: LTC, 2011.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à Ciência da Computação. 2. ed. São Paulo: Cengage, 2010.
FLANAGEN, D. Javascript: o guia definitivo. 6. ed. Porto Alegre: Bookman, 2013.
GLENN, J. Ciência da Computação: uma visão abrangente. 11. ed. Porto Alegre: Bookman, 2013.
INDRUSIAK, L. S. Linguagem Java. Consultado em meio eletrônico em: 28 abr. 2020.
TORETTA, L. Market Share Statistics for Internet Technologies. netmarketshare.com. Consultado em: 27 abr. 2020.
Explore +
Livro Autonomia, liberdade e software livre, de Doriedson de Almeida e Nicia Riccio
O livro "Autonomia, Liberdade e Software Livre" escrito por Doriedson de Almeida e Nicia Riccio é uma obra importante para 
refletir sobre o movimento de código aberto e sua relação com a autonomia, a liberdade e a democracia. A obra apresenta uma 
série de artigos e ensaios que abordam diferentes aspectos desse tema.
Os autores defendem a importância do software livre para a sociedade e destacam como o movimento de código aberto pode ser 
visto como uma luta pela liberdade e autonomia das pessoas na era digital. Eles apontam que o software livre é uma alternativa 
importante para garantir que a tecnologia esteja disponível para todos, independentemente da sua capacidade de pagar por ela.
Ao longo do livro, os autores discutem diversos aspectos relacionados ao software livre, como a sua história, os seus princípios, 
as suas vantagens e desvantagens em relação ao software proprietário. Eles também analisam o papel do software livre na 
educação, na ciência, na cultura e na economia, além de destacar o potencial do movimento de código aberto para a promoção da 
democracia e da transparência.
Em suma, "Autonomia, Liberdade e Software Livre" é uma obra importante para quem se interessa pelo tema da tecnologia e da 
liberdade, trazendo importantes reflexões sobre o papel do software livre na sociedade contemporânea.
T2 - M1/M2/M3 18
Artigo Proposta de integração da engenharia de software nas estratégias empresariais, de 
Adalberto Reis e Ivanir Costa
O artigo "Proposta de integração da engenharia de software nas estratégias empresariais" é um texto que busca apresentar 
reflexões e propostas para a integração da engenharia de software nas estratégias empresariais. O texto foi escrito pelos autores 
Adalberto Reis e Ivanir Costa e publicado em um periódico científico.
A engenharia de software é uma área da computação que se dedica ao desenvolvimento de software de forma estruturada, 
seguindo métodos e técnicas para garantir a qualidade e eficiência do produto final. Já as estratégias empresariais referem-se às 
ações que uma empresa realiza para alcançar seus objetivos de longo prazo e se destacar no mercado.
O artigo apresenta a ideia de que a integração da engenharia de software nas estratégias empresariais pode trazer diversos 
benefícios, como maior eficiência na produção de software, redução de custos e aumento da competitividade da empresa no 
mercado.
Os autores também propõem uma metodologia para a integração da engenharia de software nas estratégias empresariais, que 
envolve a identificação das necessidades da empresa em termos de software, a seleção das melhores práticas de engenharia de 
software para atender a essas necessidades, a definição de um plano de ação para implementar as práticas escolhidas e a 
avaliação constante dos resultados alcançados.
Em resumo, o artigo apresenta importantes reflexões sobre a integração da engenharia de software nas estratégias empresariais, 
mostrando como essa integração pode trazer benefícios para as empresas e propondo uma metodologia para colocar essa ideia 
em prática.
Artigo A eficácia do software de educação ambiental utilizado no ensino à distância, de Franklin 
Porto Jr.
O artigo "A eficácia do software de educação ambiental utilizado no ensino à distância" de Franklin Porto Jr. aborda a importância 
da utilização de softwares educacionais voltados para a conscientização e preservação do meio ambiente no ensino a distância. O 
autor faz uma análise da eficácia do software "Ambientaliza", desenvolvido com o objetivo de promover a conscientização 
ambiental por meio de atividades lúdicas.
O estudo apresentado no artigo teve como objetivo avaliar a eficácia do software Ambientaliza em comparação com outras 
metodologias de ensino na promoção da conscientização ambiental. Para isso, foi realizada uma pesquisa com estudantes do 
ensino médio, utilizando um questionário para avaliar o conhecimento sobre questões ambientais e uma escala de atitudes 
ambientais para avaliar a percepção dos estudantes sobre a importância da preservação do meio ambiente.
Os resultados mostraram que o software Ambientaliza apresentou uma melhora significativa na percepção dos estudantes em 
relação à importância da preservação do meio ambiente, bem como no conhecimento sobre questões ambientais, em comparação 
com outras metodologias de ensino utilizadas.
O estudo destaca a importância da utilização de softwares educacionais no ensino a distância, especialmente na conscientização 
e preservação do meio ambiente, e a eficácia desses recursos em comparação com outras metodologias de ensino. O artigo 
evidencia a articulação de três temas extremamente atuais: pensamento computacional, meio ambiente e educação a distância, 
ressaltando a importância do uso da tecnologia na promoção da conscientização e preservação ambiental.