Fundamentos de Software
FUNDAMENTOS DE SOFTWARE
Objetivos
Embasar sobre programação, linguagens
Dialogar sobre o modo os tipos de linguagens de programação
Identificar as responsabilidades do SO e das linguagens de programação
Conteúdos
Tipos de linguagens de programação
Utilização das linguagens
Domínio básico dos tipos de linguagens
Osmar Betazzi Dordal
Linguagem de Programação
Linguagem declarativa
• Linguagem declarativa
• Prolog e SQL Linguagem de alto nível
• Linguagem de alto nível Nível de
Linguagem de montagem abstração
• C, C++, Java, JavaScript, Python e etc... (Assembly)
• Linguagem de montagem (baixo nível):
• Assembly (possui a mesma estrutura e conjunto Linguagem de máquina
de instruções que a linguagem de máquina)
• Linguagem de máquina:
• 0010110011101
Linguagem Baixo Nível
• As linguagens de Baixo Nível são aquelas voltadas para a máquina, ou seja as
que são escritas utilizando as instruções do microprocessador do
computador.
• São genericamente chamadas de linguagens Assembly. Os programas
escritos com Alto Nível geralmente podem ser convertidos com programas
especiais para Baixo Nível.
Linguagem Baixo Nível
• Exemplo: Assembly
Correspondente em C
Linguagem Baixo Nível
• Vantagens:
• Os programas são executados com maior velocidade de processamento;
• Os programas ocupam menos espaço na memória;
• Desvantagens
• Em geral, programas em Assembly tem pouca portabilidade, isto é, um código gerado
para um tipo de processador não serve para outro;
• Códigos Assembly não são estruturados, tornando a programação mais difícil.
Linguagem Alto Nível
• São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais
estruturada, tornando o seu código mais fácil de entender.
• São linguagens independentes de arquitetura.
• Um programa escrito em uma linguagem de alto nível, pode ser migrado de uma
máquina a outra sem nenhum tipo de problema.
• Permitem ao programador se esquecer completamente do funcionamento
interno da máquina.
• Sendo necessário um tradutor que entenda o código fonte e as características da
máquina.
Linguagem Alto Nível
• Exemplos: Lua, Java, C#, C++
Linguagem Alto Nível
• Vantagens:
• Por serem compiladas ou interpretadas, têm maior portabilidade, podendo ser
executados em várias plataformas com pouquíssimas modificações.
• Em geral, a programação é mais fácil.
• Desvantagens
• Em geral, as rotinas geradas (em linguagem de máquina) são mais genéricas e,
portanto, mais complexas e por isso são mais lentas e ocupam mais memória.
Sistema Operacional vs
Linguagens de Programação
• Sistema Operacional é responsável imediato por gerenciar todo o hardware
• Gerência de processos
• Interrupção de hardware Usuário
• Gerenciamento de memória
Software de aplicação
• Sistema de ficheiros (arquivos)
• Driver de dispositivo Sistema Operacional
• Rede de computadores (TCP/IP, UDP)
• Segurança (proteção de memória e de processos) Hardware
• E/S
• Linguagem de Programação visa facilitar a especificação de tarefas a um
computador, elas são interpretadas ou compiladas para código de máquina.
REFERÊNCIAS
1. Sistemas Operacionais Modernos, Andrew S. Tanenbaum e Herbert Bos,
4th Ed., Pearson, 2015.
Bom Estudo!
QUESTÕES
• 1. Uma das vantagens da linguagem de alto nível sobre a de baixo nível é?
• A. Os programas são executados mais rapidamente.
• B. É de dificil codificação.
• C. Ocupa menos espaço em memória.
• D. pode ser executada em várias plataformas com quase nenhuma modificação.
• E. Não é uma linguagem estruturada.
QUESTÕES
• 2. Um software de aplicação pode ser considerado uma ponte entre...
• A. o processador e a memória cache.
• B. o usuário e a memória principal.
• C. o usuário e o Sistema operacional.
• D. o Sistema Operacional e o Hardware.
• E. nenhuma das alternativas.