Baixe o app para aproveitar ainda mais
Prévia do material em texto
Computação Básica – carlacastanho@cic.unb.br Algoritmos e Programação de Computadores Disciplina: 116301 Profa. Carla Denise Castanho Prof. Marcio Victorino Universidade de Brasília – UnB Instituto de Ciências Exatas – IE Departamento de Ciência da Computação – CIC 1 Computação Básica – carlacastanho@cic.unb.br 2.4. Sistemas de Software 2 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software Software: São instruções escritas em linguagem de programação que dirão ao computador o que fazer e auxiliarão o usuário em suas atividades. Ou seja, os programas e os sistemas de programação utilizados por um computador e que permitem atender às necessidades do usuário. Exemplos - Sistemas Operacionais - Compiladores - Interpretadores - Utilitários - Aplicativos - Gerenciadores de Banco de Dados - Editores de Texto - Editores Gráficos - Planilhas Eletrônicas - Programas para Lazer 3 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software SISTEMA OPERACIONAL: O sistema operacional cria um ambiente onde os usuários podem preparar seus programas e executá-los sem se preocupar com detalhes de hardware. Um conjunto de programas, que desempenham rotinas necessárias ao funcionamento do computador, tais como: gerenciamento da memória administração dos dados acionamento dos dispositivos execução de programas utilitários 4 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software SISTEMA OPERACIONAL: Pode ser considerado um programa intérprete e um gerenciador das atividades realizadas entre o usuário e o computador/hardware. Até pouco tempo atrás cada SO era desenvolvido em consonância com as características de determinado microprocessador. Hoje, não mais. Exemplos: Linux, Unix, Windows, Mac OS X, Chrome OS, Windows CE,Symbian, iOS, Android, MeeGo http://en.wikipedia.org/wiki/List_of_operating_systems 5 Computação Básica – carlacastanho@cic.unb.br 6 http://www.w3counter.com Top 500 Supercomputadores http://www.top500.org Estatísticas de uso dos Sistemas Operacionais Sistemas de Software Computação Básica – carlacastanho@cic.unb.br Sistemas de Software LINGUAGEM DE PROGRAMAÇÃO: É um conjunto de termos (vocabulário) e regras (sintaxe) que permitem a formulação de instruções a um computador. Permite construir programas para a resolução de problemas, (construção de aplicativos, utilitários e até de sistemas operacionais). Existem várias linguagens diferentes, cada uma com recursos que facilitam aplicações específicas. Para um programador é mais importante compreender os fundamentos e técnicas da programação do que dominar esta ou aquela linguagem. 7 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software Linguagem de Máquina Todo processador é capaz de ler, decodificar e executar instruções APENAS na sua própria linguagem de programação, composta de sequências de bits, chamada de Linguagem de Máquina. Cada família de processadores é caracterizada por sua ISA (Instruction Set Architecture) ou Arquitetura do Conjunto de Instruções. Exemplos: Arquiteturas IA-32 (x86), HP PA-RISC, PowerPC, ARM, MIPS, Motorola 68000, SUN SPARC, 8051, ... Uma ISA pode ser implementada usando diferentes tecnologias. Ex.: x86 : i386, i486, Pentium, Pentium II, Pentium III, Pentium IV, Celeron, Centrino, Core, Core2, Core i7 (Intel), K-5, K-6, Sempron, Athlon, Opteron, Phenom, Phenom II, Turion (AMD) 8 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software Linguagem de Máquina A programação em linguagem de máquina foi realizada nos primeiros computadores (Marks, ENIAC, etc), pois é baseada na codificação direta das instruções em cartões perfurados (representação de 0 e 1). Ex.: 0000 0000 0001 1000 0001 1000 0010 0001 (instrução de 32 bits) ou 0x00181821 Com o conceito de programa armazenado, um programa pode ser manipulado como “dado” por outro programa, surgindo assim as primeiras ferramentas de programação - Montadores (Assembler) 9 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software Linguagem Assembly A fim de facilitar a programação dos computadores, as instruções em linguagem de máquinas são codificadas em instruções que podem ser lidas e entendidas mais facilmente por seres humanos, a Linguagem de Montagem ou Assembly. Ex.: add $2, $4, $2 # Reg[2] = Reg[4] + Reg[2] O programa Assembly, composto por uma sequência de instruções, é transformado pelo programa montador (Assembler) no programa em linguagem de máquina a ser executado pelo processador. 10 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software Linguagens de Programação Com o aumento da complexidade dos problemas a serem resolvidos, a forma de descrever uma solução (algoritmo) passou a ser melhor realizada utilizando-se linguagens de mais alto nível que a linguagem Assembly, isto é, linguagens mais próximas à linguagem humana. 1º Linguagem de alto nível : Plankalkül (Zuse, 1942~46) 1º de uso difundido: FORTRAN “IBM Mathematical FORmula TRANslation System” 1954 Breve história das linguagens pode ser obtida em: http://www.levenez.com/lang/ http://en.wikipedia.org/wiki/List_of_programming_languages 11 Computação Básica – carlacastanho@cic.unb.br Sistemas de Software Compilação x Interpretação Compilação: Dado um programa em uma linguagem de alto nível, o compilador gera um programa na linguagem de máquina desejada para ser posteriormente executado a partir do Sistema Operacional. Ex.: C, C++, Pascal, Basic, ... Interpretação: Dado um programa em uma linguagem de alto nível, o interpretador executa o programa, isto é, converte as instruções em comandos em linguagem de máquina durante o tempo de execução. Ex.: Javascript, Python, MatLab, Basic, ... 12 Computação Básica – carlacastanho@cic.unb.br 13 Compilação: Sistemas de Software Alguns compiladores apresentam o código executável diretamente (etapa transparente ao usuário) Código Fonte Código Executável Código Objeto Computação Básica – carlacastanho@cic.unb.br Compiladores e Interpretadores COMPILADOR Programa utilizado para traduzir o programa em uma linguagem de alto nível, para linguagem de máquina (código executável). Aparecem nesse processo dois tipos de ERROS, cuja correção consiste em boa parte da tarefa do programador: - Erros de compilação: sintaxe errada, que são mais fáceis de corrigir; - Erros de execução: podem ser fáceis de encontrar, como uma divisão por zero, ou podem ser mais difíceis de corrigir, originados por erros de raciocínio na elaboração do programa. programa fonte compilador Programa Executável Sistema Operacional Sistema Operacional Programa Executável Geração do programa executável Execução do programa 14 Computação Básica – carlacastanho@cic.unb.br Compiladores e Interpretadores INTERPRETADOR Programa que lê e executa uma instrução do programa em linguagem de alto nível por vez. Nenhuma fase intermediária de compilação é necessária. A execução do programa interpretado requer que o programa interpretador da linguagem esteja sendo executado no computador. programa fonte InterpretadorSistema Operacional Execução de um programa executável 15 Computação Básica – carlacastanho@cic.unb.br CONCLUSÃO 16 Para um programador é mais importante compreender os fundamentos e técnicas da programação do que dominar esta ou aquela linguagem.
Compartilhar