Como construir um compilador utilizando ferramentas Java
|
|
- Sérgio Eric de Vieira Azambuja
- 6 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 7 Análise Sintática no JavaCC Prof. Márcio Delamaro delamaro@icmc.usp.br
2 Como construir um compilador utilizando ferramentas Java p. 2/3 Relembrando Opções Declaração da classe principal Declarações do AL Declarações do AS
3 Como construir um compilador utilizando ferramentas Java p. 3/3 Opções options STATIC = false; DEBUG_LOOKAHEAD = true; Faz com que o AS gerado emita mensagens identificando quais símbolos foram reconhecidos e quais produções foram utilizadas.
4 Como construir um compilador utilizando ferramentas Java p. 4/3 Depuração do AS Call: program Call: classlist Call: classdecl Consumed token: <"class"> Consumed token: <<IDENT>: "A"> Call: classbody Consumed token: <""> Call: vardecl(looking AHEAD...) Visited token: <"int">; Expected token: <"int"> Visited token: <<IDENT>: "a">; Expected token: <<IDENT>> Visited token: <",">; Expected token: <"["> Visited token: <",">; Expected token: <","> Return: vardecl(lookahead SUCCEEDED) Call: vardecl Consumed token: <"int"> Consumed token: <<IDENT>: "a"> Consumed token: <","> Consumed token: <<IDENT>: "b"> Return: vardecl
5 Como construir um compilador utilizando ferramentas Java p. 5/3 Método main Depuração pode ser controlada pelo usuário do compilador. Incluir uma opção -debug_as que habilita a depuração.
6 Como construir um compilador utilizando ferramentas Java p. 6/3 Método main for (i = 0; i < args.length - 1; i++) if (args[i].equals("-debug_as") ) debug = true; if (! debug) parser.disable_tracing();
7 Como construir um compilador utilizando ferramentas Java p. 7/3 Depuração habilitada cap04$ java parser.langx -debug_as../ssamples/debugas.x X++ Compiler - Version Reading from file../ssamples/debugas.x Call: program Call: classlist Call: classdecl Consumed token: <"class"> Consumed token: <<IDENT>: "A"> Call: classbody
8 Como construir um compilador utilizando ferramentas Java p. 8/3 Execução do AS try // chama o método que faz a análise parser.program(); catch (ParseException e) System.err.println(e.getMessage()); // não existe recuperação de erros parser.contparseerror = 1;
9 Como construir um compilador utilizando ferramentas Java p. 9/3 Execução do AS No método main, chamada ao método program. Cada não terminal corresponde a um método. No caso, program é o símbolo inicial da gramática. Chamada dentro de um comando try pois chamadas podem gerar um erro de sintaxe.
10 Como construir um compilador utilizando ferramentas Java p. 10/3 ParseException main program classlist classdecl class A classbody Call: program Call: classlist Call: classdecl Consumed token: <"class"> Consumed token: <<IDENT>: "A"> Call: classbody Consumed token: <"">
11 Como construir um compilador utilizando ferramentas Java p. 11/3 Definição dos não terminais Parecido com um método. <tipo> <nome> ( <parâmetros> ) : <decl locais> <BNF> BNF: seqüência de terminais e chamadas a não terminais, possivelmente agrupados por operadores BNF.
12 Como construir um compilador utilizando ferramentas Java p. 12/3 program program [ classlist ] void program() : [ classlist() ] <EOF> EOF: prédefinido pelo JavaCC.
13 Como construir um compilador utilizando ferramentas Java p. 13/3 classlist classlist classdecl [ classlist ]
14 Como construir um compilador utilizando ferramentas Java p. 14/3 classlist classlist classdecl [ classlist ] void classlist(): classdecl() [ classlist() ]
15 Como construir um compilador utilizando ferramentas Java p. 15/3 classdecl classdecl class ident [ extends ident ] classbody
16 Como construir um compilador utilizando ferramentas Java p. 16/3 classdecl classdecl class ident [ extends ident ] classbody void classdecl(): <CLASS> <IDENT> [ <EXTENDS> <IDENT> ] classbody()
17 Como construir um compilador utilizando ferramentas Java p. 17/3 Código gerado final public void classdecl() throws ParseException trace_call("classdecl"); try jj_consume_token(class); jj_consume_token(ident); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) case EXTENDS: jj_consume_token(extends); jj_consume_token(ident); break; default: jj_la1[1] = jj_gen; ; classbody(); finally trace_return("classdecl");
18 Como construir um compilador utilizando ferramentas Java p. 18/3 classbody void classbody(): <LBRACE> [classlist()] (vardecl() <SEMICOLON>)* (constructdecl())* (methoddecl())* <RBRACE>
19 Como construir um compilador utilizando ferramentas Java p. 19/3 Oooops, Conflito! Warning: Choice conflict in (...)* construct at line 304, column 7. Expansion nested within construct and expansion following construct have common prefixes, one of which is: "int" Consider using a lookahead of 2 or more for nested expansion. Essa mensagem indica que existe um conflito na construção (vardecl() <SEMICOLON>)*. Dentro da construção e fora dela existem prefixos comuns, entre eles o terminal int. Isso acontece porque o FIRST(vardecl) inclui o terminal int, que também está no FIRST(methoddecl)
20 Como construir um compilador utilizando ferramentas Java p. 20/3 Conflito void vardecl(): (<INT> <STRING> <IDENT> ) <IDENT> ( <LBRACKET> <RBRACKET>)* (<COMMA> <IDENT> ( <RBRACKET> <LBRACKET>)* )* void constructdecl(): <CONSTRUCTOR> methodbody() void methoddecl(): (<INT> <STRING> <IDENT> ) (<RBRACKET> <LBRACKET>)* <IDENT> methodbody()
21 Como construir um compilador utilizando ferramentas Java p. 21/3 Solução? vardecl int x[][], y; int x, y; int x;
22 Como construir um compilador utilizando ferramentas Java p. 21/3 Solução? vardecl int x[][], y; int x, y; int x; methoddecl int[][] m( int m(
23 Como construir um compilador utilizando ferramentas Java p. 22/3 Solução: LOOKAHEAD void classbody(): <LBRACE> [classlist()] (LOOKAHEAD(3) vardecl() <SEMICOLON>)* (constructdecl())* (methoddecl())* <RBRACE>
24 Como construir um compilador utilizando ferramentas Java p. 23/3 LOOKAHEAD O LOOKAHEAD(3) utilizado na frente do vardecl diz ao JavaCC que deve gerar um método que analisa três símbolos à frente para decidir se deve ou não tentar casar a entrada com um vardecl.
25 Como construir um compilador utilizando ferramentas Java p. 23/3 LOOKAHEAD O LOOKAHEAD(3) utilizado na frente do vardecl diz ao JavaCC que deve gerar um método que analisa três símbolos à frente para decidir se deve ou não tentar casar a entrada com um vardecl. Se esses três símbolos casarem, ele segue por esse caminho e se algum deles não casar, um caminho alternativo é tomado.
26 Como construir um compilador utilizando ferramentas Java p. 23/3 LOOKAHEAD O LOOKAHEAD(3) utilizado na frente do vardecl diz ao JavaCC que deve gerar um método que analisa três símbolos à frente para decidir se deve ou não tentar casar a entrada com um vardecl. Se esses três símbolos casarem, ele segue por esse caminho e se algum deles não casar, um caminho alternativo é tomado. Assim, o LOOKAHEAD deve ser utilizado sempre num ponto de decisão do AS.
27 Como construir um compilador utilizando ferramentas Java p. 23/3 LOOKAHEAD O LOOKAHEAD(3) utilizado na frente do vardecl diz ao JavaCC que deve gerar um método que analisa três símbolos à frente para decidir se deve ou não tentar casar a entrada com um vardecl. Se esses três símbolos casarem, ele segue por esse caminho e se algum deles não casar, um caminho alternativo é tomado. Assim, o LOOKAHEAD deve ser utilizado sempre num ponto de decisão do AS. Cuidado: se o número de símbolos estipulados for menor que o necessário, nenhum aviso do JavaCCé dado, pois o uso do LOOKAHEAD desliga a verificação de conflitos naquele ponto.
28 Como construir um compilador utilizando ferramentas Java p. 24/3 statement void statement(): LOOKAHEAD(2) vardecl() atribstat() <SEMICOLON> printstat() <SEMICOLON> readstat() <SEMICOLON> returnstat() <SEMICOLON> superstat() <SEMICOLON> ifstat() forstat() <LBRACE> statlist() <RBRACE> <BREAK> <SEMICOLON> <SEMICOLON>
29 Como construir um compilador utilizando ferramentas Java p. 25/3 atribstat void atribstat(): lvalue() <ASSIGN> ( alocexpression() expression()) void lvalue() : <IDENT> ( <LBRACKET> expression() <RBRACKET> <DOT> <IDENT> [<LPAREN> arglist() <RPAREN>] )* void vardecl(): (<INT> <STRING> <IDENT> ) <IDENT> ( <LBRACKET> <RBRACKET>)* (<COMMA> <IDENT> ( <RBRACKET> <LBRACKET>)* )*
30 Como construir um compilador utilizando ferramentas Java p. 26/3 Mais LOOKAHEAD void alocexpression() : <NEW> ( LOOKAHEAD(2) <IDENT> <LPAREN> arglist() <RPAREN> ( <INT> <STRING> <IDENT> ) ( <LBRACKET> expression() <RBRACKET> )+ )
31 Como construir um compilador utilizando ferramentas Java p. 27/3 ifstat void ifstat(): <IF> <LPAREN> expression() <RPAREN> statement() [ <ELSE> statement() ] Warning: Choice conflict in [...] construct at line 425, column 5. Expansion nested within construct and expansion following construct have common prefixes, one of which is: "else" Consider using a lookahead of 2 or more for nested expansion.
32 Como construir um compilador utilizando ferramentas Java p. 28/3 Conflito do ifstat if ( a == 0 ) if ( b == 0) a = a + 1; else b = b + 1;
33 Como construir um compilador utilizando ferramentas Java p. 29/3 Conflito do ifstat ifstat if ( expression a == 0 ) statement ifstat if ( ) expression b == 0 statement else atribstat a = a + 1 ; statement atribstat b = b + 1 ; ifstat if ( expression a == 0 ) statement ifstat if ( ) expression b == 0 statement atribstat a = a + 1 ; else statement ; atribstat b = b + 1
34 Como construir um compilador utilizando ferramentas Java p. 30/3 Solução ifstat void ifstat(): <IF> <LPAREN> expression() <RPAREN> statement() [LOOKAHEAD(1) <ELSE> statement()]
35 Como construir um compilador utilizando ferramentas Java p. 31/3 expression void expression() : numexpr() [( <LT> <GT> <LE> <GE> <EQ> <NEQ>) numexpr()] void numexpr(): term() ((<PLUS> <MINUS>) term())* void term(): unaryexpr() ((<STAR> <SLASH> <REM>) unaryexpr())*
36 Como construir um compilador utilizando ferramentas Java p. 32/3 Exercícios a. Verifique a implementação dos demais não-terminais. b. Baixe os arquivos do capítulo 4 e gere o compilador X ++. Compile os programas exemplos (bintree, sort, etc) e verifique os resultados. c. Gere alguns programas com erros sintáticos e execute o compilador e verifique os resultados. d. Implemente o comando while no compilador X ++. Antes de mais nada, altere a gramática da linguagem e depois o arquivo.jj.
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 3 A linguagem X ++ Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir
Leia maisComo construir um compilador utilizando ferramentas Java
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 Como
Leia maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/4 Como construir um compilador utilizando ferramentas Java Aula 9 Construção da árvore sintática Prof. Márcio Delamaro delamaro@icmc.usp.br
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 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um
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 maisTratamento de Erros. Sérgio Luiz Ruivace Cerqueira
Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:
Leia maisTipos, 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 maisFundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN
Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos
Leia maisConceitos básicos de programação
Para aprender uma linguagem de programação podemos começar por conhecer os vocábulos ou símbolos que formam o seu léxico e depois aprender como esses vocábulos integram as instruções (frases) que compõe
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 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 10 Exibição da árvore sintática Prof. Márcio Delamaro delamaro@icmc.usp.br
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 4 Análise Léxica Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir
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 2 BNF e Grafo Sintático Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir
Leia maisMsC. João Maria MsC. Liviane Melo
Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance
Leia maisInstituto 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 maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/3 Como construir um compilador utilizando ferramentas Java Aula 11 Tabela de Símbolos Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir
Leia maisTratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções LPG II Java Tratamento de Exceções Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally Hierarquia de exceções em Java Considerações
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisProgramaçã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 maisComputação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Leia maisINF1636 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 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento
Leia maisEstruturas de controle Parte 1
1. Objetivos Estruturas de controle Parte 1 Nas lições anteriores, foram mostrados programas seqüenciais, onde as instruções foram executadas uma após a outra de forma fixa. Nesta lição, discutiremos estruturas
Leia maisRevisão C++ - Parte 1
Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos
Leia maisAula 4 Estruturas de Controle
UNIP Universidade Paulista Ciência da Computação Aula 4 Estruturas de Controle Prof. Célio Ricardo Castelano 1 Tópicos Abordados 1) Instruções de seleção em Java: 2) Instruções de repetição em Java: 2
Leia maisSintaxe Básica de Java Parte 2
Sintaxe Básica de Java Parte 2 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Instruções Condicionais A instrução
Leia maisINF1337 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 9 Tratamento de Exceções Assertivas Programa Capítulo
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br
Leia maisPCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015
PCS - 3111 Laboratório de Programação Orientada a Objetos 1a. Prova 02 de Setembro de 2015 Questão 1 (2,6) Deseja-se implementar um programa que recebe um mês e um dia atual de um ano e o mês e o dia de
Leia maisNotas 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 maisIntrodução à linguagem C++
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas
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 maisLinguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
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/8 Como construir um compilador utilizando ferramentas Java Aula 12 Análise Semântica Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir
Leia maisHello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Leia maisAula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Leia maisQuando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa
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 maisFábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença
C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout
Leia maisCompiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 30. Instituto de C
ompiladores Análise Sintática Bruno Lopes Bruno Lopes ompiladores 1 / 30 Front-end Lida com a linguagem de entrada Teste de pertinência: código fonte linguagem fonte? Programa está bem formado? Sintaticamente?
Leia maisPROGRAMADOR JAVA. Aula 0X32 Semanas - 0b Instrutor : Léo Billi
Aula 0X32 Semanas - 0b110001 Instrutor : Léo Billi Email : leo.billi@gmail.com Tipos de dados, valores literais e variáveis Tipos de dados, valores literais e variáveis Exibindo dados na tela Variáveis
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 maisTratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções Java Avançado Tratamento de Exceções Roberto Vedoato vedoato@joinville.udesc.br Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally
Leia maisTratamento de Exceções
Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que
Leia maisJava RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Leia maisProgramação de Computadores II TCC /Turma A 1
Programação de Computadores II TCC 00.174/Turma A 1 Professor Leandro A. F. Fernandes http://www.ic.uff.br/~laffernandes Conteúdo: Tratamento de exceções Material elaborado pelos profs. Anselmo Montenegro
Leia maisTradução dirigida por sintaxe
epartamento de Estatística e Informática Universidade Federal de Sergipe Compiladores Tradução dirigida por sintaxe André Luis Meneses Silva andreluis.ms@gmail.com 1 efinições dirigidas por sintaxe Gramática
Leia maisJAVA. 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 maisEstruturas de Controle
Estruturas de Controle Mário Meireles eixeira UMA DEIN ópicos Estruturas de Controle condicionais repetição Expressões Lógicas operadores relacionais operadores lógicos Estruturas de Controle 2 1 Introdução
Leia maisExercício de Estrutura de dados. Java Fila
Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado
Leia maisabstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw
Programadores sabem que mudar o contexto entre linguagens de programação é algo difícil. Se você pretende programar em Java e JavaScript criando micro serviços, extraindo o melhor de cada linguagem, e
Leia maisOrientação a Objetos e a Linguagem Java
Orientação a Objetos e a Linguagem Java Afrânio Assis afranio@gmail.com Novembro/2006 1 Tipos, Literais, Operadores e Controle de Fluxo Novembro/2006 2 Identificadores Identificadores são palavras utilizadas
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 maisLinguagem Java Parte I. Sintaxe. Algumas características
Programação Na Web Linguagem Java Parte I Sintaxe António Gonçalves Algumas características Estruturas de controlo, operadores, expressões e tipos básicos são semelhantes ao C++/C. Não há apontadores;
Leia maisLegibilidade do código fonte
Sumário Legibilidade do código fonte Exemplos Normas Instrução switch Sintaxe e Semântica Exemplo Tipos enumerados Exemplo Programação 2007/2008 DEEC-IST 1 Legibilidade do código fonte Exemplo: Considere
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO
Leia maisEstruturas de Decisão
Motivação O controle do fluxo da execução em Java utiliza os mesmos comandos existentes em outras linguagens Decisão: if-else, switch-case Repetição: for, while, do-while Desvios: return, continue, break
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 maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
Leia maisLinguagem de Programação I. Aula 10 Funções
Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração
Leia maisLinguagens 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 maisProf. Rogério Rocha 1
Uma estrutura de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente. Diferentes tipos de estrutura de dados são adequados a
Leia maisTratamento de Exceções. Profa. Thienne Johnson EACH/USP
Tratamento de Exceções Profa. Thienne Johnson EACH/USP Java, como programar Deitel & Deitel Capítulo 14 Uma exceção é uma indicação de um problema que ocorre durante a execução de um programa O tratamento
Leia maisAnálise Sintática - Final
MAB 471 2011.2 Análise Sintática - Final http://www.dcc.ufrj.br/~fabiom/comp LR(k ) vs LL(k ) Encontrando o próximo passo em uma derivação LR(k) Cada redução na análise detectável com o contexto esquerdo
Leia maisJava 2 Standard Edition Tipos, literais, operadores e controle de fluxo
Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo Helder da Rocha www.argonavis.com.br 1 Operadores e controle de fluxo da execução Este módulo explora as estruturas procedurais da
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Else Switch Prof. Renato Pimentel 1 Operações relacionais Operações
Leia maisPROGRAMAÇÃO JAVA. Parte 3
PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos
Leia maisAnálise Bottom-Up. Compiladores. Parsing LR. Tabela Ações/Transições. Análise LR. Construindo tabelas LR
Análise Bottom-Up Compiladores Análise sintática 5) Gramáticas SLR), LR) e LALR String Entrada -> Símbolo Inicial Regras aplicadas em reverso adiar decisões mais poderoso Noção de handle, redução, uso
Leia maisParadigmas de Programação
Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma
Leia maisQUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto.
COMPILADORES Prof. Marcus Ramos Prova 1 07 de março de 2012 QUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto. Tanto a linguagem-fonte
Leia maisSistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21
Sistemas de Objetos Distribuídos Primeira Aplicação Java ORB Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosPrimeira Aplicação
Leia maisAula 11: Desvios e Laços
Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam
Leia maisComando de Seleção em Java
Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Comando de Seleção Comando de Seleção em Java Conteúdo 1. Introdução... 1 2. Comando de seleção... 2 3. Comandos
Leia maisPHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.
Nome: Vinícius Meng 3º ano Escrever em tela: public class HelloWorld { public static void main (String[] args) { System.out. println ("Hello World"); Printa Hello World na tela do terminal. echo("hello
Leia maisO que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page:
O que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page: http://dinosaur.compilertools.net/ 1 O que faz Lex gera programas (em C)
Leia maisUtiliza Expressões Regulares (ER) Estendidas para definir a especificação da análise léxica desejada
O que faz/o que é Como usar Como funciona Formato geral do Arquivo Submetido ao Lex ER estendidas Exemplos The Lex & YACC page: http://dinosaur.compilertools.net/ 1 O que faz Lex gera programas (em C)
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Leia maisProgramação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores
Leia maisUMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES
WAlgProg / 2016 UMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES Marina Gomes Érico Amaral Roteiro
Leia maisLINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL
LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL Prof. André Backes FLUXOGRAMAS Condição ou Decisão Representado por losangos Normalmente contém uma pergunta do tipo Sim/Não ou um teste de Verdadeiro/Falso.
Leia maisLaboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;
Leia maisCompiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)
Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Expressões e Definições Regulares Revisão Expressões regulares descrevem todas as linguagens que podem ser construídas
Leia maisAnálise Sintática Bottom-up
MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em
Leia maisMétodos Computacionais. Comandos Condicionais e de Repetição em C
Métodos Computacionais Comandos Condicionais e de Repetição em C Tópicos da Aula Hoje vamos acrescentar comportamentos mais complexos a programas em C Comandos Condicionais if-else switch Comandos de Repetição
Leia maisPRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015
PRIMEIROS PASSOS COM PYTHON Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON 02/47 O QUE É PYTHON? Python é uma linguagem de propósito geral, de alto nível e interpretada Python será
Leia maisINTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO
INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem C foi desenvolvida no início da década de 70 por dois pesquisadores do Bell Laboratories, Brian Kernihgan e Dennis Ritchie,
Leia maisCapítulo 4: Condicionais
Capítulo 4: Condicionais INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Tomada de Decisão Até o momento, todas as instruções eram executadas, uma após a outra.
Leia maisTratamento de Exceções cont. Profa. Thienne Johnson EACH/USP
Tratamento de Exceções cont. Profa. Thienne Johnson EACH/USP Java, como programar Deitel & Deitel Capítulo 14 continuação Todas as classes de exceção de Java herdam, direta ou indiretamente, da classe
Leia maisSistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática
Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais Curso Técnico em Informática SUMÁRIO SHELL SCRIPT COM IF... 3 OPERADORES RELACIONAIS... 3 COMPARAÇÕES EM SCRIPTS... 3 MAIS OPERADORES...
Leia maisAnhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Leia maisGabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes
Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença
Leia maisFabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma
Leia maisExceções. Profa. Patrícia A. Jaques Slides alterados por Leandro Tonietto Mar-12. quarta-feira, 21 de março de 12
Exceções Profa. Patrícia A. Jaques Slides alterados por Leandro Tonietto Mar-12 Tratamento de Exceções O tratamento de exceções em Java permite o gerenciamento de erros em tempo de execução. Uma exceção
Leia maisAbaixo iremos pormenorizar cada um de seus atributos:
1 PYTHON Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. A linguagem foi projetada com a filosofia
Leia maisEncapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
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 maisJavaScript (Elementos de Programação e Programação Básica)
Linguagem de Programação para Web JavaScript (Elementos de Programação e Programação Básica) Prof. Mauro Lopes 1 Objetivos Iniciaremos aqui o nosso estudo sobre a Linguagem de Programação JavaScript. Apresentaremos
Leia mais