Introdução à Programação 2006/07. Aula 2



Documentos relacionados
Figura 1 - O computador

Introdução aos computadores

Introdução à Programação 2006/07. Computadores e Programação

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

Introdução aos Computadores

Introdução à Arquitetura de Computadores

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Sistema de Computação

Prof. Sandrina Correia

PROCESSAMENTO DE DADOS

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Escola Secundária de Emídio Navarro

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

AULA TEÓRICA 2 Tema 2. Conceitos básicos de informática, computadores e tecnologias de informação. Sistemas de numeração (continuação)

Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética

SISTEMAS INFORMÁTICOS

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

INFORMÁTICA PARA GESTÃO I Curso Superior de Gestão de Marketing

Binária. Introdução à Informática. Introdução à Informática. Introdução à Informática. Introdução à Informática. Bit. Introdução à Informática

1 - Processamento de dados

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

1.1. Organização de um Sistema Computacional

Programação de Computadores

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Introdução. à Estrutura e Funcionamento de um Sistema Informático

Conjunto organizado de informações da mesma natureza, agrupadas numa unidade independente de processamento informático

Problema: Solução: Vantagens da estruturação em Níveis: Introdução INTRODUÇÃO À ARQUITETURA DE COMPUTADORES. Introdução

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Estrutura e funcionamento de um sistema informático

3. Arquitetura Básica do Computador

1. CAPÍTULO COMPUTADORES

O modelo do computador

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Introdução à estrutura e funcionamento de um Sistema Informático

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo ("pipeline") Execução de programas

Estrutura geral de um computador

05/04/2013. Para efetuar medidas é necessário fazer uma padronização, escolhendo unidades para cada grandeza.

Tecnologia e Sistemas de Informações Administração dos Recursos de Hardware e Software

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Lição 1 Introdução à programação de computadores

BARRAMENTO DO SISTEMA

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Conceitos Básicos sobre Sistema de Computação

ARQUITETURA DE COMPUTADORES

Edeyson Andrade Gomes

Tecnologia da Informação. Prof Odilon Zappe Jr

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Componentes do Computador e. aula 3. Profa. Débora Matos

Aula 01 Introdução à Informática. Prof. Bruno Gomes

Cadeira de Tecnologias de Informação. Ano lectivo 2007/08. Conceitos fundamentais de Hardware

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Capítulo 2. Noção de hardware. As componentes de um computador.

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

Curso Técnico em Redes

Computador. Algumas definições

LÓGICA DE PROGRAMAÇÃO

Disciplina: Introdução à Engenharia da Computação

Computador. 1982: os computadores são ferramentas que nos permitem fazer cálculos rápida e comodamente

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

Algoritmos e Programação Aula 01 Introdução a Computação

Escola Secundária de Emídio Navarro

Sistemas Operacionais

Infra-Estrutura de Hardware

Informática, Internet e Multimídia

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Introdução à Programação de Computadores

Unidade de Controlo. Unidade Aritmética e Lógica

Informática. Técnico em Agronegócio 1º. Módulo Profa. Madalena Pereira da Silva

Referencial do Módulo B

Capítulo I : Noções Gerais

UCP. Memória Periféricos de entrada e saída. Sistema Operacional

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Programação de Computadores III

Programação de Computadores I BCC 701. Introdução

Algoritmos DCC 119. Introdução e Conceitos Básicos

Estrutura de um Computador

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Introdução às Tecnologias de Informação e Comunicação. Conceitos Introdutórios

Organização e Arquitectura do Computador

Tecnologia - Conjunto de instrumentos, métodos e processos específicos de qualquer arte, ofício ou técnica.

Áreas de aplicação das TIC

Arquitectura dos processadores

ISL - Introdução. Sistema. Binário. Introdução. Tipos de Computador. Sub title text goes here. Unused Section Space 2. Unused Section Space 1

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

ARQUITETURA DE COMPUTADORES

Introdução aos Sistemas Operativos

Codificação da informação. Execução do programa. Codificação binária. Representação de inteiros positivos. Representação binária

Estrutura do tema ISC

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 2 PROF. MARCELO LUIZ SILVA (R E D)

Transcrição:

Introdução à Programação 2006/07 Aula 2

Objectivos Aprender Noção de computador. Utilidade do computador. Representação de informação utilizando o sistema binário. Noção de bit, Byte, KB, MB. O sistema operativo. Níveis da Linguagens de programação. Linguagens compiladas vs linguagens interpretadas. Fases do desenvolvimento de uma aplicação. Noção de Algoritmo.

Conceitos iniciais (1) Um computador é uma máquina que processa dados a uma grande velocidade e ajuda a resolver problemas; tem a capacidade de armazenar grandes quantidades de informação. Um computador só funciona depois de programado.

