Introdução ao Fortran 90

Documentos relacionados
Introdução à Programação de Computadores Parte I

Organização e Arquitetura de Computadores I

4 Sistema Computacional:

Unidade 1: O Computador

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Fundamentos de Sistemas Operacionais

Depois do estudo deste capítulo, o estudante deve ser capaz de:

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Introdução à Informática

Informática I. Aula Aula 19-20/06/06 1

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

Nivel de Linguagem de Montagem (Assembly)

Arquitetura e Organização de Computadores. Histórico. Gerações

Introdução à Computação: História dos computadores

Montadores e Compiladores

Flávia Rodrigues. Silves, 26 de Abril de 2010

Microcontroladores e Microprocessadores

Oganização e Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES

Controlador de DMA. Gustavo G. Parma

Aula 03. Processadores. Prof. Ricardo Palma

O Sistema de Computação

Capítulo 1 Introdução

Fundamentos de Arquitetura e Organização de Computadores

Organização de Computadores 1

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

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

Data Path / Control Path Controle do MIPS

Conceitos básicos sobre computadores

O Funcionamento do Processador

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais

Introdução INTRODUÇÃO À COMPUTAÇÃO M. Sistema Computacional. Máquina Virtual. Solução 8/10/10. O problema de comunicação humanocomputador

Introdução a Programação Aula 01

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

Aula 11: Desvios e Laços

Sistemas Digitais II. Interface com o mundo analógico. Prof. Marlon Henrique Teixeira Abril/2014

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Fundamentos de Programação. Diagrama de blocos

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Arquitetura e Organização de Computadores

4/11/2010. Computadores de grande porte: mainframes e supercomputadores. Sistemas Computacionais Classificação. Sistemas Computacionais Classificação

Componentes de um Computador: Modelo Von Neumann

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

ARQUITETURA DE COMPUTADORES

Organização de Computadores

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

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

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

Sistemas Operacionais

Parte 01. Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

Lista de Exercícios 1

Arquitetura de Computadores

Organização de Computadores I

CAPÍTULO 1 INTRODUÇÃO À ARQUITETURA DE COMPUTADORES. Máquina programável, de propósito geral, que processa informação.

Microprocessadores. Memórias

ARQUITETURA DE COMPUTADORES

TI Aplicada. Aula 03 Componentes Básicos Hardware e Rede. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais

COMPUTAÇÃO I. Prof. Fernando L. B. Ribeiro

INFORMÁTICA HISTÓRIA DA INFORMÁTICA 1º PD PROFESSOR

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

Conceitos e Evolução Capítulos 1 e 2

Arquitetura de Computadores. Prof. Marcelo Mikosz Gonçalves

1 Introdução à Computação

Sistemas Operacionais. Rodrigo Rubira Branco

Teoria da Firma. Capítulo VI. Introdução. Introdução. Medição de custos: quais custos considerar?

Introdução à Arquitetura de Computadores IFES Campus Serra

Sistema de Computação

Banco de Dados I. Prof. Edson Thizon

Programação de Computadores III

Inteligência Artificial

O Sistema de Computação

INTRODUÇÃO À COMPUTAÇÃO

Introdução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

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

OBJETIVO GERAL DA DISCIPLINA

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

Histórico e Evolução da Computação

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Avaliação e Desempenho Aula 1 - Simulação

Edeyson Andrade Gomes

Breve histórico da Evolução dos Computadores (leitura informativa )

Arquitetura e Organização de Computadores

Introdução (Aula 1) Histórico da Arquitetura de Computadores

Introdução à Informática. Aula 05. Redes de Computadores. Prof. Fábio Nelson

Conteúdo programático

Introdução às Linguagens de Programação

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

SISTEMAS DISTRIBUÍDOS

Parte II Introdução a Linguagens de Programação

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Calculadoras Mecânicas

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

MÓDULO 2 Topologias de Redes

Arquitetura de Computadores. AULA 1 Introdução

Modelagem De Sistemas

Transcrição:

Introdução ao Fortran 90 Departamento de Física UFPel

Pré-História 1943-1953: Computador com Programa Fixo ENIAC (Electronic Numerical Integrator and Computer) Início do Projeto: 1943 Projeto Completo: 1946 Programação: plug board e switches Velocidade: 5000 operações/segundo Input/Output: cartões, luzes, switches, plugs Área ocupada: 100 m 2 Programação em Linguagem de Máquina (0 e 1) Baixo Nível

Pré-História 1946: Computador de Programa Armazenado Arquitetura de von Newmann: Máquina digital capaz de armazenar programas no mesmo espaço de memória que os dados. Memória Unidade Central de Processamento (CPU) Unidade Aritmética e Lógica (ULA) Unidade de Controle (CU) Conjunto de Registradores Dispositivos de Entrada e Saída

Pré-História 1952-1957: Computador de Programa Armazenado MANIAC I (Mathematical Analyzer, Numerical Integrator, and Computer) Peso: 500 kg Capacidade de armazenar programas Usado no projeto Manhatan para a bomba de hidrogênio Usado para o cálculo de novas partículas sub-atômicas (1953-1954) Primeiro computador a jogar xadrez

Arquitetura de von Newmann Estrutura da CPU ULA Coleção de circuitos que realizam as operações (adição, subtração, manipulação de bits,...) sobre os dados. Registradores Posições de memória construídas dentro da CPU. Muito mais rápido do que acesso a memória principal (RAM). UC Controla todo o fluxo de execução da CPU. Busca dados e instruções da memória e coordena a troca de dados entre registradores e ULA.

