Informática I. Aula 9. Aula 9-17/05/2006 1

Documentos relacionados
Informática I. Aula Aula 18-29/10/2007 1

Informática I. Aula 9. Aula 9-27/09/2006 1

Programação de Computadores:

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Informática I. Aula 14. Aula 14-10/10/2007 1

Introdução à Computação

3. Linguagem de Programação C

Linguagem de Montagem do NeanderX

Informática I. Aula 19. Aula 19-31/10/2007 1

Algoritmos e Programação

Informática I. Aula 12. Aula 12-29/05/2006 1

PROGRAMAÇÃO I. Introdução

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

Algoritmos e Programação

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Linguagens de Programação Classificação

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Introdução à Programação de Computadores Fabricação Mecânica

Linguagens de Programação

Arquitetura e Organização de Computadores

Introdução à Computação

Linguagens de Programação

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação: Máquinas Multiníveis

Fundamentos de Programação 1

Paradigmas de Programação

Informática I. Aula 2. Aula 2-04/09/2006 1

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Projeto de Compiladores

Compiladores. Introdução à Compiladores

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Máquinas. Visão geral O que você precisa Fatores de sucesso O futuro. realizar algo, precisa que alguém m lhe indique o que fazer V.V.

Linguagens de Programação

Conceitos básicos sobre computadores (continuação)

Estrutura e funcionamento básico de um computador

Algoritmos Computacionais

ORGANIZAÇÃO DE COMPUTADORES

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Fundamentos de Programação 1

Organização de Computadores

II.1 Conceitos Fundamentais. Uma delas é programar o =>

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Noções de compilação

Noções de compilação

Conceitos de Linguagens de Programação

Revisão: linguagens de programação

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

INF 1005 Programação I

Prof. Sandro Wambier

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Linguagens de Programação Aula 3

1 Introdução à Programação O que é? Para que serve?... 1

Sistema Computacional

Linguagem de Programação I. Linguagem Pascal

Universidade de Brasília Histórico e Introdução

Histórico e Introdução

Introdução a Programação de Jogos

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5

Introdução à Programação

Organização e Arquitetura de Computadores I

Linguagens de Programação

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

NEANDERWIN. Algumas características do processador Neander são:

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Introdução à Computação MAC0110

Sistemas de Computação

Universidade de São Paulo

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior

MC-102 Aula 01. Instituto de Computação Unicamp

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Assunto 2 - Software. Prof. Miguel Damasco

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Introdução à Computação

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Introdução à Computação

Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly

LAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti

Programação Básica. Introdução à programação de computadores

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Arquiteturas RISC e CISC. Adão de Melo Neto

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Introdução ao Fortran 90

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Programação Básica. Introdução à programação de computadores

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Programação de Computadores

Introdução. (Aula 2) Organização Estruturada de Computadores

Linguagens de Programação

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Algoritmos e Programação

Transcrição:

Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1

Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação de Dados Estrutura e Organização da Informação Linguagens de Programação Sistemas Operacionais Redes de Computadores e Internet Engenharia de Software Softwares Aplicativos Aspectos Legais do Software Aula 9-17/05/2006 2

Introdução: Linguagens de Programação Importante primeiro saber o conceito de algoritmo. Um algoritmo é uma seqüência finita e não ambígua de instruções para executar uma tarefa específica. É parecido com uma receita, mas é mais complexo porque pode incluir: Repetição de passos até que uma condição seja satisfeita. Testes de condições lógicas para executar a tarefa. Algoritmos podem ser descritos em linguagem próxima da natural. Porém, para implementar um algoritmo é necessário descrevê-lo de maneira que ele possa ser executado no computador. Deve ser descrito em uma linguagem de programação. Aula 9-17/05/2006 3

Ex: Algoritmo para encontrar o maior número numa lista Algoritmo MaiorNúmero Repetição Entrada: Uma lista de números L Saída: O maior número da lista maior L 0 Para cada item na lista L 1 : Se item > maior, então maior item Retornar maior Condição Aula 9-17/05/2006 4

Linguagem de Máquina O conjunto de instruções de máquina de um computador pode ser considerado uma linguagem de programação. É a linguagem de máquina. Não é muito amigável ao programador. É difícil expressar e entender algoritmos complexos em linguagem de máquina, Torna a implementação mais sujeita a erros. Aula 9-17/05/2006 5

Compiladores O desenvolvimento de compiladores tornou possível a programação em linguagens diferentes da linguagem de máquina. Compiladores são programas que traduzem um programa de uma linguagem de alto nível para uma linguagem de máquina. Pergunta: em que linguagem foi escrito o primeiro compilador? Programa em linguagem de alto nível Compilador Programa em linguagem de máquina Aula 9-17/05/2006 6

Tipos de Linguagens de Programação Linguagens de baixo nível: Assembler. Linguagens não estruturadas: Cobol e Basic. Linguagens procedurais: C, Pascal, Fortran, Ada, Modula 2 e Modula 3. Linguagens funcionais: Prolog, LISP e Scheme. Linguagens orientadas a objeto: Simula, Smalltalk, C++ e Java. Linguagens específicas: SQL, HTML, Perl. Linguagens visuais: Simulink, Visual Basic e Delphi. Aula 9-17/05/2006 7