Conceitos iniciais (2) Um programa é um conjunto organizado de instruções a serem executadas por um computador. Especifica minuciosamente tudo o que um computador deve fazer para se atingir o objectivo pretendido. Tarefas diferentes implicam Programas diferentes

O que é um computador? Uma máquina programável, formada por uma ou várias unidades de processamento, controlada por programas registados internamente, capaz de executar cálculos complexos, que incluem muitas operações aritméticas e muitas operações lógicas, sem intervenção humana. Glossário do IEEE.

O modelo de von Neumann (1) Os primeiros computadores começaram a surgir durante a década de 40, ainda utilizando válvulas. O computador mais famoso daquela época foi o ENIAC (Electronic Numerical Integrator Analyzer and Computer), construído em 1945.

O modelo de von Neumann (2) Os inventores do ENIAC, John Mauchley e J Presper Eckert, desenvolveram um computador que podia armazenar instruções em memória. John Von Neumann publicou a ideia e todos os sistemas de computadores começaram a usar a arquitectura de von Neumann.

John von Neumann(1903-1957) 1903: Budapeste, Hungria. 1931: Professor de Matemática na Universidade de Princeton. 1940: Consultor do projecto da bomba atómica. Para explodir bem, era preciso calcular muito 1944: Visita o ENIAC, e torna-se padrinho do projecto. O maior problema do ENIAC era como construir uma memória programável, para o novo computador EDVAC. 1945: First Draft of a Report on the EDVAC, sugerindo que: 1. Deve usar-se sistemas de numeração binária. 2. Os dados e os programas devem residir na memória interna. John von Neumann foi um dos maiores matemáticos de todos os tempos, e as suas contribuições não se limitam aos computadores. Foi o inventor da Teoria dos Jogos, por exemplo.

Arquitectura de um computador Componentes principais: Processador (CPU) Memória Barramento(s) Armazenamento não volátil (disco) Sub-sistema gráfico (GPU, memória,...) Teclado e rato

Arquitectura de um computador Modelo mais vulgar Von Neuman Dados e programa na mesma memória

Processador Processador CPU (Central Processing Unit) Exemplos: Intel 80486, Pentium, Centrino CPU ALU Unidade Lógico-Aritmética Bus Velocidade do CPU é medida em MHz, GHz Unidade de Controlo Registos

CPU (Central Processing Unit) Unidade de Controlo: Vai buscar as instruções e operandos à memória e executa-as. O resultado pode também ser escrito na memória Unidade Lógico-Aritmética (ALU): Faz as operações lógicas (E, OU,...) e aritméticas (soma, produto,...) Registos: Pequena zona de memória de trabalho. Cada posição é denominada um registo. Bus: Conjunto de linhas para transferência de sinais

