Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP Aula 1 Introdução à Computação Eventos históricos: 1) Primeiro computador a válvulas, o Eletronic Numeric Integrator And Calculator (ENIAC). 2) Arquitetura de von Neumann (1940); 3) Invenção do transistor na Bell Laboratories (1948); 4) Desenvolvimento das linguagens de programação de “alto nível” Cobol e Fortran (1950-1960); 5) Invenção do circuito integrado (CI) na Texas Instruments (1958); 6) Desenvolvimento do microprocessador pela Intel (1970); 7) Lançamento, pela IBM, do computador pessoal (1981). Arquitetura de von Neumann: (programa de computador fixo X computador de programa armazenado) • Características: – Codificar as instruções de uma forma possível de ser armazenada na memória do computador. Von Neumann sugeriu que fossem usados uns e zeros. – Armazenar as instruções na memória, bem como toda e qualquer informação necessária a execução da tarefa, e – Quando processar o programa, buscar as instruções diretamente na memória. – Pode-se "escrever programas que escrevem programas." Arquitetura de von Neumann: Computadores: • Hardware: – Componentes físicos de um sistema de computação. • Software: – Sequência de instruções a serem seguidas e/ou executadas pelo hardware. Hardware: Memória Principal Unidades de Entrada CPU ULA Memória Secundária Unidades de Saída Computadores – Arquitetura Básica • Unidade Central de Processamento (CPU): – É o centro de controle de todo o sistema, onde os cálculos são feitos e as decisões são tomadas. É esta parte que interpreta e executa todas as instruções do computador. • Memória Principal: – A CPU usa a memória do computador para guardar as informações com as quais trabalha. Quando o computador é reinicializado ou desligado, as informações podem ser perdidas. Computadores – Arquitetura Básica • Dispositivos de entrada e saída: – São todos os meios de comunicação entre o computador e os seus usuários (sejam pessoas ou outras máquinas). • Memória Secundária: – Função de guardar os dados que não estão sendo processados no momento. Mesmo desligando o computador, estas informações não se perdem. Computadores - Software • Software Básico ou Sistema Operacional: – É um programa ou um conjunto de programas que faz papel de intermediário entre o aplicativo (programa) e o hardware; – É um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados. Sistema Operacional • Linux: – Desenvolvido em 1991 por Linus Torvalds e baseado no sistema operacional Unix; – Exemplo de sucesso de software aberto; – Maior aplicação em servidores (Google possui cerca de 450.000 servidores linux); – Plataformas de jogos (PlayStation 2 e 3); – Telefones celulares; Linguagens de Programação • Cada linguagem de programação obedece à regras específicas. Essas regras de sintaxe definem como são expressadas as instruções a serem executadas; • Linguagem de Máquina: – Conjunto de códigos binários que são compreendidos pela CPU. • BAIXO NÍVEL: – Codificação baseada em mnemônicos. Dependente do tipo de máquina. • “ALTO NÍVEL”: – Mais similar à nossa linguagem natural. Linguagens de Programação (Evolução) • Linguagem de Máquina: – Conjunto de códigos binários que são compreendidos diretamente pela CPU. – Exemplo: 0011 001010 001111 Endereço do 2° operando Endereço do 1° operando Código da instrução Linguagens de Programação (Evolução) • BAIXO NÍVEL - Linguagem Assembly: – Codificação baseada em mnemônicos. – Dependente do tipo de máquina. – Precisa ser convertido em linguagem de máquina (através de um programa montador) para poder ser compreendido pela CPU. – Exemplo: ADD A, B Endereço simbólico 2° operando Código da instrução Endereço simbólico 1° operando Linguagens de Programação (Evolução) • ALTO NÍVEL: – Mais similar à nossa linguagem natural. – Independente do tipo de máquina. – Precisa ser convertido em linguagem de máquina para poder ser compreendido pela CPU. – Exemplo: LIQUIDO = SALARIO + COMISSOES – IMPOSTOS; Objetivos do curso Saída do programa Interpretador do programa Execução Definição do problema a ser resolvido Solução do problema na forma de algoritmo Transcrição do algoritmo na forma de programa Ser Humano Compilação do programa código objeto ou executável Computador Etapas da resolução de problemas usando um computador. Lógica de programação • Algoritmo: – Um algoritmo é uma sequência não ambígua de passos necessários para realizar uma tarefa. – Um algoritmo não representa necessariamente um programa de computador (ex: receita de bolo). • Sua implementação pode ser feita por um computador, ou mesmo por um ser humano. – Em computação, o algoritmo é uma entidade abstrata que define a idéia do programa.