Interpretação e Compilação de Linguagens de Programação
|
|
|
- Maria do Pilar Sequeira Bernardes
- 10 Há anos
- Visualizações:
Transcrição
1 Interpretação e Compilação de Linguagens de Programação 28 de Fevereiro de 2013 Esta unidade curricular pretende transmitir ao longo de um semestre as noções fundamentais sobre o desenho e implementação de linguagens de programação. Muitos dos conceitos estudados são essenciais, não só no desenvolvimento de linguagens de programação, mas também na resolução de problemas de forma computacional [Win06]. Pretende-se ao mesmo tempo aprofundar o conhecimento acerca do funcionamento de linguagens de programação já existentes através do conhecimento profundo dos seus mecanismos de construção. If you don t understand interpreters, you can still write programs; you can even be a competent programmer. But you can t be a master. (Hal Abelson, in prefácio de [FW08]) Durante esta unidade curricular serão apresentados os componentes fundamentais de construção de linguagens de programação, o seu modelo de execução, verificação e transformação, tendo como foco uma linguagem de alto nível de abstracção. Ao longo de um semestre serão desenvolvidos de forma incremental algoritmos interpretadores, que serão os veículos privilegiados para a aprendizagem da semântica de linguagens, dos sistemas de tipos e das técnicas de compilação. Nesta primeira versão das notas de apoio serão descritos brevemente os tópicos abordados em aula, algum código de apoio, e alguns apontadores para outros recursos de estudo e aprofundamento de conhecimentos. Nesta primeira aula descreve-se a arquitetura geral dos interpretadores e compiladores e a sua utilidade no contexto de um sistema de software. Estes tópicos podem ser mais explorados na bibliografia recomendada (nomeadamente em [AP02, AVAU06]). 1
2 Executable program compiler addl popq %edi, -4(%rbp) -4(%rbp), %eax $1, %eax %eax, -12(%rbp) -12(%rbp), %eax %eax, -8(%rbp) -8(%rbp), %eax %rbp ret machine Figura 1: Compilador ICL Interpretadores / compiladores 31 Qual a diferença entre um compilador e um interpretador? o que é uma linguagem máquina? ou uma linguagem intermédia? o que é um JIT compiler? Cada uma destas ferramentas tem a sua utilidade específica e contexto de utilização adequado. Os interpretadores e compiladores são essencialmente programas cujo comportamento (ou output) não está estabelecido à partida, o seu resultado é definido através de um programa dado como input, escrito numa linguagem de programação. São programas cujos dados são outros programas. Dentro desta categoria encontram-se ainda programas como ferramentas de verificação de programas, ambientes de desenvolvimento, etc. Invariavelmente, os dados de entrada de um compilador e de um interpretador é um programa expresso numa linguagem de programação (linguagem fonte). O mais usual é um programa ser expresso por intermédio de um texto, podendo ser expresso de outras formas, usando linguagens visuais por exemplo. Embora a maioria dos conceitos sejam genéricos, no contexto desta unidade curricular focamos em linguagens expressas em texto. A distinção entre interpretadores e compiladores faz-se essencialmente a nível da forma de execução e interação que proporcionam. Existe depois uma miríade de alternativas e combinações sobre as verificações que são feitas sobre o código, e sobre a eficiência na execução, e na produtividade da atividade de programação. Os compiladores, cuja interação é representada na Figura 1, transformam 2
3 interpreter Figura 2: Interpretador código de uma linguagem tipicamente comicl um nível de abstração alto para uma linguagem com um nível de abstração mais baixo. Esse programa alvo é executado ou interpretado por uma máquina cujas instruções são de uma granularidade mais baixa e adaptadas às suas estruturas internas. De uma forma simplificada representamos essa interação, nas Figuras 1 e 2, pela transformação de dados de entrada em dados de saída. Esta forma de interação pode sem perca de generalidade ser extendida para aplicações interativas mais ricas. Os interpretadores (simples) processam diretamente o programa na linguagem fonte e os dados de entrada para produzir os seus resultados ou efeitos, Figura 2. Uma configuração mais realista e sofisticada como é o caso da máquina virtual Java (JVM) ou a máquina virtual da plataforma.net combina compilação e interpretação. A sua arquitetura inclui a compilação para código numa linguagem intermédia que depois é interpretado, e nessa altura ainda pode ser compilado para código nativo (máquina) e executado diretamente no processador. Comparando os dois modos de execução, podemos dizer que os compiladores produzem código cuja execução é mais eficiente do que a interpretação do mesmo código. Esta realidade deve-se ao que o processamento offline do código oferece como oportunidades de optimização e verificação que a interpretação de código tipicamente não permite. Por outro lado, aos interpretadores são associadas as características de flexibilidade no desenvolvimento, permitindo inclusivamente a execução de programas, cuja compilação para código nativo seria impossível, sem incorporar de alguma forma o algoritmo interpretador no resultado (e.g. Javascript). 32 3
4 compiler intermediate language define %x) nounwind readnone ssp { entry: %0 = add nsw i32 %x,1 ret i32 %0 virtual machine Just in time compiler Executable code %edi, -4(%rbp) -4(%rbp), %eax addl $1, %eax %eax, -12(%rbp) -12(%rbp), %eax %eax, -8(%rbp) -8(%rbp), %eax popq %rbp ret Figura 3: Interpretador ICL com compilador JIT 32 A flexibilidade oferecida pela utilização de um interpretador (da linguagem intermédia) é aproveitada no caso das linguagens Java e C# para possibilitar a portabilidade de código. No caso de linguagens como OCaml, Haskell ou Scala, à flexibilidade dada pelo modo interpretação, acrescenta uma verificação de tipos completa e optimizações como a utilização de tail recursion. Na sua estrutura interna, os compiladores e interpretadores partilham alguns componentes, nomeadamente no seu front-end. Na Figura 4, são descritos os blocos que tipicamente compõem o processo de transformação feito por um interpretador. Os dois primeiros blocos, análise lexicográfica e sintática, transformam o formato de entrada (texto) numa representação interna do programa (tipo de dados) que pode ser mais facilmente tratado por um algoritmo (esta representação será o tema da próxima aula). Essa representação, que pode ou não ser analisada e anotada, é depois interpretada. A arquitetura interna de um compilador é composta por um front-end como aquele descrito para os interpretadores, e por mais duas camadas. Uma camada intermédia e uma camada de saída. A camada intermédia 4
5 Análise Lexicográfica tokens Análise Sintática AST Análise Semântica AST anotada Interpretador Figura 4: Arquitetura de um interpretador ICL de um Luís compilador Caires, João Costa típico, Seco faz o tratamento de uma linguagem intermédia. Esta divisão entre front-end e back-end, com um ponto comum numa camada intermédia, permite com uma única ferramenta, criar uma família de compiladores. Compilando e integrando um conjunto de linguagens, e podendo produzir código de qualquer destas linguagens para um conjunto de processadores. A Figura 5 mostra os principais blocos que compõem um compilador. Os componentes do front-end de um compilador são basicamente os mesmos do que os de um interpretador. A diferença começa na geração de código numa linguagem intermédia que permite normalmente a realização de operações de análise e optimização de código, e que é agnóstica quanto ao processador para o qual se vai gerar código nativo. O back-end do processador pode então gerar código específico para diferentes processadores, tirando partido das particularidades de cada um. 37 5
6 Executable program addl popq ret %edi, -4(%rbp) -4(%rbp), %eax $1, %eax %eax, -12(%rbp) -12(%rbp), %eax %eax, -8(%rbp) -8(%rbp), %eax %rbp Análise Lexicográfica tokens intermediate language define %x) nounwind readnone ssp { entry: %0 = add nsw i32 %x,1 ret i32 %0 assembler/linker tokens Análise Sintática Alocação de registos AST Selecção de instruções Optimizações AST Análise Semântica AST anotada Ling Intermédia Selecção de instruções Figura 5: Arquitetura de um compilador (adaptado de [Pfe]) Referências ICL [AP02] A.W. Appel and J. Palsberg. Modern Compiler Implementation in Java. Cambridge University Press, [AVAU06] Ravi Sethi Alfred V. Aho, Monica S. Lam and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Pearson Education, Inc, [FW08] [Pfe] [Win06] D.P. Friedman and M. Wand. Essentials of programming languages. Essentials of Programming Languages. MIT Press, Frank Pfenning. Lecture notes: compiler design, overview. Jeannette M. Wing. Computational thinking. Commun. ACM, 49(3):33 35, March
Compiladores INTRODUÇÃO. www.pedrofreire.com
Compiladores INTRODUÇÃO www.pedrofreire.com Este documento tem alguns direitos reservados: Atribuição-Uso Não-Comercial-Não a Obras Derivadas 2.5 Portugal http://creativecommons.org/licenses/by-nc-nd/2.5/pt/
Interpretação e Compilação de Linguagens de Programação Sintaxe e Semântica
Interpretação e Compilação de Linguagens de Programação Sintaxe e Semântica 28 de Fevereiro de 2013 Nesta aula apresentam-se dois dos aspetos fundamentais das linguagens de programação, sintaxe e semântica.
Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010
Construção de Compiladores Prof. Raimundo Santos Moura (http://www.ufpi.br/rsm) Construção de Compiladores Livro-Texto: AHO, Alfred V.; ULLMAN, Jeffrey D.; SETHI, R. Compiladores: princípios, técnicas
FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO -
FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO - PLATAFORMA ARES: UMA PLATAFORMA VIRTUAL
Capítulo 8. Software de Sistema
Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java
Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes
Introdução Hardware X Software Corpo Humano Parte Física Componentes 18 Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Hardware Introdução Parte física: placas, periféricos,
UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE
UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE CURSO: CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMPILADORES PROFESSOR: JOHNI DOUGLAS MARANGON Back-End Compilação 1. Compilação etapa Back-end
Curso Técnico em Redes
Curso Técnico em Redes Prof. Airton Ribeiro - 2012 Histórico das Linguagens de Programação O que é? É um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:
Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau
SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores
SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente
CURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
- Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto
Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java
Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java 1 Objetivo: O aluno deverá adquirir capacidades e habilidades
Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Arquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos
Arquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos Abordaremos nesta aula assuntos referentes à arquitetura do conjunto de instruções, tipos de operandos
Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico
Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da
Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01
Introdução à Arquitetura de Computadores Renan Manola Introdução ao Computador 2010/01 Introdução Conceitos (1) Computador Digital É uma máquina que pode resolver problemas executando uma série de instruções
Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:
i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores
Figura 1 - O computador
Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...
3. O NIVEL DA LINGUAGEM DE MONTAGEM
3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também
Programação de Computadores III
Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Sistemas Operacionais
Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais
PROGRAMAÇÃO JAVA. Parte 1
PROGRAMAÇÃO JAVA Parte 1 O que é um programa? Um algoritmo (sequência de operações elementares - instruções) convertido para uma linguagem que possa ser executada por um computador Programa = Algoritmos
COMPILADORES E INTERPRETADORES
Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte
Introdução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
Programação Orientada a Objectos - 28/29; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
ATIVIDADES PRÁTICAS SUPERVISIONADAS
ATIVIDADES PRÁTICAS SUPERVISIONADAS 8ª. Série Compiladores Ciência da Computação A Atividade Prática Supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem desenvolvido por meio de
DESENVOLVIMENTO DE SOFTWARE AULA 1
DESENVOLVIMENTO DE SOFTWARE AULA 1 CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014 1 Características da Plataforma.NET A plataforma.net Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece
Organização e Arquitetura de Computadores I. de Computadores
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores
build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.
UNIP Sistemas de Informação Análise Essencial de Sistemas Prof.Marcelo Nogueira Análise Essencial de Sistemas 1 Introdução A produção de Software é uma atividade build and fix. Análise Essencial de Sistemas
Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.
Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco
Sistemas Operacionais 1/66
Sistemas Operacionais 1/66 Roteiro Máquinas virtuais Emuladores Propriedades Benefícios Futuro 2/66 Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware
15 Computador, projeto e manufatura
A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as
Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados
Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing
Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza
Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I Prof. MSc. Hugo Souza Como já vimos, os sistemas distribuídos são apresentados considerando um planejamento bem mais complexo relacionado aos
Engenharia de Software Sistemas Distribuídos
Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software
Introdução. Sistemas Operacionais. Introdução. Roteiro (1 / 2) Por que Máquinas Virtuais Existem? Roteiro (2 / 2)
Sistemas Operacionais O termo máquina virtual foi descrito na década de 60 como uma abstração de software que enxerga um sistema físico. Aula 7 Máquinas Virtuais Prof. Othon Marcelo Nunes Batista Mestre
UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan
Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado
Memórias Prof. Galvez Gonçalves
Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores
Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Roteiro 2 Conceitos Gerais
Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e
ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)
ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947
UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PRODUÇÃO DE DESIGN MULTIMÉDIA Ano Lectivo 2014/2015
Programa da Unidade Curricular PRODUÇÃO DE DESIGN MULTIMÉDIA Ano Lectivo 2014/2015 1. Unidade Orgânica Arquitectura e Artes (2º Ciclo) 2. Curso Mestrado em Design 3. Ciclo de Estudos 2º 4. Unidade Curricular
Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Java. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Programa de Monitorização da Lagoa de Óbidos e do Emissário Submarino da Foz do Arelho
Programa de Monitorização da Lagoa de Óbidos e do Emissário Submarino da Foz do Arelho Sistema de Informação Geográfica (SIG) para a Lagoa de Óbidos e Emissário Submarino da Foz do Arelho INDÍCE 1. SISTEMA
Adriano Reine Bueno Rafael Barros Silva
Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências
11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador
Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um
Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)
Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance
Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano
Sistemas Operacionais Marcos Laureano 1/66 Roteiro Máquinas virtuais Emuladores Propriedades Benefícios Futuro 2/66 Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3
1.1. Organização de um Sistema Computacional
1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil [email protected], [email protected] Resumo.
Entrada e Saída. Prof. Leonardo Barreto Campos 1
Entrada e Saída Prof. Leonardo Barreto Campos 1 Sumário Introdução; Dispositivos Externos; E/S Programada; E/S Dirigida por Interrupção; Acesso Direto à Memória; Bibliografia. Prof. Leonardo Barreto Campos
ESTUDO DE CASO: LeCS: Ensino a Distância
ESTUDO DE CASO: LeCS: Ensino a Distância HERMOSILLA, Lígia Docente da Faculdade de Ciências Jurídicas e Gerenciais de Garça FAEG - Labienópolis - CEP 17400-000 Garça (SP) Brasil Telefone (14) 3407-8000
Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc [email protected]
Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc [email protected] 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.
SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross [email protected] FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas
Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional
Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens
Introdução a Informática. Prof.: Roberto Franciscatto
Introdução a Informática Prof.: Roberto Franciscatto APRESENTAÇÃO Os computadores chegaram aos diversos níveis das organizações Nestes contexto: Que linguagem entendem? Que produtos podem usar? Dúvidas
LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto
LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de
1 O que é um computador? Definição uma máquina que lê dados, efectua cálculos e fornece resultados.
1 O que é um computador? Definição uma máquina que lê dados, efectua cálculos e fornece resultados. 1.1 - Processos básicos do computador Entrada de dados ler ou receber os valores iniciais ou constantes
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
Introdução à Linguagem Java
Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar
UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES
UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas
O que é o JavaScript?
JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem
Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais
Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:
O modelo do computador
O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década
INF1621 Linguagens de Programação I
INF1621 Linguagens de Programação I Prof.: Marcus Leal [email protected] 4as e 6as, 15-17hs, 17hs, sala 520L Todo o material apresentado em aula será disponibilizado na web http://www.inf.puc-rio.br/~
ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000
ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário Gestão da Qualidade 2005 1 As Normas da família ISO 9000 ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e especifica
Engenharia de Sistemas Computacionais
Engenharia de Sistemas Detalhes no planejamento UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Introdução Na aplicação de um sistema
Arquiteturas RISC. (Reduced Instructions Set Computers)
Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina
1. Apresentação. 1.1. Objetivos
1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em
Especificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Programação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.
Programação Funcional Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2015.1 1/13 1 Paradigmas de programação 2 Programação funcional 3 A Crise
Aspectos técnicos do desenvolvimento baseado em componentes
Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos
Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite [email protected] (81 )9801-6619
Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite [email protected] (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o
Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas
Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
12 EXCEL MACROS E APLICAÇÕES
INTRODUÇÃO O principal objetivo deste livro é auxiliar o leitor na sua aprendizagem sobre os recursos avançados do Excel em especial na interligação com o Visual Basic for Applications (VBA). Pretende-se
Introdução aos Sistemas Operativos
Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: [email protected] web: www.fe.up.pt/~ssn Sumário Definição
Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1
Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Professor: João Fábio de Oliveira [email protected] (41) 9911-3030 Objetivo: Apresentar o que são os Sistemas Operacionais, seu funcionamento, o que eles fazem,
Sistemas de Bases de Dados
Sistemas de Bases de Dados Carlos Viegas Damásio José Alferes e Carlos Viegas Damásio Sistemas de Bases de Dados 2014/15 Objectivos - Em Bases de Dados (2º ano) pretendia-se: Que os estudantes fossem capazes
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às
Sistemas Operacionais
Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado
Introdução. Capítulo 1. 1.1. Breve sinopse
Capítulo 1 Introdução 1.1. Breve sinopse O C é uma linguagem de programação criada por Dennis Ritchie no início da década de 70 do século XX. É uma linguagem de complexidade baixa, estruturada, imperativa
AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário
