Fundamentos de Sistemas Operacionais Aula 2 Princípios de Programação Prof. Belarmino Linguagem de Computadores • • • Internamente os computadores usam instruções e armazenam os dados no formato numérico binário ou digital – isto é combinações de 0 e 1 Estes dados podem estar dentro da memória, contidos em arquivos, em execução nos processadores ou mesmo “em trânsito”. Externamente a maquina se comunica com os seres humanos fazendo a conversão desses dados em caracteres, números, cores, sons, etc. Troca de informação entre componentes • • • • • Os dispositivos de entrada são responsáveis por converter os dados para o formato interno e os de saida para o formato externo. Alguns dispositivos como o hard-disk porém trabalham apenas com o formato interno armazenando e fornecendo dados no formato binário. Estes dados são passados para o processador que os coloca na memória. Os programas responsáveis pelos processamento dos dados também são colocados na memória juntamente com os dados. Seguindo as intruções destes programas os dados são processados e eventualmente retornados para algum dispositivo de saída. Linguagem de Máquina • A linguagem de máquina é um grupo de códigos que fazem com que o processador execute um determinado comando (instrução). ( Tente executar o programa acima ) Em geral os processadores de uma mesma arquitetura seguem o mesmo conjunto de instruções. Por exemplo o Pentium e o Core Duo entendem as mesmas instruções porque pertencem a mesma arquitetura X86. Um exemplo de instruções em linguagem de máquina seria: • • – – – 001 002 003 - mover o dado de A para B - multiplicar o dado em B por 2 - mover o dado de B para A Linguagens de Programação • • Seria virtualmente impossivel para um ser humano criar um grande programa como o Windows ou Excel com milhões de instruções escrevendo diretamente na Linguagem de Maquina. Por isso os programadores usam linguagens intermediarias – um pequeno conjunto de instruções simples que são um meio termo entre a lingua “normal” e a dos “computadores”. Linguagens de Alto e Baixo Nivel • • • Existem básicamente dois tipos de linguagem de programação quanto ao nível de proximidade com o “entendimento” pelo homem ou pela máquina. : As de Baixo nivel são muito próximas da usada pela maquina – na verdade são quase nomes “mnemônicos” para os codigos binários. São muito rápidas mas mais dificeis de usar e aprender como o Assembler. As linguagens de Alto nivel por outro lado são próximas da linguagem humana (mais precisamente o Inglês). Não produzem programas tão “velozes” mas são mais simples e faceis de usar como o Cobol, Java, Visual Basic, etc. Interpretadores e Compiladores • • • • Entretanto sabemos que a máquina só entende linguagem binária. Então para transformar a linguagem de baixo ou alto nivel em linguagem máquina é necessário usar programas especiais chamados compiladores interpretadores. Eles convertem os programas de alguma linguagem escritos em em forma texto ( chamados FONTE ou SOURCE ), em um formato binário (OBJETO EXECUTAVEL) na linguagem de máquina que o processador 'entenda'. São estes programas na forma binária que o programa executa de fato !!! de ou de ou Algoritimos • • • • Programas são portanto uma sequencia de comandos numa linguagem artificial qualquer que quando executados pelo computador produzem um resultado ou uma função desejada pelo usuário. Para isso essa sequencia deve obecer uma certa ordem que é chamada de LÓGICA ou ALGORITIMO do programa. Há varias maneiras de escrever essa sequencia e no exemplo esta mostrada uma das mais simples: O Diagrama de blocos. Existem outras formas de escrever essas sequências como por exemplo os diagramas UML. Outras Classificações: • Existem outras classificações das linguagens em uso levando em consideração determinadas caracteristicas como por exemplo: • • A “interface”: Texto (Cobol, Pascal) Gráfica (Visual C) O “paradigma” de implementação: Orientada a Objeto (Visual Basic ) ou Procedural (Cobol) A “destinação” básica: Cientificas (LISP, Algol, APL ADA), Comerciais ( Cobol ), Web (ASP, PHP, Ruby) Quanto ao ambiente de execução: Server ( Perl, ASP ) ou Client ( JavaScript, Flash ) • • Produtos das Linguagens de Programação • Como “produtos” dos programas temos essencialmente: • • Os Sistemas Operacionais: Windows, Linux, Z/OS, Vax VMS Os diversos programas aplicativos: Excel, Word, Oracle, DB2, Internet Explorer, Firefox, Outlook, Midia Player, Messenger. Os diversos programas utilitarios: Antivirus, Firewall, Backup, Java, etc ... • Principios de Programação FIM