Prévia do material em texto
Fundamentos de Software Osmar Betazzi Dordal 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 Linguagem de Programação • Linguagem declarativa • Prolog e SQL • Linguagem de alto nível • C, C++, Java, JavaScript, Python e etc... • Linguagem de montagem (baixo nível): • Assembly (possui a mesma estrutura e conjunto de instruções que a linguagem de máquina) • Linguagem de máquina: • 0010110011101 Linguagem declarativa Linguagem de alto nível Linguagem de montagem (Assembly) Linguagem de máquina Nível de abstração 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 • Gerenciamento de memória • Sistema de ficheiros (arquivos) • Driver de dispositivo • Rede de computadores (TCP/IP, UDP) • Segurança (proteção de memória e de processos) • 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. Usuário Software de aplicação Sistema Operacional Hardware 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.