Como construir um compilador utilizando ferramentas Java
|
|
- Yasmin Meneses Fonseca
- 8 Há anos
- Visualizações:
Transcrição
1 Como construir um compilador utilizando ferramentas Java p. 1/3 Como construir um compilador utilizando ferramentas Java Aula 5 Análise Léxica com JavaCC Prof. Márcio Delamaro delamaro@icmc.usp.br
2 Como construir um compilador utilizando ferramentas Java p. 2/3 O que é o JavaCC Ambiente ou ferramenta que permite a geração de um analisador sintático completo
3 Como construir um compilador utilizando ferramentas Java p. 2/3 O que é o JavaCC Ambiente ou ferramenta que permite a geração de um analisador sintático completo A partir de uma descrição de alto nível gera código Java
4 Como construir um compilador utilizando ferramentas Java p. 2/3 O que é o JavaCC Ambiente ou ferramenta que permite a geração de um analisador sintático completo A partir de uma descrição de alto nível gera código Java Dentro de um só arquivo permite definir AL e AS
5 Como construir um compilador utilizando ferramentas Java p. 2/3 O que é o JavaCC Ambiente ou ferramenta que permite a geração de um analisador sintático completo A partir de uma descrição de alto nível gera código Java Dentro de um só arquivo permite definir AL e AS Permite também a construção da árvore sintática
6 Como construir um compilador utilizando ferramentas Java p. 3/3 Como funciona langx.jj JavaCC
7 Como construir um compilador utilizando ferramentas Java p. 4/3 Como funciona sort.x langx.jj JavaCC sort.jas
8 Como funciona Como construir um compilador utilizando ferramentas Java p. 5/3
9 Como construir um compilador utilizando ferramentas Java p. 6/3 Partes do arquivo jj Opções Declaração da classe principal Declarações do AL Declarações do AS
10 Como construir um compilador utilizando ferramentas Java p. 7/3 Partes do arquivo jj options { STATIC = false; PARSER_BEGIN(Test) public class Test { PARSER_END(Test) SKIP : { " " JAVACODE void program() {
11 Como construir um compilador utilizando ferramentas Java p. 8/3 A classe principal tests2.jj PARSER_BEGIN(Test) public class Test { static public void main(string args[]) { System.out.printf("Hello world!"); PARSER_END(Test)
12 A classe principal Como construir um compilador utilizando ferramentas Java p. 9/3
13 Como construir um compilador utilizando ferramentas Java p. 10/3 A classe principal: langx++.jj PARSER_BEGIN(langX) package parser; /* declaração de pacote */ import java.io.*; /* imports necessários */ public class langx {... PARSER_END(langX)
14 Como construir um compilador utilizando ferramentas Java p. 11/3 Variáveis da classe... public class langx { final static String Version = "X++ Compiler - Version "; boolean Menosshort = false; // saída resumida = falso...
15 Como construir um compilador utilizando ferramentas Java p. 12/3 Método principal: variáveis locais... public class langx { // Define o método "main" da classe langx. public static void main(string args[]) throws ParseException { String filename = ""; // nome do arquivo a ser analisado langx parser; // analisador léxico/sintático int i; boolean ms = false; System.out.println(Version);...
16 Como construir um compilador utilizando ferramentas Java p. 13/3 Método principal: ler argumentos public class langx { public static void main(string args[]) throws ParseException {... // lê os parâmetros passados para o compilador for (i = 0; i < args.length - 1; i++) { if ( args[i].tolowercase().equals("-short") ) ms = true; else { System.out.println("Usage is: java langx [-short] " + "inputfile"); System.exit(0);...
17 Como construir um compilador utilizando ferramentas Java p. 14/3 Método principal: ler nome arquivo public static void main(string args[]) throws ParseException {... if (args[i].equals("-")) { // lê da entrada padrão System.out.println("Reading from standard input..."); parser = new langx(system.in); else { // lê do arquivo filename = args[args.length-1]; System.out.println("Reading from file " + filename + "..."); try { parser = new langx(new java.io.fileinputstream(filename)); catch (java.io.filenotfoundexception e) { System.out.println("File " + filename + " not found."); return;...
18 Como construir um compilador utilizando ferramentas Java p. 15/3 Criação do AS if (args[i].equals("-")) { // lê da entrada padrão System.out.println("Reading from standard input..."); parser = new langx(system.in); else { // lê do arquivo filename = args[args.length-1]; System.out.println("Reading from file " + filename + "..."); try { parser = new langx(new java.io.fileinputstream(filename)); catch (java.io.filenotfoundexception e) { System.out.println("File " + filename + " not found."); return;
19 Como construir um compilador utilizando ferramentas Java p. 16/3 Execução e finalização public static void main(string args[]) throws ParseException {... parser.menosshort = ms; parser.program(); // chama o método que faz a análise // verifica se houve erro léxico if ( parser.token_source.foundlexerror()!= 0 ) System.out.println(parser.token_source.foundLexError() + " Lexical Errors found"); else System.out.println("Program successfully analyzed."); O AS possui um AL. O AL é definido pelo usuário (algumas coisas).
20 Como construir um compilador utilizando ferramentas Java p. 17/3 Classe principal: outros métodos public class langx { public {... static void main(string args[]) throws ParseException static public String im(int x) { int k; String s; s = tokenimage[x]; k = s.lastindexof("\""); try {s = s.substring(1,k); catch (StringIndexOutOfBoundsException e) { return s;
21 Como construir um compilador utilizando ferramentas Java p. 18/3 Descrição do AL A descrição do analisador léxico é dividida em duas partes: código Java a ser inserido na classe do AL; descrição dos itens léxicos;
22 Como construir um compilador utilizando ferramentas Java p. 19/3 Código Java TOKEN_MGR_DECLS : { int countlexerror = 0; public int foundlexerror() { return countlexerror;
23 Como construir um compilador utilizando ferramentas Java p. 20/3 SKIP Todas as definições nesta seção utilizam a representação de expressões regulares. A palavra SKIP indica ao JavaCC que desejamos definir quais são as cadeias que devem ser ignoradas. SKIP : { " " "\t" "\n" "\r" "\f"
24 Como construir um compilador utilizando ferramentas Java p. 21/3 TOKEN: palavras reservadas TOKEN é utilizada para definir, por meio de expressões regulares, quais as cadeias a serem reconhecidas e quais os tipos de tokens que a elas correspondem. TOKEN : { < BREAK: "break" > < CLASS: "class" > < CONSTRUCTOR: "constructor" > < ELSE: "else" > < EXTENDS: "extends" > < FOR: "for" >... < PRINT: "print" > < READ: "read" > < RETURN: "return" > < STRING: "string" > < SUPER: "super" >
25 Como construir um compilador utilizando ferramentas Java p. 22/3 Conflitos AL é construído de modo que a maior cadeia possível seja reconhecida. Por isso não há nenhum problema quanto a uma Expressão Regular poder gerar subcadeias de outra Expressão Regular. Sempre será considerada a maior cadeia da entrada que casar com alguma expressão regular. Isso acontece, por exemplo, a seguir com os tokens GT e GE. Se a entrada possuir um string >=, este será identificado como um GE, mas se possuir um > apenas, então GT será o casamento realizado.
26 Como construir um compilador utilizando ferramentas Java p. 23/3 TOKEN: operadores TOKEN : { < ASSIGN: "=" > < GT: ">" > < LT: "<" > < EQ: "==" > < LE: "<=" > < GE: ">=" > < NEQ: "!=" > < PLUS: "+" > < MINUS: "-" > < STAR: "*" > < SLASH: "/" > < REM: "%" >
27 Como construir um compilador utilizando ferramentas Java p. 24/3 TOKEN: outros símbolos TOKEN : { < LPAREN: "(" > < RPAREN: ")" > < LBRACE: "{" > < RBRACE: "" > < LBRACKET: "[" > < RBRACKET: "]" > < SEMICOLON: ";" > < COMMA: "," > < DOT: "." >
28 Como construir um compilador utilizando ferramentas Java p. 25/3 TOKEN: constantes inteiras TOKEN : { // números decimais, octais, hexadecimais ou binários < int_constant:( (["0"-"9"] (["0"-"9"])* ) (["0"-"7"] (["0"-"7"])* ["o", "O"] ) (["0"-"9"] (["0"-"7","A"-"F","a"-"f"])* ["h", "H"] ) (["0"-"1"] (["0"-"1"])* ["b", "B"]) ) >
29 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje
30 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje;
31 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje; 0baCh
32 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje; 0baCh também é uma constante hexadecimal;
33 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje; 0baCh também é uma constante hexadecimal; 7620OO
34 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje; 0baCh também é uma constante hexadecimal; 7620OO é uma constante octal seguida por um identificador O;
35 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje; 0baCh também é uma constante hexadecimal; 7620OO é uma constante octal seguida por um identificador O; 1011tb10b
36 Como construir um compilador utilizando ferramentas Java p. 26/3 Constantes inteiras 123afhoje constante inteira 123afh seguida de um identificador oje; 0baCh também é uma constante hexadecimal; 7620OO é uma constante octal seguida por um identificador O; 1011tb10b constante decimal 1011 seguida pelo identificador tb10b.
37 Como construir um compilador utilizando ferramentas Java p. 27/3 String constante Inicia com aspas Seqüência de quaisquer caracteres (quaisquer???). Termina com aspas Como definir?
38 Como construir um compilador utilizando ferramentas Java p. 28/3 TOKEN: constantes string, null TOKEN : { // constante string como "abcd bcda" < string_constant: "\""( ["\"","\n","\r"])* "\"" > < null_constant: "null" > // constante null
39 Como construir um compilador utilizando ferramentas Java p. 29/3 TOKEN: identificadores Os identificadores são definido como sendo iniciados por uma letra, seguida por letras ou dígitos. TOKEN : { < IDENT: <LETTER> (<LETTER> <DIGIT>)* > < #LETTER:["A"-"Z","a"-"z"] > < #DIGIT:["0"-"9"] > Foram utilizados dois tokens #LETTER e #DIGIT para definir IDENT. Esses tokens não são utilizados na gramática da linguagem X ++, mas servem como auxiliares na definição do próprio AL.
40 Como construir um compilador utilizando ferramentas Java p. 30/3 Conflitos II for
41 Como construir um compilador utilizando ferramentas Java p. 30/3 Conflitos II for class
42 Como construir um compilador utilizando ferramentas Java p. 30/3 Conflitos II for class Definir prioridade
43 Como construir um compilador utilizando ferramentas Java p. 30/3 Conflitos II for class Definir prioridade A definição que aparecer primeiro tem maior prioridade
44 Como construir um compilador utilizando ferramentas Java p. 31/3 O que o AL produz: Token int kind; Contém o tipo do token reconhecido. Cada um dos tokens descritos no arquivo.jj como IF ou IDENT é definido na classe langxconstants como sendo uma constante inteira. Assim, supondo que langxconstants.ident foi definido com o valor 9, então ao reconhecer um identificador, o AL irá produzir um objeto Token cuja variável kind tem o valor 9; int beginline, begincolumn, endline, endcolumn; Essas variáveis indicam, respectivamente, a linha e a coluna dentro do arquivo de entrada, onde se inicia e onde termina o token reconhecido;
45 Como construir um compilador utilizando ferramentas Java p. 32/3 O que o AL produz: Token String image; É a cadeia que foi lida e reconhecida como token. Por exemplo, se a cadeia func10 foi lida na entrada e reconhecida como um IDENT, então essa variável contém a cadeia lida, ou seja, func10; Token next; Uma referência para o próximo token reconhecido após ele. Se o AL ainda não leu nenhum outro token ou se esse é o último token da entrada, então seu valor é null; Token specialtoken; É um apontador para o último token especial reconhecido antes deste. Veja mais adiante os comentários sobre o que são os tokens especiais.
46 Como construir um compilador utilizando ferramentas Java p. 33/3 Comentários Comentário não é um item léxico;
47 Como construir um compilador utilizando ferramentas Java p. 33/3 Comentários Comentário não é um item léxico; Pode aparecer em qualquer ponto do programa;
48 Como construir um compilador utilizando ferramentas Java p. 33/3 Comentários Comentário não é um item léxico; Pode aparecer em qualquer ponto do programa; a = b.mymethod(10, /* comentário */ c) + 2;
49 Como construir um compilador utilizando ferramentas Java p. 33/3 Comentários Comentário não é um item léxico; Pode aparecer em qualquer ponto do programa; a = b.mymethod(10, /* comentário */ c) + 2; Deve ser tratado pelo AL;
50 Como construir um compilador utilizando ferramentas Java p. 33/3 Comentários Comentário não é um item léxico; Pode aparecer em qualquer ponto do programa; a = b.mymethod(10, /* comentário */ c) + 2; Deve ser tratado pelo AL; Por exemplo, ignorar.
51 Como construir um compilador utilizando ferramentas Java p. 34/3 Comentários Comentários multilinha /*... */ Linha única //... AL simplesmente ignora Usamos conceito de estado, característica do JavaCC
52 Como construir um compilador utilizando ferramentas Java p. 35/3 Definição de comentários SKIP : { "/*": multilinecomment
53 Como construir um compilador utilizando ferramentas Java p. 35/3 Definição de comentários SKIP : { "/*": multilinecomment <multilinecomment> SKIP: { "*/": DEFAULT < []>
54 Como construir um compilador utilizando ferramentas Java p. 35/3 Definição de comentários SKIP : { "/*": multilinecomment <multilinecomment> SKIP: { "*/": DEFAULT < []> Vale a regra de que sempre a maior cadeia possível é utilizada no casamento. Como o segundo padrão tem apenas um caractere, então ao aparecer a cadeia */, o casamento é sempre feito no primeiro padrão.
55 Como construir um compilador utilizando ferramentas Java p. 36/3 Erro léxico Ao aparecer um item léxico não válido.
56 Como construir um compilador utilizando ferramentas Java p. 36/3 Erro léxico Ao aparecer um item léxico não válido. AL gerado pelo JavaCC lança um TokenMgrError
57 Como construir um compilador utilizando ferramentas Java p. 36/3 Erro léxico Ao aparecer um item léxico não válido. AL gerado pelo JavaCC lança um TokenMgrError Isso faz com que a execução do AS termine.
58 Como construir um compilador utilizando ferramentas Java p. 36/3 Erro léxico Ao aparecer um item léxico não válido. AL gerado pelo JavaCC lança um TokenMgrError Isso faz com que a execução do AS termine. Gostaríamos de ignorar e continuar a análise
59 Como construir um compilador utilizando ferramentas Java p. 36/3 Erro léxico Ao aparecer um item léxico não válido. AL gerado pelo JavaCC lança um TokenMgrError Isso faz com que a execução do AS termine. Gostaríamos de ignorar e continuar a análise Para isso devemos evitar que o AL identifique o erro
60 Como construir um compilador utilizando ferramentas Java p. 36/3 Erro léxico Ao aparecer um item léxico não válido. AL gerado pelo JavaCC lança um TokenMgrError Isso faz com que a execução do AS termine. Gostaríamos de ignorar e continuar a análise Para isso devemos evitar que o AL identifique o erro Ou seja, qualquer outro símbolo que aparecer, deve ser tratado.
61 Como construir um compilador utilizando ferramentas Java p. 37/3 Exercícios Estudar no livro a implementação do comentário de linha única. Estudar no livro a implementação da recuperação de erro léxico. Baixar o arquivo do Capítulo 3. Gerar o compilador e executar com os programas exemplos que você desenvolveu (sort, bintree, etc).
Como construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/3 Como construir um compilador utilizando ferramentas Java Aula 7 Análise Sintática no JavaCC Prof. Márcio Delamaro delamaro@icmc.usp.br Como
Leia maisBreve Tutorial de JavaCC
Breve Tutorial de JavaCC O que é? Instalação: http://javacc.dev.java.net Exemplos usados de: http://w3.msi.vxu.se/users/jonasl/javacc http://www.cs.nmsu.edu/~rth/cs/cs471/interpretersjavacc.html http://www.engr.mun.ca/~theo/javacc-tutorial/javacc-tutorial.pdf
Leia maisinsfcanceof 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 maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 8 Recuperação de Erros Sintáticos Prof. Márcio Delamaro delamaro@icmc.usp.br
Leia maisProgramaçã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 maisUniversidade 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 maisAula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.
Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso
Leia maisLinguagem 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 maisMC102 Algoritmos e programação de computadores Aula 3: Variáveis
MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para
Leia maisComandos 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 maisBC0501 Linguagens de Programação
BC0501 Linguagens de Programação Aula Prática: 03 Assunto: Comandos de Seleção 1. Introdução Um comando de seleção define uma condição em um programa, que permite que grupos de comandos sejam executados
Leia maisOrganização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br
Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
Leia maisSintaxe 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 maisCurso 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 maisEspecialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares
Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e
Leia maisCriar 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 maisAula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.
Aula 2 Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4. Conceitos O software controla os computadores(freqüentemente conhecido
Leia maisJSP - 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 maisA 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 maisJava 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
Leia mais2 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 maisSimulado de Linguagem de Programação Java
Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as
Leia maisExercí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 maisAlgoritmos 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 maisPratica JFlex. Prática criando o primeiro analisador léxico
UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE CURSO: CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMPILADORES PROFESSOR: JOHNI DOUGLAS MARANGON Pratica JFlex JFlex é uma ferramenta que permite
Leia maisCURSO 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 maisOrientaçã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 maisRoteiro 1: Dados, variáveis, operadores e precedência
1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta
Leia maisJava. 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 maisAlgoritmos 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 maisProjeto de Software Orientado a Objeto
Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software
Leia maisProva de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)
Prova de Java 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) O programa consiste em uma aplicação que simula o comportamento de dois
Leia maisSintaxe 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 maisComponentes 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 maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisTemplates e Pilhas. 1. Introdução
Templates e Pilhas 1. Introdução Templates ou Generics é considerado uma forma de polimorfismo [1]. É uma forma de programar onde o tipo do dado não é considerado. Programa-se para um tipo de dado indefinido.
Leia maisOrientação a Objetos
Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.
Leia maisImplementação de Classe e Auto-Relacionamento em Java
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida
Leia maispublic Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.
import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 03 APRESENTAÇÃO: Hoje vamos conhecer o comando switch, o bloco try catch;
Leia maisAula 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 maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível
Leia maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisPontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação
Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 3 Prof. ISVega Fevereiro de 2004 Estilo de Codificação CONTEÚDO 3.1 Regras
Leia maisCriando 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 maisProgramação online em Java
Universidade Federal do ABC Disciplina: Processamento da Informação Assunto: Programação online em Java Programação online em Java Conteúdo Conteúdo...1 Introdução... 1 1.1.Programas necessários... 1 1.2.Visão
Leia mais20 Caracteres - Tipo char
0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,
Leia maisOPERADORES LÓGICOS E RELACIONAIS UDERSON LUIS
Sumario: Este artigo descreve a manipulação dos dados de operadores lógicos relacionais, descrevendo a utilização destes operadores. Sobre o Autor: Uderson Luis Fermino, formado em Ciências da Computação
Leia maisESTRUTURA BÁSICA DE UM PROGRAMA JAVA
ESTRUTURA BÁSICA DE UM PROGRAMA JAVA Prof. Angelo Augusto Frozza, M.Sc. // Primeiro programa em Java public class PrimeiroPrograma { public static void main(string [] args) { System.out.println("Programação
Leia maisCOMPILADORES E INTERPRETADORES
Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte
Leia maisPara desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.
1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto
Leia maisAula 30 - Sockets em Java
Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar
Leia maisUniversidade 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 maisJava Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br. Novembro/2005
Java Básico Matrícula de Alunos Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005 Objetivos OO: trocar mensagens entre os objetos Exception: tratar exceções Análise: implementar
Leia maisPersistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
Leia maisOrganização de programas em Java. Vanessa Braganholo vanessa@ic.uff.br
Organização de programas em Java Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Java! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
Leia maisAnalisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar
Projeto Integrador Sistemas Operacionais Prof.ª Lucilia Ribeiro GTI 3 Noturno Grupo: Anderson Alves da Mota. André Luiz Silva. Misael bezerra dos santos. Sandro de almeida silva. Analisar os sistemas operacionais
Leia maisFundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br
Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisUnidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01
Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01 Objetivos: Modelar um sistema orientado a objetos simples a partir
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia maisPara criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.
7 Animação Animações é um dos quesitos muito importantes em jogos, você não acha? Para isso o JPlay tem uma classe específica para lidar com animações. Essa classe se chama Animation. Bem sugestivo o nome
Leia maisExercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +
Leia maisSistemas de numeração
E Sistemas de numeração Aqui estão apenas números ratificados. William Shakespeare A natureza tem algum tipo de sistema de coordenadas geométrico-aritmético, porque a natureza tem todos os tipos de modelos.
Leia maisESQUEMA 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 maisESQUEMA 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 maisAlgoritmos 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 maisINTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO
INTRODUÇÃO 12. DOCUMENTAÇÃO Na plataforma Java SE 7, há cerca de 4000 classes e interfaces disponíveis para utilizarmos em nossas aplicações Podemos visualizar a documentação dessas classes e interfaces
Leia maisTutorial RMI (Remote Method Invocation) por Alabê Duarte
Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos
Leia mais1.2 Uma linguagem de programação muito simples
1 Representando programas como dados 1.1 Introdução Os processadores de linguagem sempre fazem alguma manipulação com programas. Normalmente a entrada para o processador é um programa apresentado na forma
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisEstrutura Condicional em Java
Estrutura Condicional em Java Linguagem de Programação 1 O Java contém três tipos de instruções de seleção. A instrução if realiza uma ação se uma condição for verdadeira ou pula a ação se a condição for
Leia maisReuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Leia maisObjetivos: Entender o funcionamento dos programas Java via linha de comando
Algoritmos e Programação I Aula de Laboratório Objetivos: Entender o funcionamento dos programas Java via linha de comando 1. A Linha de Comando: DOS ou Shell Apesar dos usuários geralmente não enxergarem
Leia maisTécnicas de Programação II
Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.
Leia mais2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10
1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...
Leia maisVariáveis e Comandos de Atribuição
BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l
Leia maisColeções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
Leia maisNoçõ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 maisProgramaçã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 maisNOVIDADES DO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples
Leia mais15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido
PARTE III: Java e OO - detalhes Membros de classe e instâncias Pacotes Visibilidade Classes aninhadas Membros de classe e de instância De classe Static Método não necessita de objeto para ser chamado.
Leia maisCurso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura
UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.
Leia maisDEFINIÇÃO DE MÉTODOS
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos
Leia maisCurso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária
1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste
Leia maisJava Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp
Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define
Leia maisDescrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos
Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads
Leia maisPOO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Leia mais5 Apresentando a linguagem C
5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,
Leia maisCompiladores - Análise Preditiva
Compiladores - Análise Preditiva Fabio Mascarenhas - 203. http://www.dcc.ufrj.br/~fabiom/comp Wednesday, May 8, 3 Retrocesso Local Podemos definir o processo de construção de um parser recursivo com retrocesso
Leia maisProcessamento da Informação Teoria. Algoritmos e Tipos de dados
Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo
Leia maisIntrodução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Leia maisAlgoritmia 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 maisProgramação de Computadores. Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim
Programação de Computadores Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim Roteiro da Aula de Hoje Introdução ao FORTRAN (Parte I) Organização de programas Tipos de dados Variáveis Programação
Leia mais1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.
Lista de exercícios: Grupo I - programa seqüênciais simples 1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros. 2. Fazer um programa
Leia maisJavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5
JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,
Leia maisJava Como Programar, 8/E
Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar
Leia mais