Compiladores Tópicos de JVM

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

Download "Compiladores Tópicos de JVM"

Transcrição

1 Compiladores Tópicos de JVM Rui Gustavo Crespo Compiladores JVM : 1/40

2 Máquinas virtuais (1) Um programa, codificado numa linguagem de alto nível, só pode ser executado na máquina para a qual o compilador gera código final Vantagens: maior eficiência no desempenho (memória e tempo de execução) Inconvenientes: execução noutra máquina exige Nova compilação Duplicação de espaço em disco (ficheiros executáveis para cada máquina) Selecção entre as diversas configurações do programa executável. Compiladores JVM : 2/40

3 Máquinas virtuais (2) A compilação para máquina virtual, permite haver um único programa executável para máquinas distintas. A execução é feita por um interpretador específico, que transcreve instruções da máquina virtual para o processador+sistema operativo. Programa fonte Compilador Executável Máquina virtual Processador + SO Saída Compiladores JVM : 3/40

4 Máquinas virtuais (3) A máquina virtual de eleição é a pilha Vantagens: Transcrição muito fácil Máquinas reais disponibilizam instruções para manipulação de pilhas Inconvenientes: processamento muito lento! Exemplos de máquinas virtuais baseadas em pilhas Compilador UCSD Pascal gera código para máquina baseada numa pilha,o P-code. JVM- Java Virtual Machine, da Sun, para Java CLI- Common Language Infrastructure, da Microsoft, para C# e VisualBasic Linguagem Postscript processada por ferramentas (ex: Gview) com 4 pilhas: operando, dicionário, execução e gráfico Compiladores JVM : 4/40

5 Máquinas virtuais (4) O JVM foi implementado em diversas plataformas SPARC, de sistema operativo Sun-OS Intel 86, de sistemas operativos Windows e Linux powerpc, de sistema operativo MacOS JVM executa threads thread, ou lighweight process, é uma unidade de processamento paralelo dentro do mesmo programa. ao contrário dos processos, todas as threads são executadas dentro do mesmo ambiente) Compiladores JVM : 5/40

6 JVM arquitectura (1) A. Mecanismos do JVM: Carregamento de classes ( class loader ): mecanismo que instala classes e interfaces. O mecanismo inclui verificações de segurança (ex: o ficheiro.class está bem definido). Engenho de execução ( execution engine ): mecanismo responsável pela execução dos métodos das classes carregadas. A informação necessária à execução é dividida em 4 espaços conceptuais: Compiladores JVM : 6/40

7 JVM arquitectura (2) Engenho de execução do JVM pc Bytecodes Área de método Código Dados da classe Armazém constantes optop Activação opval_2 opval_1 Ambiente execução lvar_n lvar_1 lvar_0 Pilha Java Pilha operandos Variáveis locais Compiladores JVM : 7/40

8 JVM arquitectura (3) B. Espaços conceptuais da máquina de execução 1. Área do método ( method area ), partilhado por todas as threads onde reside: código de cada método da classe dados da classe armazém de constantes ( constant pool ) para literais de tipos primitivos e instâncias da classe de caracteres 2. Activações ( frames ), uma para cada evocação do método Acervo ( heap ), de onde são é obtida área para os dados das instâncias Registo contador de programa ( program counter ), um por cada thread, com o endereço da instrução a executar. Compiladores JVM : 8/40

9 JVM arquitectura (4) C. Componentes de activação de método: 1. Pilha privada para Avaliação de expressões Controlo do fluxo de execução do programa 2. Tabela de 64K para variáveis locais, referenciadas por inteiros 0 referencia objecto que executa o método (this) Parâmetros da evocação referenciados a partir de 1 Variáveis locais ocupam restantes posições Nota: nas classes static, parâmetros são referenciados a partir de 0. Nota: O JVM tem uma pilha, onde são inseridas as plihas privadas de cada método evocado. A activação no topo da pilha JVM designada por pilha activa de activação (a única activação que pode ser usada). Compiladores JVM : 9/40

10 Instruções - formato Instruções designadas por Bytecodes, por o código ocupar apenas 1 Byte (200 ao todo) Cada instrução pode ter 0, ou mais, operandos. As instruções são carregadas na área de método do JVM, e executadas quando o método (que as gera) é evocado. Compiladores JVM : 10/40

