Arquitecturas Alternativas. Java Virtual Machine

Tamanho: px
Começar a partir da página:

Download "Arquitecturas Alternativas. Java Virtual Machine"

Transcrição

1 Arquitecturas Alternativas Java Virtual Machine

2 Compilação da linguagem Java A linguagem Java é uma linguagem interpretada que é executada por uma máquina virtual software denominada JVM (Java Virtual Machine) Um programa fonte Java é compilado para bytecode Java que é o ISA da JVM Para cada classe é gerado um ficheiro.class com a sua representação em bytecode Estas classes são carregadas por um componente da JVM, o class loader Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 448

3 Compilação da linguagem Java Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 449

4 A portabilidade do Java reside na JVM Para que seja possível executar aplicações Java numa dada plataforma (arquitectura e sistema operativo) tem de existir uma implementação da JVM que execute nessa plataforma Implementação da JVM para Linux Linux Implementação da JVM para Windows Windows Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 450

5 Carregar um programa Java Um programa é carregado para a JVM através da classe de entrada (a que implementa o método main) Quando a classe é carregada é sujeita à verificação da integridade do seu bytecode Só depois é feita a sua interpretação, o que inclui: Pedir ao class loader que carregue todas as classes referenciadas Criar o ambiente de execução (frame) para o main Criar o thread inicial do programa Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 451

6 Carregar um programa Java Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 452

7 Tabela top-level Um ficheiro.class Classe extendida, versão da classe, nome do ficheiro, Tabela de constantes Informação sobre as variáveis (valor e permissões de acesso) e métodos utilizados Tabela de interfaces implementados Tabela de atributos Tabela de métodos Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 453

8 Arquitectura da JVM Uma JVM é composta por: Memória global (Heap) Gerida automaticamente (Garbage-collector) Código das classes (Área dos métodos) Área de código nativo métodos que não implementados em Java Fluxos de execução (threads) Cada thread é composto por: Program counter (PC) Pilha de execução ou pilha de chamadas Similar à pilha de execução do C Composta pelas frames dos métodos Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 454

9 Frame de activação de um método A invocação de um método dá origem a uma frame com o ambiente de execução desse método Semelhante ao C A frame na JVM tem espaço para: Variáveis locais Posição 0 é para o this, caso o método não seja estático Pilha de avaliação Avalia as expressões existentes no método e é usada para empilhar os argumentos de invocações Informação de execução (não representada na figura) Pilha de avaliação Variáveis locais Var N N Var 1 1 Var 0 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 455

10 Formato das instruções ISA 1 byte para o opcode mais 0 ou mais para os operados Mais do que 200 instruções Load/store variáveis locais Load/store de campos de um objecto Push de constantes para a pilha de avaliação Arrays Aritméticas Conversão de tipos Controlo Call/return Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 456

11 Tipos de dados Tipo Código Descrição byte B 8 bits em complemento para 2 char C 2 bytes sem sinal, Unicode short S 16 bits em complemento para 2 int I 32 bits em complemento para 2 long J 64 bits em complemento para 2 float F 32 bits IEEE-754 double D 64 bits IEEE-754 boolean Z true/false referência return address 32 bits: endereço de um objecto ou array 32 bits Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 457

12 ISA algumas instruções iload n fload n istore n getfield i putfield i Carrega o inteiro na variável local n para a pilha de avaliação. Existem versões abreviadas iload_n (n de 0 a 3) Carrega o float na variável local n para a pilha de avaliação Existem versões abreviadas fload_n (n de 0 a 3) Guarda o inteiro que está no topo da pilha de avaliação para a variável local n. Existem versões abreviadas istore_n (n de 0 a 3) Carrega o inteiro no campo i para a pilha de avaliação Guarda o inteiro que está no topo da pilha de avaliação para o campo i (na tabela de constantes) bipush Push do byte (inteiro de -128 a 127) iadd, ladd, ifeq offset Adição dos operandos que estão na pilha se topo_pilha == 0 então PC= início_método + offset if_icmpge offset se (topo_pilha -1) topo_pilha >= 0 então PC= imét + offset invokevirtual i ireturn Invocar método i (na tabela de constantes) Retornar o inteiro que está no topo da pilha Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 458

13 Frame de activação de um método As operações de load e store operam sobre a posição na frame e não sobre um endereço Exemplo: Suponhamos que existem três variáveis locais int a = 10, b = 20; float c = 2.4; Vamos fazer o load do conteúdo da variável b iload_2 Pilha de avaliação Variáveis locais this 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 459