Linguagens de Baixo Nível As instruções correspondem quase diretamente ao código da máquina. São conhecidas como linguagens Assembly ou linguagens de montagem. Assembler é o programa que faz a tradução da linguagem Assembly para o código de máquina. A tradução não é chamada de compilação e sim montagem, porque é bem mais simples que a tradução de linguagens de alto nível. Cada processador tem a sua linguagem Assembly própria, de acordo com a sua arquitetura. Aula 9-17/05/2006 8

Instruções básicas da Linguagem Assembly x86 MOV: move dados. MOV AX,3 ; o registrador AX recebe o valor 3. MOV AX,BX ; o registrador AX recebe o valor do registrador BX. ADD: adição de inteiros ADD AX,3 ; AX=AX+3 ADD AX,BX ; AX=AX+BX SUB: subtração de inteiros SUB AX,3 ; AX=AX-3 SUB AX,BX ; AX=AX-BX JMP: pular para uma instrução JNZ (jump not zero): pular para uma instrução se o acumulador não tiver o valor zero. Aula 9-17/05/2006 9

Diretivas da Linguagem Assembly x86 Diretivas não são traduzidas diretamente em código de máquina. Exemplos: %DEFINE: Diretiva de definição de constante %DEFINE SIZE 100 MOV AX, SIZE Rótulos (labels) que marcam instruções. MOV AX, 10 MOV BX, 1 TOPO: ADD BX, AX SUB AX, 1 JNZ TOPO ADD CX, 10 O Assembler substitui todas as ocorrências de SIZE pelo valor 100. O Assembler substitui o rótulo TOPO pelo valor do endereço da instrução na memória. Aula 9-17/05/2006 10

MaiorNumero em Assembly %DEFINE SIZE 100 MOV AX,[L] ;guarda o maior MOV BX,SIZE ;guarda o tamanho da lista LOOP: ADD L,1 ;vai para próximo elemento MOV CX,[L] ;carrega próximo elemento SUB BX,1 CMP CX,AX JBE ABAIXO MOV AX,CX ABAIXO: CMP BX,0 JNE LOOP Aula 9-17/05/2006 11

Usos de Assembly Alguns tipos de código tem que ser escritos em Assembly. O código da BIOS que inicializa um computador. A comunicação entre o sistema operacional e o hardware. Ainda existe um debate se os compiladores conseguem gerar código tão eficiente quanto código Assembly escrito a mão. Alguns videogames foram programados em Assembly até os anos 90. Quem programa um compilador tem que saber a linguagem Assembly para poder gerá-la. Aula 9-17/05/2006 12

Linguagens Não-Estruturadas A semântica dos termos é mais genérica que na linguagem Assembly. Podem ser usadas em diferentes arquiteturas sem alteração. Com o surgimento de linguagens estruturadas tornaram-se obsoletas. Linguagens representativas: COBOL e Basic. Aula 9-17/05/2006 13

Linguagem COBOL COBOL = COmmon Business Oriented Language = Linguagem Comum Orientada a Negócios. Essa linguagem destina-se a construir aplicativos comerciais, tais como controle de estoque, folha de pagamento e contabilidade Não é apropriada para cálculos científicos que envolvam equações complexas. Encontra-se disponível em várias plataformas que vão do grande porte até computadores pessoais. Foi desenvolvida em 1959 e padronizada pela ANSI nas seguintes versões: COBOL-68 COBOL-74 COBOL-85 COBOL 2002 (inclui orientação a objetos) Aula 9-17/05/2006 14

Programa Hello World em COBOL IDENTIFICATION DIVISION. PROGRAM-ID. ProgramHelloWorld. PROCEDURE DIVISION. DisplayPrompt. DISPLAY Hello World!". STOP RUN. Aula 9-17/05/2006 15

Linguagem BASIC BASIC = Beginner s All-Purpose Symbolic Instruction Code Projetada em 1963 para permitir que estudantes pudessem usar computadores. Antes só matemáticos e cientistas usavam. Existem mais variações de BASIC do que de qualquer outra linguagem. Os oitos princípios de projeto de BASIC foram: 1. Ser fácil, para ser utilizada por iniciantes. 2. Ser uma linguagem de programação de uso geral. 3. Permitir que especialistas adicionassem características avançadas, sem tornar a linguagem mais complicada para os iniciantes. 4. Ser interativa. 5. Fornecer mensagens de erro claras e amigáveis. 6. Responder rapidamente para programas pequenos. 7. Não exigir o conhecimento do hardware do computador. 8. Proteger o usuário do sistema operacional. Aula 9-17/05/2006 16

Linguagem BASIC Um programa em BASIC tem as suas linhas numeradas, sendo que é quase padrão usar números de 10 em 10. Os comandos são poucos e facilmente compreendidos em inglês. Programa que imprime números pares entre A e B 10 INPUT A,B 20 FOR I=A TO B STEP 1 30 IF MOD(I,2)>0 THEN 50 40 PRINT I 50 NEXT I 60 END Aula 9-17/05/2006 17

Alguns comandos BASIC LET: atribuição 10 LET A=1 PRINT: imprime o resultado de uma expressão na tela 20 PRINT A, É IGUAL A, B+C GOTO: redireciona a execução do programa 50 GOTO 500 IF-THEN: redireciona a execução condicionalmente. 500 IF B<C THEN GOTO 20 FOR-TO-STEP: para iniciar uma repetição. 510 FOR I=1 to 7 STEP 2 NEXT: para indicar a continuação de uma repetição. 600 NEXT I Aula 9-17/05/2006 18