CPU Repete sempre Lê a próxima instrução da memória Descodifica a instrução e lê eventuais parâmetros Executa a instrução (usando a ALU, registos, memória e periféricos) Medida de velocidade: MHz, GHz Outras medidas MIPS (Milhões de instruções por segundo) MFLOPS (Milhões de operações vírgula flutuante por segundo

Memória Tipo RAM: Random Access Memory ROM: Read Only Memory EPROM: Erasable Programable Read-Only Memory Capacidade Kbytes: Kilo, 2 10 10 3 Mbytes: Mega, 2 20 10 6 Gbytes: Giga, 2 30 10 9 Tbytes: Tera, 2 40 10 12 Funcionamento Recebe um endereço e um sinal Se o sinal for de leitura, fornece o conteúdo desse endereço Se for de escrita recebe um valor para memorizar

Memória Memória secundária: Discos, disquetes, banda magnética, CD-ROM, CD- RW Acesso à memória Endereço 03AF5000 03AF5002 03AF5004 03AF5006 Conteúdo 635B 0000 0103 5540 32 bits 16 bits

Memória/Disco A memória central é de acesso rápido e volátil (RAM) O disco é de acesso lento e não é volátil Serve para armazenar de forma permanente Os programas: São carregados, isto é, os ficheiros que constituem os programas são lidos do disco e colocados em memória São corridos (executados pelo CPU) Os resultados dos programas podem ser armazenados permanentemente sob a forma de ficheiros no disco

Sistemas de Operação Um programa que facilita e gere o acesso a recursos do computador Importante para a eficiência no desempenho das tarefas Disponibiliza a interface do computador com o utilizador Disponibiliza a interface do computador com outras aplicações Exemplos: Windows, Unix (Linux), MacOS Ambiente gráfico ou por comandos (shell)

Sistema de Operação Sistema de Interpretador Funções Núcleo hardwar e hardwar e Operação de Sistema de comandos

Sistema de Operação ROM Carregador CPU RAM Sistema I/O Disco Sistema De Ficheiros

Sistema de Operação - Classificação Quanto aos programas: Apenas um programa de cada vez Vários programas executados em regime de concorrência (partilha de tempo do CPU) Quanto aos processadores: Um único processador Vários processadores iguais ou especializados

A lei de Murphy Se puder correr mal, então vai correr mal. Corolários Nada é tão fácil como parece. Tudo leva mais tempo do que parece. Se várias coisas puderem correr mal, a que vai correr mal primeiro é aquela que causa maior prejuízo. Cada solução traz sempre novos problemas. Se descobrires quatro maneiras pelas quais algo pode correr mal e conseguires evitá-las, uma quinta maneira logo surgirá.

Processamento da Informação Computador executa uma sequência de instruções armazenadas na memória Ao conjunto organizado de instruções dá-se o nome de programa As instruções estão codificadas no sistema binário, ou seja, através do uso de apenas dois símbolos distintos (0 e 1) Unidade elementar de informação é o bit (do inglês binary digit).

O processamento da informação Exemplos de codificação para a sinalização luminosa de trânsito Quando em funcionamento, o estado de um semáforo para peões pode ser codificado (arbitrariamente) num só bit: 0 -> Luz vermelha 1 -> Luz verde Mas, para semáforos em funcionamento com 3 cores, já são preciso 2 bits (em sequência): 0 -> Luz vermelha 1 -> Luz verde 1 0 -> Luz Amarela Sobra ainda uma configuração (11). Mas poder-se-ia utilizá-la, p. ex., se interessasse identificar o sinal amarelo intermitente.

O processamento da informação Com base nos exemplos anteriores, repara-se que: A ordem sequencial dos bits é importante; Nem todas as configurações possíveis de bits poderão interessar; A escolha das diversas configurações de bits foi arbitrária, mas, uma vez definida, não deverá ser alterada posteriormente, sob pena de vir a ocasionar erros de interpretação; Para poder interpretar uma dada sequência de bits, há que conhecer as regras de codificação.

Memória A memória é constituída por uma sequencia de dispositivos microscópicos com dois estados possíveis cada; desta forma estes dispositivos são designados por bits; Por questões de eficiência de processamento, os bits agrupam-se em sequencias de 8; a cada um desse grupos dá-se o nome de byte. Quantas configurações distintas se podem obter com 1 byte? 2 8 = 256 Conclui-se que 1 byte é suficiente para a codificação dos símbolos alfanuméricos usados num vulgar texto em língua portuguesa.

Ainda sobre o exemplo da sinalização Para dar conta do estado de um semáforo de 3 cores, 1 byte é manifestamente mais do que o estritamente necessário bit bit bit bit bit bit bit bit Ficam desperdiçados 6 bits, em alternativa, 1 byte poderá ser utilizado para codificar o estado de mais do que um semáforo simultaneamente.

Memória O acesso eficiente à memória principal faz-se em numero inteiro e fixo de bytes que é potência de 2, designado por word (palavra) Exemplos. 8 bits (1 byte) 16 bits (2 bytes) 32 bits (4 bytes) 64 bits (8 bytes) Os vulgares computadores de hoje caracterizam-se pelo uso de palavras de 32 bits; Dado trata-se de uma organização sequencial, a localização de cada elemento de informação em memoria principal faz-se através de um numero de ordem, que se designa por endereço.

Memória A medida de armazenagem de informação é dada por múltiplos de bytes: 1 Kbyte = 1024 byte = 2 10 byte 1 Mbyte = 1024 KB = 2 10 x 2 10 byte = 2 20 byte 1 Gbyte = 1024 MB = 2 10 x 2 20 byte = 2 30 byte 1 Tbyte = 1024 GB = 2 10 x 2 30 byte = 2 40 byte Ordens de capacidade actualmente encontradas em equipamento vulgar: Hardware Software Memória vídeo 128 MB RAM 1 GB CD 700 MB DVD 4,7 GB Disco Rigido 150 GB

Numeração Binária A memória guarda palavras binárias Dimensão da palavra depende da arquitectura Byte é a sequência de 8 bits Decimal Binário 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111

Processamento da Informação 2 Instruções são sequências de bits Instruções e dimensão das mesmas depende da arquitectura Processador executa sequência de instruções código máquina ou código executável

O processamento da informação Desta forma, é fácil compreender que: As instruções para a unidade de processamento (CPU) são armazenadas em RAM na forma de sequencia de bits (designando-se por código maquina, código objecto ou código executável) Em de haver regras fixas (ditas regras de sintaxe) para a escrita da sequencia de bits, de acordo com a acção pretendida (a semântica) Para obter um mesmo resultado em computadores de tipo diferente, as instruções também podem ser diferentes ou ser codificadas de forma diferente Sendo uma linguagem o conjunto de regras sintácticas e semânticas fazendo uso de um dado conjunto de símbolos (chamados alfabeto da linguagem), a linguagem máquina aplica-se à escrita dos bits que constituem o código executável, pelo que é muito provável que ela possa ser diferente de computador para computador.

Linguagem de programação Por linguagem de programação entende-se uma linguagem de escrita de instruções num nível de abstracção superior ao da máquina, com legibilidade adequada ao ser humano; por tal motivo, em vez de bits, o seu alfabeto usa caracteres alfanuméricos Exemplos de linguagens de programação que também são conhecidas com linguagens de alto nível: Cobol, Pascal, Java, C, C++, Prolog, Lisp. Para ser executado, um programa escrito numa linguagem de alto nível tem, então, de ser traduzido para código máquina As operações de tradução são realizadas pelo próprio computador através de um outro programa, especialmente criado para esse efeito (por exemplo, um compilador)

Programação e Linguagens Código de máquina específico da arquitectura Linguagem assembly representa de forma alfanumérica cada instrução O assembler converte o código fonte em assembly para código máquina Existem outras linguagens de mais alto nível

Tipos de Linguagens Baixo Nível Depende do processador Composta não por palavras binárias mas por mnemotécnicas Exemplo: assembly Alto Nível Independente do processador Linguagens que se aproximam mais da forma corrente Respeitando uma estrutura definida Necessário traduzir para código executável Compilador Interpretador

Sintaxe e Semântica Sintaxe: regras fixas específicas da linguagem Semântica: significado obtido pela sequência de instruções

Um programa é Uma sequência de instruções adequadas para o processamento por um computador. O processamento pode incluir a utilização de um programa tradutor (assembler), um compilador (compiler), um interpretador (interpreter) ou um tradutor (translator) para preparar o programa para a ser executado mas também para o executar. [IEEE] Institute of Electrical and Electronics Engineers Assembler programa tradutor de código em linguagem assembly para código máquina; a linguagem assembly usa símbolos alfanuméricos para representar directamente (e com recurso a mnemónicas) as instruções apropriadas a uma dada unidade de processamento Duas linhas de código, a titulo de exemplo, para um determinado processador: LOAD JUMP LD R1,3 JMP 7 significaria 110111 100111

Um programa é Uma sequência de instruções adequadas para o processamento por um computador. O processamento pode incluir a utilização de um programa tradutor (assembler), um compilador (compiler), um interpretador (interpreter) ou um tradutor (translator) para preparar o programa para a ser executado mas também para o executar. [IEEE] Institute of Electrical and Electronics Engineers Compilador programa que traduz código escrito numa linguagem de programação (dito programa fonte) para código máquina Interpretador programa que analisa e executa cada uma das instruções dum programa fonte sem, contudo, gerar um programa em código máquina; portanto, a execução das instruções do programa fonte implicará sempre a execução do interpretador.

Do programa fonte para o programa executável Programa fonte compilador Ligador (linker) Programa executável Erros de compilação Erros de execução Código de bibliotecas As bibliotecas contêm funções (e. g. a raiz quadrada) que o programa poderá usar. Em muitos ambientes de programação, o comando para compilar o programa encarrega-se de accionar o ligador automaticamente. Em todo o caso, a ligação dos códigos só será realizada e não existir qualquer erro na anterior fase de compilação.

Compiladores de C Microsoft (Visual) C Intel C Compiler GNU Compiler Collection (gcc)... De onde vem o código fonte?

Código Fonte Editor de texto Editor especializado IDE Integrated Development Environment Integrated Design Environment Integrated Debugging Environment

Ambiente no Laboratório Microsoft Visual C ++ IDE Vários compiladores C, C++ Projectos permitem agrupar código fonte, executáveis,...

IDE para o laboratório -Visual C++

Definições adicionais Por software entende-se programs, procedures and rules, and any associated documentation pertaining to the operation of a computer system. Contrast with hardware. [IEEE] Institute of Electrical and Electronics Engineers Por HARDWARE entende-se physical equipment used in data prosessing, as opposed to computer programs, procedures, rules and associated documentation. Contrast with software. [IEEE] Institute of Electrical and Electronics Engineers

Programação - Resolução de problemas Programa Ξ Resolver problemas Problema Especificação Elaboração de Algoritmos Algoritmo sequência finita de acções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período finito de tempo com uma quantidade de esforço finita Exemplos: receita, pôr o carro a trabalhar Algoritmos Escrita do programa

Duas fases algorítmica e programação Algorítmica a modelização e abstracção do problema que leva a elaboração duma solução automatizada: Escolha da estrutura de dados (tabelas, listas, etc.) Conceição dos algoritmos (série de operações a realizar) Al Khowarizmi, Bagdad século IX. Programação Tradução numa linguagem compreensível pelo computador das estruturas de dados e algoritmos.