14 Frame de activação de um método As operações de load e store operam sobre a posição na frame e não sobre um endereço Exemplo: Suponhamos que existem três variáveis locais int a = 10, b = 20; float c = 2.4; Vamos fazer o load do conteúdo da variável b iload_2 O destino é a pilha de avaliação Pilha de avaliação Variáveis locais this 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 460

15 Frame de activação de um método As operações de load e store operam sobre a posição na frame e não sobre um endereço Exemplo: Suponhamos que existem três variáveis locais int a = 10, b = 20; float c = 2.4; Se agora quiseremos guardar esse valor em a fazemos: istore_1 Pilha de avaliação Variáveis locais this 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 461

16 Frame de activação de um método O espaço necessário para as variáveis locais e para a pilha de avaliação é calculado durante a compilação Uma vez que não se manipulam endereços, as frames não têm de estar contíguas em memória No IA-32 e no MIPS estão porque podemos alocar memória na pilha manipulando o stack pointer Exemplo: sub esp, 8 para reservar 8 bytes para variáveis locais Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 462

17 Arquitectura da JVM Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 463

18 Exemplo da compilação de um método public int mymet(int a, } int c; if (a < b) c = a; else c = b+100; return c; int b) { public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 464

19 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn c? 3 b 17 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 465

20 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn 10 c? 3 b 17 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 466

21 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn c? 3 b 17 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 467

22 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn c? 3 b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 468

23 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn 7 c? 3 b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 469

24 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn c? 3 b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 470

25 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 15 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn 107 c? 3 b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 471

26 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 12 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn c b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 472

27 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 12 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn 107 c b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 473

28 Exemplo da execução de um método public int mymet(int, int); Code: Stack=2, Locals=4 0: iload_1 1: iload_2 2: if_icmpge 10 5: iload_1 6: istore_3 7: goto 12 10: iload_2 11: bipush : iadd 14: istore_3 15: iload_3 16: ireturn c? 3 b 7 2 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 474

29 Invocação do método Suponhamos o método mymet faz parte da classe MyClass public class MyClass { private int x, y = 10; public MyClass(int a) { this.x = a; } public void sety(int a) { this.y = mymet(a, ); } public int mymet(int a, int b) { } } Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 475

30 Invocação do método this.y = this.mymet(a,100000); aload_0 // carrega endereço iload_1 ldc #4 // carrega constante superior a 16 bits invokevirtual #5 putfield #10 a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 476

31 Invocação do método this.y = this.mymet(a,100000); aload_0 // carrega endereço iload_1 ldc #4 // carrega constante superior a 16 bits invokevirtual #5 putfield # ref a 10 1 this ref 0 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 477

32 Tabela de constantes: Invocação do método Constant pool: const #2 = class #35 const #4 = int const #5 = Method #2.#37 const #28: = Asciz mymet; const #29: = Asciz (II)I; const #35 = Asciz MyClass; const #37 = #28.#29 Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 478

33 Endereço de retorno Onde é que é colocado o endereço de retorno? Não existe uma norma definida pela especificação da máquina O normal será reservar um campo na frame de método para o guardar Semelhante ao C Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 479

34 Representação de um objecto Não existe especificação depende da implementação Apontador para os dados próprios da instância Tabela com os valores dos campos Apontador para o código da classe Flags para o garbage collector Entidade responsável por limpar da memória objectos que já não são precisos É preciso saber quantas referências é que existem para um dado objecto Se tiver 0 referências pode ser garbage-collected Suporte para exclusão mútua Assunto da disciplina FSO Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 480

35 Invocação de métodos invokespecial Mais coisas Invocar método especial Exemplo: construtor de um objecto invokestatic Invocar método estático invokeinterface Invocar método de um interface As excepções são implementadas com subrotinas Existem instruções para chamar e retornar de subrotinas: jsr e ret Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 481

36 Como ver e experimentar Podem ver o assembly de uma classe através do comando javap javac MyClass.java javap -c MyClass -verbose Podem usar o assembler Jasmin ( para fazer uns programas em assembly da JVM A sintaxe não é exactamente a descrita nos slides no que se refere às directivas Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 482

37 Exemplo public class C { public static main(string[] args) { C x = new C(10,30); } } Apontador para a pool de objectos Apontador para a classe Referência (apontador para o objecto) Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 483

38 Compilação Just-in-time (JIT) Aplicação Java Interpretado bytecode JVM Traduzido (compilado) Compilador JIT Código nativo Sistema Operativo Interpretado Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 484

39 Compilação Just-in-time (JIT) Para melhorar a performance algumas JVMs têm um compilador JIT Este compila o bytecode a executar para código nativo (código máquina da arquitectura) em tempo de execução, ou seja, durante a execução do programa Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 485

40 A JVM e outras linguagens A JVM pode ser usada como suporte à execução de outras linguagens Exemplos: Scala Jruby Jython Algumas linguagens compilam para java para poderem usufruir das suas APIs Outras compilam directamente para bytecode Arquitectura de Computadores (2008/2009): Arquitecturas alternativas 486

JVM Máquina Virtual Java

JVM Máquina Virtual Java JVM Máquina Virtual Java Cristiano Damiani Vasconcellos cristiano.vasconcello@udesc.br JVM - Introdução Processador virtual; Possui seu próprio conjunto de instruções; Arquitetura baseada em pilha de operandos;

Leia mais

Arquitectura de Computadores II. Máquinas Virtuais

Arquitectura de Computadores II. Máquinas Virtuais Arquitectura de Computadores II 3º Ano Máquinas Virtuais João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Março 2003 Máquinas Virtuais Questões que levaram à introdução de máquinas

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula extra A Máquina Virtual Java Prof. Márcio Delamaro delamaro@icmc.usp.br Como

Leia mais

Compiladores Geração de Código

Compiladores Geração de Código Compiladores Geração de Código Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica

Leia mais

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. P. Fazendeiro & P. Prata POO FP0/1 ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

Um Exemplo de Nível ISA: o IJVM. Pilhas. Pilhas. O Modelo de Memória da IJVM. Pilhas de Operandos. Nível ISA

Um Exemplo de Nível ISA: o IJVM. Pilhas. Pilhas. O Modelo de Memória da IJVM. Pilhas de Operandos. Nível ISA Ciência da Computação Arq. e Org. de Computadores Nível ISA Prof. Sergio Ribeiro Um Exemplo de Nível ISA: o IJVM Objetivo: Introduzir um nível ISA (Instruction Set Architecture), a ser interpretado pelo

Leia mais

André Santos / Pablo Sampaio

André Santos / Pablo Sampaio JVM- Máquina Virtual Java André Santos / Pablo Sampaio Estrutura da Apresentação Máquinas Virtuais Introdução à JVM Arquivo class Tipos de Dados Descritores de Tipos Frames Instruções Compilando para a

Leia mais

Linguagens de Programação Classificação

Linguagens de Programação Classificação Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda

Leia mais

Capítulo 4 Nível da microarquitetura

Capítulo 4 Nível da microarquitetura Capítulo 4 Nível da microarquitetura Nível acima da lógica digital Função: Implementar a ISA (Instruction Set Architecture) O projeto da microarquitetura depende diretamente da ISA, além dos objetivos

Leia mais

Compiladores Ambiente de Execução

Compiladores Ambiente de Execução Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

Microjava. Káio, Estevão e André

Microjava. Káio, Estevão e André Microjava Káio, Estevão e André Sumário da apresentação JVM - a máquina virtual Java microjava 701 Java Virtual Machine - JVM Máquina que executa programas em bytecode Processador virtual: o Possui seu

Leia mais

Microarquitetura IJVM. Datapath mic-1. Função dos Registradores. mic-1

Microarquitetura IJVM. Datapath mic-1. Função dos Registradores. mic-1 Microarquitetura IJVM mic-1 Datapath mic-1 Este é mais um exemplo de datapath para microarquitetura IJVM desenvolvida por Andew Tanenbaum Parte da CPU que contém a ALU, suas entradas e saídas 2 Função

Leia mais

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção ARQUITECTURA DE COMPUTADORES O estudo da arquitectura de computadores efectua-se com recurso à Abstracção Podemos ver um computador de várias formas. Para um utilizador normalmente o computador é a aplicação

Leia mais

Compilação dos trabalhos: questões de concurso

Compilação dos trabalhos: questões de concurso 1 Compilação dos trabalhos: questões de concurso UFBA/DCC/Linguagens para Aplicação Comercial/2009.1 MPU/2007 (Equipe 1) 1 Quanto às variáveis Java, um inteiro de 64 bits em notação de complemento de dois

Leia mais

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

Programação Orientada a Objectos - 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 sem ter que ser alterado ou compilado novamente. Em Java o código

Leia mais

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 05: Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE SÃO PROCEDIMENTOS? Procedimentos são um conjunto

Leia mais

Manipulação de Bytecode Java

Manipulação de Bytecode Java Manipulação de Bytecode Java Mantendo o espírito Hacker no mundo das linguagens de alto nível André Luiz Breves de Oliveira andre.breves@gmail.com class Hello { public static void main(string[] args) {

Leia mais

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

Programação Orientada a Objectos - 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 sem ter que ser alterado ou compilado novamente. Em Java o código

Leia mais

Lic. Engenharia de Sistemas e Informática

Lic. Engenharia de Sistemas e Informática Conceitos de Sistemas Informáticos Lic. Engenharia de Sistemas e Informática 1º ano 2004/05 Luís Paulo Santos Módulo Arquitectura de Computadores Execução de Programas LPSantos, CSI: Arquitectura de Computadores,

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

file.j. a Baseado no Jasmin User Guide. (http://jasmin.sourceforge.net/)

file.j. a Baseado no Jasmin User Guide. (http://jasmin.sourceforge.net/) Jasmin a 1. Jasmin é um assembler para Java que recebe um descrição textual (ASCII) de classes Java e as converte para arquivos (binários) no formato class file. 2. Foi desenhado para ser um assembler

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU Aula 1 POO 1 Prática Profa. Elaine Faria UFU - 2019 Introdução Java Linguagem de programação poderosa Utiliza o paradigma Orientado a Objetos Muito utilizada em aplicativos para Internet e para redes Difundida

Leia mais

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo Nível da Arquitetura do Conjunto de Instruções Ronaldo de Freitas Zampolo Tópicos Introdução Visão geral do nível ISA Tipos de dados Formatos de instruções Endereçamento Tipos de instruções Fluxo de controle

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining Arquitecturas Alternativas Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining X86-64 Qual é o ISA que temos nas máquinas Intel actuais? O x86-64 que é uma extensão para

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou

Leia mais

Manipulação de bytecodes Java

Manipulação de bytecodes Java Manipulação de bytecodes Java Eduardo Oliveira de Souza esouza@ime.usp.br 27/10/2006 Manipulação de Bytecodes Java 1 Roteiro Bytecodes Manipulação de bytecodes Ferramentas Considerações Finais Bibliografia

Leia mais

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro

Leia mais

Pilha de execução Volnys Borges Bernal Departamento de Sistemas Eletrônicos (PSI) Escola Politécnica da USP

Pilha de execução Volnys Borges Bernal Departamento de Sistemas Eletrônicos (PSI) Escola Politécnica da USP 2005-2015 Volnys Bernal 1 Pilha de execução Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos (PSI) Escola Politécnica da USP 2005-2015 Volnys Bernal 2 Agenda Os desafios da execução

Leia mais

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

Algoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018

Algoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018 Algoritmos e Modelação Computacional Paulo Mateus MEBiom LMAC 2018 Objetivos Edição e compilação de programas Tipos e expressões Declaração de variáveis Atribuição, composição sequencial, iterativa e alternativa

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática Programação Orientada a Objectos - 25/26; 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

Leia mais

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

Leia mais

a Baseado no Capítulo 5 de Inside the Virtual Machine, por Bill Vernners.

a Baseado no Capítulo 5 de Inside the Virtual Machine, por Bill Vernners. Arquitetura da Máquina Virtual Java a 1. Principais subsistemas máquina virtual Java (JVM): Carregador de classes ( class loader ): carrega classes e interfaces a partir de nomes completamente qualificados.

Leia mais

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

Programação ao nível da máquina

Programação ao nível da máquina Programação ao nível da máquina Ponto de vista do programador O nível Assembly Modelo de programação Assembler (processo de compilação da linguagem C) Que assembly para AC? Introdução ao assembly NASM

Leia mais

Ambientação com a Sintaxe de Java: parte 1

Ambientação com a Sintaxe de Java: parte 1 Ambientação com a Sintaxe de Java: parte 1 Prof. Gustavo Wagner FATEC-PB Programas em Java Texto do programa: arquivo com extensão.java Arquivo contém ao menos uma classe Nome do arquivo deve ser IGUAL

Leia mais

Compiladores Tópicos de JVM

Compiladores Tópicos de JVM Compiladores Tópicos de JVM Rui Gustavo Crespo IST/DEEC@2005 Compiladores JVM : 1/40 Máquinas virtuais (1) Um programa, codificado numa linguagem de alto nível, só pode ser executado na máquina para a

Leia mais

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO

Leia mais

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

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

Aula teórica 7. Preparado por eng.tatiana Kovalenko Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana

Leia mais

Arquitetura da Máquina Virtual Java

Arquitetura da Máquina Virtual Java Arquitetura da Máquina Virtual Java James de Souza Instituto de Computação Universidade Estadual de Campinas RA 991899 jamesdesouza@gmail.com ABSTRACT Os diferentes tipos de arquiteturas de computadores

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

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[]

Leia mais

Sintaxe da linguagem Java

Sintaxe da linguagem Java Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Uma classe pública com nome A tem

Leia mais

INTRODUÇÃO A LINGUAGEM JAVA

INTRODUÇÃO A LINGUAGEM JAVA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A LINGUAGEM JAVA Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso Técnico

Leia mais

Microcontrolador FemtoJava Pipeline (Low Power)

Microcontrolador FemtoJava Pipeline (Low Power) Microcontrolador FemtoJava Pipeline (Low Power) UFRGS Programa de Pós graduação em Computação CMP 237 Arquitetura e Organização de Processadores Prof. Dr. Flávio Rech Wagner Aluno: Paulo Roberto Miranda

Leia mais

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Linguagem C Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João

Leia mais

Introdução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Introdução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá Introdução ao Java Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

7 Mecanismos de gestão de memória. Prof. Ricardo Silva

7 Mecanismos de gestão de memória. Prof. Ricardo Silva 7 Mecanismos de gestão de memória Prof. Ricardo Silva Introdução Um programa reside no disco sob a forma de ficheiro executável Para ser executado, o programa tem de ser colocado em memória e associado

Leia mais

A máquina SECD. Pedro Vasconcelos. 20 de Fevereiro de 2014

A máquina SECD. Pedro Vasconcelos. 20 de Fevereiro de 2014 A máquina SECD Pedro Vasconcelos 20 de Fevereiro de 2014 O que é a máquina SECD? Um interpretador da linguagem funcional ISWIM (Landin, 1964) Máquina virtual para compilação LISP/Scheme (Henderson, 1980)

Leia mais

Infraestrutura de Hardware. Funcionamento de um Computador

Infraestrutura de Hardware. Funcionamento de um Computador Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é

Leia mais

2 Referencial Teórico

2 Referencial Teórico Referencial Teórico 2 Referencial Teórico Um programa Java é escrito em um arquivo java. Um compilador (em geral o JavaC) é então usado para gerar os bytecodes e armazená-los em um arquivo class. Este

Leia mais

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física

Leia mais

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

Disciplina: Introdução à Engenharia da Computação Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. rosalvo.oliveira@univasf.edu.br 2 Representação

Leia mais

Programação em Sistemas Computacionais

Programação em Sistemas Computacionais Programação em Sistemas Computacionais Linguagem C Introdução, tipos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado no slides de Pedro Pereira Enquadramento

Leia mais

Infraestrutura de Hardware. Instruindo um Computador Ponteiros, Execução de Programas em C e Java, Características do Intel x86

Infraestrutura de Hardware. Instruindo um Computador Ponteiros, Execução de Programas em C e Java, Características do Intel x86 Infraestrutura de Hardware Instruindo um Computador Ponteiros, Execução de Programas em C e Java, Características do Intel x86 Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Linguagem de Montagem Assembly

Linguagem de Montagem Assembly Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de

Leia mais

Threads em Java. Java Threads. Java Componentes: JVM JVM:

Threads em Java. Java Threads. Java Componentes: JVM JVM: Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo

Leia mais

Sistemas Operacionais. Pilha de execução Volnys B. Bernal 1. Agenda. Pilha de execução. Os problemas. Os problemas.

Sistemas Operacionais. Pilha de execução Volnys B. Bernal 1. Agenda. Pilha de execução. Os problemas. Os problemas. 25-215 Volns Bernal 1 25-215 Volns Bernal 2 Agenda Volns Borges Bernal volns@lsi.u.br Os problemas Controle do endereço de retorno da função Controle do quadro da pilha de Departamento de Sistemas Eletrônicos

Leia mais

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) Ø LP Java. Estrutura de um programa em Java. Ø Conjunto de caracteres utilizado. Ø Identificadores. Ø Variáveis e constantes. Ø Tipos

Leia mais

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Linguagem de Programação C. Prof. Fabrício Olivetti de França Linguagem de Programação C Prof. Fabrício Olivetti de França Linguagem C 2 Linguagem C Imperativo e estruturado Pequeno conjunto de palavras-chaves, operadores, etc. Tipagem estática, porém fraca Permite

Leia mais

Compiladores Ambiente de Execução

Compiladores Ambiente de Execução Compiladores Ambiente de Execução Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica

Leia mais

Sumário. Sistemas Operativos 1

Sumário. Sistemas Operativos 1 Sumário Requisitos mínimos do hardware para suportar um SO protegido (ex: Windows/Linux) Mecanismos hardware de suporte nas arquitecturas x86/x64 Sequência de chamada de serviços sistema no Windows a 32

Leia mais

Introdução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Introdução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Introdução PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Resumo Funcionamento da cadeira Intuição sobre programação orientada-a-objectos A linguagem Java: história

Leia mais

(Características fundamentais de Codificação de programas)

(Características fundamentais de Codificação de programas) Curso: Análise e Desenvolvimento de Sistemas Disciplina Algoritmos e Programação (Características fundamentais de Codificação de programas) Prof. Wagner Santos C. de Jesus wsantoscj@gmail.com Histórico

Leia mais

MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018

MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018 MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018 MATERIAL DIDÁTICO Harris & Harris 6.4.6 Procedure Calls Patterson & Hennessy (4a edição) 2.8 Supporting Procedures in Computer

Leia mais

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos

Leia mais

Fabiano Moreira.

Fabiano Moreira. Fabiano Moreira professor@fabianomoreira.com.br Um pouco de história Java 1.02 (250 classes, lenta) Java 1.1 (500 classes, um pouco mais rápida) Java 2, versões 1.2-1.4 (2300 classes, muito mais rápida)

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Métodos de implementação de linguagens. Kellen Pinagé

Métodos de implementação de linguagens. Kellen Pinagé Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de

Leia mais

PROGRAMAÇÃO JAVA. Parte 2

PROGRAMAÇÃO JAVA. Parte 2 PROGRAMAÇÃO JAVA Parte 2 Características interessantes do JAVA: Verificação automática de ortografia Recolha automática do lixo (GC) Simplificação de ponteiros de memória Acesso à rede simplificado Multi-threading

Leia mais

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans Objetivos da aula: Introduzir conceitos da linguagem Java Apresentar um histórico da linguagem Apresentar

Leia mais

No final deste curso, saberás criar programas através da linguagem de programação Java.

No final deste curso, saberás criar programas através da linguagem de programação Java. Programação em Java Programação Formato: Mentored - Online Preço: 415 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 24h/24h Duração: ~45h

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

AULA 1 INTRODUÇÃO AO JAVA

AULA 1 INTRODUÇÃO AO JAVA AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede

Leia mais

Programando em Assembly

Programando em Assembly Programando em Assembly precisa-se saber exatamente como interpretar & gerenciar a memória e como usar instruções de baixo nível para o processamento Não existem tipos e variáveis (apenas bytes na memória)

Leia mais

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C# Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina POO -2017 Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C# http://www1.univap.br/~wagner Prof.

Leia mais

AJProença, Sistemas de Computação, UMinho, 2017/18 1

AJProença, Sistemas de Computação, UMinho, 2017/18 1 Introdução aos Sistemas de Computação (3) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 2 Visão Geral da Tecnologia Java Aplicação Hello World! Operadores e

Leia mais

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

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização

Leia mais

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Noçõ ções básicas b da linguagem Java Profs. Marcel Hugo e Jomi Fred Hübner Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Introduçã ção Origem Funcionamento Vantagens Linguagem

Leia mais

Instalação JDK 10/03/2017

Instalação JDK 10/03/2017 1 Instalação JDK 10/03/2017 Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por traduzir o que sua aplicação

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização

Leia mais

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

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever

Leia mais

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Programação Orientada a Objetos SANTOS, Rafael (PLT) Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc

Leia mais