Arquitetura de von Newmann Funcionamento da CPU Tarefas complexas são decompostas em seqüência de instruções simples. Cada instrução é executa movendo-se dados dos registradores para a ULA, que executa o cálculo ou operação apropriada e retorna dados para os registradores. Ciclo da CPU: Caminho de uma instrução: dos registradores até a ULA e da ULA até os registradores, passando por barramentos. Velocidade do computador é medida em ciclos por segundo. Para uma tarefa ser executada, ela deve ser carregada da memória principal (instrução a instrução) na ULA. A ULA executa e devolve o resultado para a memória.

Arquitetura de von Newmann Funcionamento da CPU Tarefa: c = a + b Seqüência de execução na CPU: R0 recebe o valor de a R1 recebe o valor de b R0 e R1 são passados para ULA ULA executa a soma Resultado é devolvido para R2 Posição de memória associada a c recebe o resultado

Arquitetura de von Newmann Execução: O programa é carregado para a memória. O sistema operacional controla a seqüência das operações e alocação de memória. Os programas são lidos a partir da primeira instrução até chegar a uma instrução de stop ou parar. Unidade de controle recebe cada uma das instruções, interpreta e dá seqüência a fluxo de execução operativa (registradores ULA)

Arquitetura de von Newmann Programação: O conjunto de instruções possíveis que uma CPU pode executar é chamado de linguagem de máquina. Programas podem controlar o comportamento do computador, através de instruções em linguagens de máquina. Na prática, os programas (conjuntos de instruções em sequência) são programados em linguagens de programação ditas de alto nível e convertidos para linguagem de máquina por compiladores.

Arquitetura de von Newmann Linguagens de programação: Conjunto finito de comandos que são combinados (programados) de tal forma a produzir um programa, para realizar uma tarefa. Baixo nível são linguagens de máquina, portanto, é o que o computador consegue interpretar e executar. Alto nível são linguagens que facilitam a programação por parte do programador, pois estão mais próximas da linguagem humana (Fortran, C/C++, Java, Pascal,...). Compilador: É um programa que converte as instruções de um programa escrito em uma linguagem de alto nível em instruções de máquina.

Arquitetura de von Newmann Linguagem de Máquina: São comandos simples que a CPU pode executar. Podem então ser combinados para produzir uma tarefa mais complexa. Exemplos de comandos baixo nível: Registrador R0 recebe um valor Registrador R1 recebe um valor ULA computa operação de soma R2 recebe o resultado da soma feita pela ULA

Arquitetura de von Newmann Linguagem de Máquina: Na prática, cada instrução da ULA está associada a uma seqüência de bits. Por exemplo: Soma poderia ser: 01001000 Atribuição de variável: 00000001 Desvio de fluxo: 01001110 Impossível programar desta forma! Alternativa: Uso da linguagem de baixo nível Assembly (segunda geração)

Arquitetura de von Newmann Linguagem Assembly: Notação legível por humanos, na forma de mnemônicos, como alternativa à linguagem de máquina. A tradução do código Assembly para a linguagem de máquina é feita pelo montador ou assembler. Limitações: Díficil manipulação e dependente da arquitetura do computador.

Arquitetura de von Newmann Linguagem Assembly: Notação legível por humanos, na forma de mnemônicos, como alternativa à linguagem de máquina. A tradução do código Assembly para a linguagem de máquina é feita pelo montador ou assembler. Solução: Programar em linguagens de alto nível: FORTRAN.

1954-1957: The IBM Mathematical Formula Translating System John W. Backus da IBM: Fortran I: alternativa à linguagem Assembly para a programação do IBM 704.

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Atualizações do FORTRAN disponíveis 1958: FORTRAN II e III 1961: FORTRAN IV 1963: mais de 40 compiladores FORTRAN a disposição 1966: FORTRAN 66 como padrão 1978: FORTRAN 77 Padrão fixo: formatação do código baseada no cartão perfurado

1957-1978: Estrutura de um programa em FORTRAN

1957-1978: Estrutura de um programa em FORTRAN

1991-hoje: uma nova versão para o Fortran 1992: Fortran 90 Fim da formatação do cartão! 1997: Fortran 95 Fortran de alta performance. 2004: Fortran 2003 Na direção da programação orientada à objeto. 2010: Fortran 2008 Atualização do Fortran 2003.

1991-hoje: uma nova versão para o Fortran 1992: Fortran 90 Fim da formatação do cartão! 1997: Fortran 95 Fortran de alta performance. 2004: Fortran 2003 Na direção da programação orientada à objeto. 2010: Fortran 2008 Atualização do Fortran 2003.

1991-hoje: uma nova versão para o Fortran 1992: Fortran 90 Fim da formatação do cartão! 1997: Fortran 95 Fortran de alta performance. 2004: Fortran 2003 Na direção da programação orientada à objeto. 2010: Fortran 2008 Atualização do Fortran 2003.

1991-hoje: uma nova versão para o Fortran 1992: Fortran 90 Fim da formatação do cartão! 1997: Fortran 95 Fortran de alta performance. 2004: Fortran 2003 Na direção da programação orientada à objeto. 2010: Fortran 2008 Atualização do Fortran 2003.

Compiladores FORTRAN disponíveis: GNU gfortran (https://gcc.gnu.org/wiki/gfortran) Intel ifort (https://software.intel.com/en-us/intel-compilers) g95 (http://www.g95.org/) The Portland Group (http://www.pgroup.com/) NAGWare (http://www.fortran.com/fortran/nag.html) Mais Opções: https://www.fortran.com/compilers.html