11 Instruções tipos (1) O tipo de dados envolvido na instrução é determinado por uma letra. Letra Tipo Letra Tipo b Byte L Instância de classe s Short [ Tabela 1 dimensão c Caractere V void i Inteiro a Referência z Booleano l long d Double Lnome; Ex: Ljava/lang/String; é de tipo cadeia de caracteres Compiladores JVM : 11/40

12 Instruções tipos (2) JVM segue representação big-endien (Byte mais significativo no endereço mais baixo) Os tipos primitivos b,s,c,i e f ocupam uma entrada na pilha. Os tipos primitivos l e d ocupam duas entradas na pilha. Número de Bytes dos literais de cada tipo usados na instrução: Tipo Espaço (bytes) Tipo Espaço (bytes) b 1 l 8 (2 entradas na pilha) s 2 f 4 c 2 d 8 (2 entradas na pilha) i 4 Compiladores JVM : 12/40

13 Instruções tipos (3) i2[bcsfld] converte inteiro no topo da pilha Ex: i2f, converto inteiro para float f2[ild], d2[ifl] Nota: não é cast, pode haver perda de informação! Compiladores JVM : 13/40

14 Instruções load / store (1) Tload n carrega na pilha valor T na posição n Tabela variáveis x a b c d Pilha iload 2 Pilha Tabela variáveis c x a b c d Tload_[0-3]carrega na pilha valor T nas posições entre 0 e 3 (instrução sem operandos) Ex: iload_2, carrega inteiro da posição 2 mas ocupa apenas 1 Byte Compiladores JVM : 14/40

15 Instruções load / store (2) bipush val carrega na pilha o byte val sipush val carrega na pilha o short val iconst_m1 carrega na pilha inteiro 1 (instrução sem operandos) aconst_null carrega na pilha null Tconst_vT carrega na pilha literal Tipo vt Tipo vt (instrução sem operandos) i 0..5 f 0..2 l 0..1 d 0..1 Tabela variáveis x a b c d Pilha iconst_2 Tabela variáveis x a b c d Pilha 2 Compiladores JVM : 15/40

16 Instruções load / store (3) ldc #idx carrega constante de índice idx (8 bits), do armazém de constantes ldc_w #idx carrega constante de índice idx,idx+1 (16 bits) do armazém de constantes ldc2_w #idx carrega constante l/d de índice idx,idx+1 do armazém de constantes Tstore n salva da pilha valor T na posição n Tabela variáveis x a b c d Pilha y Tstore_[0-3] istore 2 Tabela variáveis x a b y d Pilha Compiladores JVM : 16/40

17 Instruções load / store (4) getstatic carrega referência a variável de classe getfield carrega referência a variável de instância Exemplo: getstatic java/lang/system.in Ljava/io/InputStream; campo Compiladores JVM : 17/40

18 Instruções aritméticas (1) Tadd retira 2 operandos da pilha, insere soma na pilha Pilha Tabela variáveis y x a b c d iadd Pilha Tabela variáveis y+x a b c d Tsub, Tmul, Tdiv, Tneg, Trem T é de tipo i,l, f, d resto negação iinc pos val adiciona val na posição pos (pode ser negativo) Compiladores JVM : 18/40

19 Instruções aritméticas (2) Tshl,Tshr desloca operando no 2º lugar, pelos bits mais baixos no oper do topo. T=i (5 bits), ou T=l (6 bits) Tand And bit a bit Tor Or bit a bit Txor Xor bit a bit Compiladores JVM : 19/40

20 Instruções pilha operandos (1) pop retira topo da pilha Pilha Tabela variáveis y x a b c d pop Tabela variáveis x a b c d Pilha pop2 retira duas posições da pilha swap troca dois operandos Pilha Tabela variáveis y x a b c d swap Pilha Tabela variáveis x y a b c d Compiladores JVM : 20/40

21 Instruções pilha operandos (2) dup duplica topo da pilha Pilha Tabela variáveis x a b c d dup Pilha Tabela variáveis x x a b c d Nota: tipicamente, a geração de um objecto feita por uma sequência de instruções new e evocação do <init> new java/lang/stringbuilder dup invokespecial java/lang/stringbuilder/<init>()v Compiladores JVM : 21/40

22 Instruções - comparações Tcmpg retira 2 operandos da pilha (T:d ou f), compara-os e insere inteiro na pilha» 0 : iguais» 1 : topo<2º, ou um dos valores igual a NaN» -1 : topo>2º Tcmpl semelhante a Tcmpg, excepto resultado 1 se um dos valores for NaN. Compiladores JVM : 22/40

23 Instruções controlo execução (1) jmp <lbl> salto incondicional (16 bits) jmp_w <lbl> salto incondicional (32 bits) ifxx <lbl> retira topo da pilha, compara-o XX com zero, salta se resultado for verdadeiro if_icmpxx <lbl> retira dois elementos, compara-os XX, salta se resultado for verdadeiro As etiquetas são da forma id: inst XX Condição XX Condição eq val == 0 gt val > 0 lt val < 0 ge val >= 0 le val <= 0 null val == null ne val!= 0 nonnull val!= null Compiladores JVM : 23/40

24 Instruções controlo execução (2) lookupswitch <chave1>: <lbl1> <chave2>: <lbl1> default: <def-lbl> Retira topo da pilha e salta para etiqueta indicada pelo valor Compiladores JVM : 24/40

25 Instruções objectos/métodos (1) invokemode <method-spec> Existem 4 modos de invocação: interface (método declarado numa interface) special (métodos que requerem manipuladores especiais: <init> ou <super>) static (método de classe estática) virtual (método normal) Nota: nas versões anteriores ao JDK1.02, instrução invokespecial denominada invokenonvirtual Compiladores JVM : 25/40

26 Instruções objectos/métodos (2) <method-spec> possui formato nome-classe/método/(argumentos)tipo-retorno Pilha antes da chamada: Pilha no retorno: Obj-ref [res] arg1 arg2 Os argumentos são sequência de tipos, sem separadores. Ex: private static void quicksort(char[] buffer, int lower, int upper) transcrito por.method public static quicksort([cii)v Nota: na invocação é obrigatório indicar os tipos de parâmetros, devido ao polimorfismo do JVM argn topo Compiladores JVM : 26/40

27 Instruções objectos/métodos (3) Treturn retorna valor no topo da pilha (T=, se método retornar void) new cria instância de classe e insere referência no topo da pilha Instrução new deve ser seguida pela evocação da inicialização, que consome da pilha a referência. Exemplo: new Integer(20); transcrito por new java/lang/integer ; cria objecto dup ; duplica topo pilha bipush 20 ; insere valor invokespecial java/lang/integer/<init>(i)v parâmetro de init Compiladores JVM : 27/40

28 Instruções tabelas (1) São objectos, mas tratados com instruções apropriadas para tornar código mais eficiente newarray Tipo cria tabela Ex: newarray int (tabela de inteiros) multianewarray <desc-array> <num-dim> Nota: 1<num-dim<255 Ex: new int[6][3][] transcrita por bipush 6 bipush 3 multianewarray [[[I 2 ;aloca 2 das 3 dimensões Compiladores JVM : 28/40

29 Instruções tabelas (2) Taload insere na pilha componente da tabela, de tipo T. Tastore retira da pilha topo, de tipo T e modifica componente da tabela. arraylength obtém dimensão da tabela Compiladores JVM : 29/40

30 Instruções tabelas (3) ; x = new int[6][3][]; bipush 6 bipush 3 multianewarray [[[I 2 astore_1 ; guarda referência em x ; x[0][1] = new int[50]; aload_1 ; insere na pilha referência da tabela iconst_0 ; insere na pilha x[0] aaload ; iconst_1 ; aloca tabela de 50 inteiros bipush 50 ; newarray int ; aastore ; guarda referência em x[0][1] Compiladores JVM : 30/40

31 Instruções excepções (1) As excepções são lançadas pela instrução athrow. O topo da pilha deve conter a referência ao objecto instância de uma excepção. new java/io/ioexception dup invokespecial java/io/ioexception/<init>()v athrow Compiladores JVM : 31/40

32 Instruções excepções (2) O corpo try{ }catch{ } é determinado no jasmin pela directiva.catch java/lang/exception from lb11 to lbl2 using Handler lbl1 e lbl2 são as etiquetas das instruções delimitadoras do try{ }, e Handler é a etiqueta da primeira instrução do catch{ }. Compiladores JVM : 32/40

33 Directivas (1) A classe pode conter as directivas.source id # opcional.class Qualif id Qualif é o qualificador da classe (public, ).super id.implements id Exemplo.source HelloWorld.j.class public HelloWorld.super java/lang/object Compiladores JVM : 33/40

34 Directivas (1) O método deve ser delimitado pelas directivas.method Qualif id(pars)tipo Qualif é o qualificador do método (public, ).end method Em cada método devem ser indicadas as seguintes directivas.limits locals nn espaço de variáveis locais (this ocupa 1ª pos. nos métodos não estáticos).limits stack nn profundidade máxima da pilha de operandos Compiladores JVM : 34/40

35 Armazém de constantes Constantes armazenadas no armazém constant pool, indexadas a partir de #1. void usemanynumeric() { int i = 100; } int j = ; long l1 = 1; long l2 = 0xffffffff; double d = 2.2;... Method void usemanynumeric() 0 bipush 100 // Push a small int with bipush 2 istore_1 3 ldc #1 // Push int constant ; a larger int // value uses ldc 5 istore_2 6 lconst_1 // A tiny long value uses short, fast lconst_1 7 lstore_3 8 ldc2_w #6 // Push long 0xffffffff (that is, an int -1); any // long constant value can be pushed using ldc2_w 11 lstore 5 13 ldc2_w #8 // Push double constant ; uncommon // double values are also pushed using ldc2_w 16 dstore 7 Compiladores JVM : 35/40

36 Exemplo (1) Ex: O classico Hello world! class HelloWorld { public static void main(string args[]) { System.out.println( Hello World!"); } }.source HelloWorld.j.class public HelloWorld.super java/lang/object.method public <init>()v ; construtor simples aload_0 invokenonvirtual java/lang/object/<init>()v return.end method Compiladores JVM : 36/40

37 Exemplo (2).method public static main([ljava/lang/string;)v.limit stack 2 getstatic java/lang/system/out:ljava/io/printstream; ldc "Hello World!" invokevirtual java/io/printstream/println(ljava/lang/string;)v return.end method Nota: o ficheiro.class ocupa apenas 377 B Compiladores JVM : 37/40

38 Ferramentas (1) javap c lista código JVM de ficheiro class Exemplo public class Test { public static void main(string args[]) { int i; i = 2; i = i + 7; } } Compiladores JVM : 38/40

39 Ferramentas (2) C:\ > javap -c Test Compiled from Test.java public class Test extends java.lang.object { public Test(); // a default constructor created public static void main(java.lang.string[]); } Method Test() 0 aload_0 1 invokespecial #1 4 return Method void main(java.lang.string[]) 0 iconst_2 // Put integer 2 on stack 1 istore_1 // Store the top stack value at location 1 2 iload_1 // Put the value at location 1 on stack 3 bipush 7 // Put the value 7 on the stack 5 iadd // Add two top stack values together 6 istore_1 // The sum, on top of stack, stored at location 1 7 return // Finished processing Compiladores JVM : 39/40

40 Ferramentas (3) jasmin gera ficheiro.class Pode ser obtido na página $ java -jar jasmin.jar <filenames> Compiladores JVM : 40/40

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

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

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

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

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

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

Arquitecturas Alternativas. Java Virtual Machine

Arquitecturas Alternativas. Java Virtual Machine Arquitecturas Alternativas Java Virtual Machine Compilação da linguagem Java A linguagem Java é uma linguagem interpretada que é executada por uma máquina virtual software denominada JVM (Java Virtual

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

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

Leia mais

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal. Geração de Código para Smallpascal a 1. Já estudamos como SableCC faz uso do design pattern visitor para construir compiladores modulares. Vimos também os principais componentes da máquina virtual Java

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

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

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

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

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

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 2- Exemplo de Microarquitetura

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

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

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

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

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

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos Conjunto de instruções e modos de endereçamento aula 4 Profa. Débora Matos Conjunto de Instruções A = ((B + C) x D + E F)/(G x H) A H denotam posições da memória endereços As arquiteturas possuem as seguintes

Leia mais

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Slides_Java_1 !$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code. Slides_Java_1!"#$!" $ % & $ Sistemas Informáticos I, 2005/2006 ( Java source code Compile javac Java bytecode Run java Output:!"#) %& Name of program. Must be the same as name of file.!"#$!"$ % & $ Where

Leia mais

4-1. Parte2: A Arquitetura do Conjunto de Instruções

4-1. Parte2: A Arquitetura do Conjunto de Instruções 4-1 Parte2: A Arquitetura do Conjunto de Instruções 4-2 Bibliografia [1] Miles J. Murdocca e Vincent P. Heuring, Introdução à Arquitetura de Computadores [2] Marcelo Rubinstein Transparências do curso

Leia mais

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br Java - Introdução Professor: Vilson Heck Junior vilson.junior@ifsc.edu.br Agenda O que é Java? Sun / Oracle. IDE - NetBeans. Linguagem Java; Maquina Virtual; Atividade Prática. Identificando Elementos

Leia mais

Linguagem de Programação Introdução a Linguagem Java

Linguagem de Programação Introdução a Linguagem Java Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 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

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng. Aula teórica 3 Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java Preparado por eng.tatiana Kovalenko Linguagens de Programação Para escrever programas é necessário

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

JAVA VIRTUAL MACHINE (JVM)

JAVA VIRTUAL MACHINE (JVM) JAVA VIRTUAL MACHINE (JVM) Por Leandro Baptista, Marlon Palangani e Tiago Deoldoto, 11 de Abril de 2009 A linguagem de programação Java proporciona o desenvolvimento aplicações que podem ser executadas

Leia mais

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

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

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

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

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 01 Fundamentos de Computadores Sumário : Conceitos básicos: computador,

Leia mais

Capítulo 8. Software de Sistema

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

Leia mais

Análises Geração RI (representação intermediária) Código Intermediário

Análises Geração RI (representação intermediária) Código Intermediário Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

Laboratório I Aula 2

Laboratório I Aula 2 Laboratório I Aula 2 Prof. Msc. Anderson da Cruz Fases da Programação Implementação de Linguagens de Programação Compilação geração de código executável dependente da plataforma de execução tradução lenta

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Orientação a Objetos

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

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java Capítulo 1 Conceitos Básicos do Java INTRODUÇÃO O objectivo deste tutorial é ensinar as regras básicas de programação em Java e facilitar a aprendizagem dos capítulos que se seguem. Qualquer dúvida sobre

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com

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

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação Memória Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação Espaço de endereçamento de um programa Para ser executado, um programa tem de ser trazido para

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Nível da Microarquitetura

Nível da Microarquitetura Nível da Microarquitetura (Aula 10) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES Máquina de Vários Níveis Modernas (ISA)

Leia mais

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Unidade IV: Ponteiros, Referências e Arrays

Unidade IV: Ponteiros, Referências e Arrays Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

(Aula 17) Threads em Java

(Aula 17) Threads em Java (Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 8: 04 de maio de 2010 1 Formatos de instruções MIPS 2 Endereçamento de operandos imediatos de 32 bits Endereçamento em desvios Modos de endereçamento do MIPS 3

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

Leia mais

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Seminário - C# DSO II Desenvolvimento de Sistemas Orientados a Objetos 2 Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Roteiro Breve Histórico Plataforma.NET Características da Linguagem Sintaxe Versões

Leia mais

4 Avaliação do Código Gerado

4 Avaliação do Código Gerado Referencial Teórico 4 Avaliação do Código Gerado Nós fizemos alguns exemplos para avaliar a eficiência da especificação proposta, tanto em termos de velocidade de execução quanto de diminuição do tamanho

Leia mais

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br JAVA Fabrício de Sousa fabbricio7@yahoo.com.br Agenda 2 Características Ambientes de Desenvolvimento Sintaxe Comentários Tipos de dados primitivos Caracteres especiais Variáveis Operadores Aritméticos

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

Universidade da Beira Interior. Sistemas Distribuídos Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

Desenvolvimento OO com Java Orientação a objetos básica

Desenvolvimento OO com Java Orientação a objetos básica Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal

Leia mais

Algoritmos e Programação II. Sobrecarga

Algoritmos e Programação II. Sobrecarga Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Keeper of Knowledge. Capítulo 2 Classes em Java

Keeper of Knowledge. Capítulo 2 Classes em Java Capítulo 2 Classes em Java INTRODUÇÃO Uma classe é um conjunto de software que representa uma realidade qualquer, que pode ser representada por números e símbolos. Uma classe possui dados de um ou mais

Leia mais

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo

Leia mais

Linguagem de Montagem 2. Operações e Operandos

Linguagem de Montagem 2. Operações e Operandos Linguagem de Montagem 2 Operações e Operandos Revisão Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer Esse conjunto de instruções chamamos de algoritmo

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

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

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais