Linguagens e Programação FLEX. Paulo Proença

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

Download "Linguagens e Programação FLEX. Paulo Proença"

Transcrição

1 Linguagens e Programação FLEX

2 Analisador léxico Programa que lê um ficheiro de texto (p.e. source code) e produz uma sequência de componentes léxicos (tokens) As sequências de tokens produzidas serão utilizados pelo analisador sintático (parser) permitem identificar erros léxicos na entrada. Os tokens são instanciados por lexemas

3 Analisador léxico tokens São padrões de caracteres com um significado especial num determinado contexto. São definidos por expressões regulares sobre um alfabeto. lexemas Ocorrências de um token no âmbito da informação analisada. São constituídos pelos carateres da informação que compõe um token.

4 Analisador léxico Exemplo: if(x>=y){ y=100; } IF LPAREN ID GEQ ID RPAREN LBRACK ID ASSIGN INT SCOLON RBRACK lexema: 100

5 FLEX Ferramenta que permite gerar analisadores léxicos.

6 Rotinas em C Regras Macros Declarações Flex Formato de um ficheiro FLEX %{ %} int contadornumeros=0; DIG [0-9] {DIG}+ {contadornumeros++; printf("número: %s\n",yytext);} main() { yylex(); printf("foram encontrados %d números\n", contadornumeros); }

7 Flex Ambiente de trabalho linux ssh.dei.isep.ipp.pt, ssh1.dei.isep.ipp.pt, ssh2.dei.isep.ipp.pt, ssh3.dei.isep.ipp.pt Acesso via putty

8 Flex Geração do código fonte do analisador léxico >> flex ficheiro.flex >> flex oficheiro.c ficheiro.flex Compilação do analisador léxico Produz: lex.yy.c Produz: ficheiro.c >> gcc ficheiro.c -lfl >> gcc oprograma ficheiro.c -lfl Produz: a.out Produz: Programa

9 Flex Execução do analisador léxico >>./Programa <ficheiro.txt >>./Programa Xpto quert as sfsfl Sf skfk flas kn ebs Sf sfsç mf827 d0e 9 Fkfkh as dh 9d <Ctrl+D> Corresponde ao caracter EOF End of File

10 Propostas de Exercícios 1. Escrever um programa que permita contar o número de ocorrências de uma cadeia de caracteres ex1.flex %{ int contador=0; %} ISEP isep {contador++;}. \n main() { yylex(); printf("numero de ocorrências : %d\n",contador); }

11 Propostas de exercícios 1. >> flex oex1.c ex1.flex >> gcc oprogex1 ex1.c -lfl Info.txt Em 1989, o ISEP é integrado no subsistema de Ensino Superior Politécnico, passando o seu modelo de formação a integrar dois cursos distintos: o bacharelato, com a duração de três anos, e os Cursos de Estudos Superiores Especializados, com a duração de dois anos. Em 1998, no âmbito de uma nova reforma do ensino superior politécnico, o ISEP passa a ministrar as actuais licenciaturas bietápicas, caracterizadas pela sua estruturação em dois ciclos - o bacharelato com a duração de três anos - o que possibilita a inserção no mercado de trabalho, seguido de um segundo ciclo de dois anos - frequentado essencialmente em regime pós-laboral - para a obtenção da licenciatura. Em 2006, por força da adesão de Portugal à Declaração de Bolonha, o isep disponibilizará um novo Plano de Estudos, constituído por licenciaturas e mestrados nas diversas áreas da Engenharia, assim iniciando um novo ciclo da sua já longa história. Em 2008, o Presidente da República Portuguesa, enaltece a qualidade do trabalho desenvolvido no ISEP, durante o Roteiro para a Ciência. A passagem pelo isep constitui a primeira visita oficial de um chefe de Estado português a um instituto politécnico. O ISEP atribui o primeiro grau de mestre pós-bolonha. >>./ProgEx1 <Info.txt número de ocorrências : 6

12 Propostas de Exercícios 2. Escrever um programa que permita substituir as ocorrências de FEUP por ISEP e de 2007 por 2008 ex2.flex FEUP {printf("isep");} 2007 {printf("2008");}. \n {printf("%s",yytext);} main() { } yylex();

13 Propostas de Exercícios 3. Escrever um programa que permita validar matrículas portuguesas. ex3.flex ALGAR [0-9] LET [A-Z] {ALGAR}{2}-{LET}{2}-{ALGAR}{2}. \n {printf("%s\n",yytext);} main() { } yylex();

14 Propostas de Exercícios 4. Escrever um programa que dado um ficheiro de texto, mostre: Número de algarismos Número de letras do alfabeto Número de linhas de texto Número de espaços ou tabulações Numero de outros caracteres 5. Escrever um programa que permita identificar números naturais 6. Escrever um programa que permita identificar números inteiros (com e sem sinal) 7. Escrever um programa que permita identificar números com parte decimal

15 Linguagens e Programação FLEX

Introdução ao FLEX e expressões regulares

Introdução ao FLEX e expressões regulares Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Ficha 1 Introdução ao FLEX e expressões regulares Objectivos: Familiarização com a ferramenta FLEX; Introdução ao reconhecimento

Leia mais

Analisador Léxico parte II

Analisador Léxico parte II Analisador Léxico parte II Compiladores Mariella Berger Sumário Definições Regulares Gerador de Analisador Léxico Flex Exemplos As fases de um Compilador Análise Léxica Análise Sintática ANÁLISE Análise

Leia mais

Identificação do discente: Matrícula: Nome completo: Douglas Godeguez Nunes. Curso: Ciência da Computação

Identificação do discente: Matrícula: Nome completo: Douglas Godeguez Nunes. Curso: Ciência da Computação Identificação do discente: Nome completo: Douglas Godeguez Nunes Matrícula: 547927 Curso: Ciência da Computação Identificação do professor-orientador: Nome completo: Maria do Carmo Garcia Noronha Curso:

Leia mais

Papel do analisador léxico: ler o arquivo fonte em busca de unidades significativas (os tokens) instanciadas por lexemas ou átomos.

Papel do analisador léxico: ler o arquivo fonte em busca de unidades significativas (os tokens) instanciadas por lexemas ou átomos. Análise Léxica Análise Léxica Papel do analisador léxico: ler o arquivo fonte em busca de unidades significativas (os tokens) instanciadas por lexemas ou átomos. Também denominado de scanner, porque varre

Leia mais

Introdução ao reconhecimento de padrões e expressões regulares; Aprendizagem dos conceitos através da realização de alguns exercícios;

Introdução ao reconhecimento de padrões e expressões regulares; Aprendizagem dos conceitos através da realização de alguns exercícios; Capítulo 1 Introdução ao Flex Objectivos: Familiarização com a ferramenta FLEX; Introdução ao reconhecimento de padrões e expressões regulares; Aprendizagem dos conceitos através da realização de alguns

Leia mais

Compiladores 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) Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de

Leia mais

Compiladores I Prof. Ricardo Santos (cap 1)

Compiladores I Prof. Ricardo Santos (cap 1) Compiladores I Prof. Ricardo Santos (cap 1) Compiladores Linguagens de programação são notações que permitem descrever como programas devem executar em uma máquina Mas, antes do programa executar, deve

Leia mais

Compiladores - Análise Léxica

Compiladores - Análise Léxica Compiladores - Análise Léxica Fabio Mascarenhas 2017.2 http://www.dcc.ufrj.br/~fabiom/comp Introdução Primeiro passo do front-end: reconhecer tokens Tokens são as palavras do programa O analisador léxico

Leia mais

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Análise Semântica Disciplina: Compiladores Equipe: Luiz Carlos dos Anjos Filho José Ferreira Júnior Compiladores Um compilador

Leia mais

Introdução à Programação

Introduçã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 mais

Compiladores - JFlex. Fabio Mascarenhas Monday, April 15, 13

Compiladores - JFlex. Fabio Mascarenhas Monday, April 15, 13 Compiladores - JFlex Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp JFlex Um gerador de analisadores léxicos que gera analisadores escritos em Java A sintaxe das especificações é inspirada

Leia mais

Compiladores. Conceitos Básicos

Compiladores. Conceitos Básicos Compiladores Conceitos Básicos Processadores de Linguagem De forma simples, um compilador é um programa que recebe como entrada um programa em uma linguagem de programação a linguagem fonte e o traduz

Leia mais

Introdução à Programação em C (II)

Introdução à Programação em C (II) Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem

Leia mais

Prof. Adriano Maranhão COMPILADORES

Prof. Adriano Maranhão COMPILADORES Prof. Adriano Maranhão COMPILADORES LINGUAGENS: INTERPRETADAS X COMPILADAS Resumo: Linguagem compilada: Se o método utilizado traduz todo o texto do programa, para só depois executar o programa, então

Leia mais

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Análise léxica. Parte 01. Geovane Griesang

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Análise léxica. Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise léxica Parte 01 geovanegriesang@unisc.br Compilador Compilador... é um programa de computador que lê um programa

Leia mais

aceita, l L R L (l) = erro, l L

aceita, l L R L (l) = erro, l L 26 Capítulo 3 Análise Lexical A análise lexical é a primeira fase de um compilador A sua tarefa é a de ler a sequência de caracteres do canal de entrada e produzir uma sequência de palavras (lexemas) As

Leia mais

Análise Sintática Introdução

Análise Sintática Introdução Análise Sintática Introdução Renato Ferreira Linguagens e Automatas Linguagens formais são importantes em Computação Especialmente em linguagens de programação Linguagens regulares A linguagem formal mais

Leia mais

O 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: 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 mais

Utiliza Expressões Regulares (ER) Estendidas para definir a especificação da análise léxica desejada

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

Programação. Folha Prática 1. Lab. 1. Departamento de Informática Universidade da Beira Interior Portugal Copyright Ó 2000 All rights reserved.

Programação. Folha Prática 1. Lab. 1. Departamento de Informática Universidade da Beira Interior Portugal Copyright Ó 2000 All rights reserved. Programação Folha Prática 1 Lab. 1 Departamento de Informática Universidade da Beira Interior Portugal 2016 Copyright Ó 2000 All rights reserved. LAB. 1 1ª semana INTRODUÇÃO À PROGRAMAÇÃO 1. Introdução

Leia mais

Compiladores. Fabio Mascarenhas

Compiladores. Fabio Mascarenhas Compiladores Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Compiladores x Interpretadores Offline x Online Um compilador transforma um programa executável de uma linguagem fonte

Leia mais

UMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES

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

Métodos de Programação I (2005/2006) 1. Ficheiro (file)

Métodos de Programação I (2005/2006) 1. Ficheiro (file) Métodos de Programação I (2005/2006) 1 Ficheiro (file) O tipo estruturado file representa, em Pascal, uma estrutura de dados capaz de armazenar dados ou resultados de qualquer outro tipo É uma estrutura

Leia mais

Construção de Compiladores Aula 2 - Analisador Léxico

Construção de Compiladores Aula 2 - Analisador Léxico Construção de Compiladores Aula 2 - Analisador Léxico Bruno Müller Junior Departamento de Informática UFPR 8 de Agosto de 2014 1 Analisador Léxico 2 3 Método 1: Programa 4 Código Analisador Léxico 5 Método

Leia mais

Compiladores - Autômatos

Compiladores - Autômatos Compiladores - Autômatos Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp Especificação x Implementação Usamos expressões regulares para dar a especificação léxica da linguagem Mas como podemos

Leia mais

DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR

DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Eng. Informática Linguagens Formais e Compilação 2º Semestre Resolução da Frequência 1 20/Abril/2010 Pergunta A.1 A.2 A.3 A.4 B C.1 C.2 Total Cotação 0,75

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 04 Sintaxe e Semântica Edirlei Soares de Lima Sintaxe e Semântica A descrição de uma linguagem de programação envolve dois aspectos principais:

Leia mais

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07. Tópicos avançados

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07. Tópicos avançados Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Tópicos avançados Este documento apresenta alguns métodos para a resolução de problemas, susceptíveis de ocorrer na resolução

Leia mais

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 12. Instituto de C

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 12. Instituto de C ompiladores Análise Sintática Bruno Lopes Bruno Lopes ompiladores 1 / 12 Front-end Lida com a linguagem de entrada Teste de pertinência: código fonte linguagem fonte? Programa está bem formado? Sintaticamente?

Leia mais

IV.2 Aspectos Léxicos Convencionais

IV.2 Aspectos Léxicos Convencionais IV.2 Aspectos Léxicos Convencionais Classes de símbolos Genéricos - Token genérico / Lei de formação bem definida - Limitações de tamanho e/ou valor - Possuem valor semântico o token deve ser acompanhado

Leia mais

Tokens, Padroes e Lexemas

Tokens, Padroes e Lexemas O Papel do Analisador Lexico A analise lexica e a primeira fase de um compilador e tem por objetivo fazer a leitura do programa fonte, caracter a caracter, e traduzi-lo para uma sequencia de símbolos lexicos

Leia mais

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador

Leia mais

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações

Leia mais

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1 Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,

Leia mais

Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011

Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011 Ana Paula Tomás Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011 Aula 1 Objectivos e programa da disciplina. Critérios de avaliação. Um primeiro programa

Leia mais

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18 Análise Sintática Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 18 Sumário 1 Introdução 2 Derivações 2 / 18 1 Introdução 2 Derivações 3 /

Leia mais

Compiladores. Introdução à Compiladores

Compiladores. Introdução à Compiladores Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem

Leia mais

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise

Leia mais

Linguagens de Domínio Específico

Linguagens de Domínio Específico Linguagens de Domínio Específico Fabio Mascarenhas 2016.1 http://www.dcc.ufrj.br/~fabiom/dsl Processamento de uma DSL Erros Uma falha em um parser de combinadores tem dois significados: A alternativa que

Leia mais

Implementação do Analisador Léxico

Implementação do Analisador Léxico Implementação do Analisador Léxico Ricardo Mendes do Nascimento Universidade Regional Integrada do Alto Uruguai e das Missões (URI) Santo Ângelo RS Brasil rnascom@urisan.tche.br Resumo. Este artigo tem

Leia mais

Tratamento dos Erros de Sintaxe. Adriano Maranhão

Tratamento dos Erros de Sintaxe. Adriano Maranhão Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores

Leia mais

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE Jeferson MENEGAZZO 1, Fernando SCHULZ 2, Munyque MITTELMANN 3, Fábio ALEXANDRINI 4. 1 Aluno 5ª fase do Curso de Ciência da Computação do Instituto

Leia mais

Autômatos e Linguagens

Autômatos e Linguagens Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa

Leia mais

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Computaçã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 mais

LEX & YACC / FLEX & BISON. Uso prático... LEX: Tokenizer LEX & YACC / FLEX & BISON. Uso do Flex:

LEX & YACC / FLEX & BISON. Uso prático... LEX: Tokenizer LEX & YACC / FLEX & BISON. Uso do Flex: Uso prático... LEX: Tokenizer Uso do Flex: Prompt> flex arquivo.l ou Prompt> flex oarquivo.c arquivo.l Compilando o programa gerado: Prompt> gcc arquivo.c oarquivo.exe -lfl Formato do Arquivo *.l: % Conta.l

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

52ª DELIBERAÇÃO DA SECÇÃO PERMANENTE DE COORDENAÇÃO ESTATÍSTICA

52ª DELIBERAÇÃO DA SECÇÃO PERMANENTE DE COORDENAÇÃO ESTATÍSTICA DOCT/4509/CSE/C 52ª DELIBERAÇÃO DA SECÇÃO PERMANENTE DE COORDENAÇÃO ESTATÍSTICA VERSÃO PORTUGUESA E IMPLEMENTAÇÃO DA CLASSIFICAÇÃO INTERNACIONAL TIPO DE EDUCAÇÃO 2011 (ISCED/CITE 2011) Considerando as

Leia mais

Linguagens Formais e Autómatos

Linguagens Formais e Autómatos Parte teórica - Duração: 5 min Nome Número Atenção: Responda às perguntas na folha do enunciado ndique o seu número e nome A prova é sem consulta Cada resposta errada terá uma cotação negativa de 2/3 do

Leia mais

Compiladores Aula 2. Celso Olivete Júnior.

Compiladores Aula 2. Celso Olivete Júnior. Aula 2 Celso Olivete Júnior olivete@fct.unesp.br Relembrando... Métodos de implementação 1. Compilação: Tradução do programa fonte Linguagem máquina Tradução lenta, execução rápida 2 Relembrando... Métodos

Leia mais

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30 Análise Léxica II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Setembro, 2016 1 / 30 Sumário 1 Especicação de tokens 2 Reconhecimento de tokens Ambiguidade

Leia mais

Linguagem C Ficheiros Compilação Separada

Linguagem C Ficheiros Compilação Separada Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir

Leia mais

A linguagem C (visão histórica)

A linguagem C (visão histórica) A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 06 Análise Sintática (Implementação) Edirlei Soares de Lima Análise Sintática A maioria dos compiladores separam a tarefa da análise sintática

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 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um

Leia mais

Programação 2010/2011 MEEC

Programação 2010/2011 MEEC Programação 2010/2011 MEEC Code::Blocks Criação de projectos O Code::Blocks é um IDE (ambiente de desenvolvimemnto integrado) que permite a escrita do codigo, compilação, correcção de erros e depuração

Leia mais

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 30. Instituto de C

Compiladores. 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 mais

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer. Uma seqüência adequada

Leia mais

extração e classificação dos símbolos léxicos que compõem o programa fonte,

extração e classificação dos símbolos léxicos que compõem o programa fonte, 2 Análise Léxica 2.1 Introdução A análise léxica é a primeira etapa do processo de compilação e seu objetivo é dividir o código fonte em símbolos, preparado-o para a análise sintática. Neste processo pode-se

Leia mais

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação Compiladores Analisador Sintático Prof. Antonio Felicio Netto antonio.felicio@anhanguera.com Ciência da Computação 1 Análise Sintática - A Análise Sintática constitui a segunda fase de um tradutor de uma

Leia mais

Descrição da Linguagem Pascal Jr.

Descrição da Linguagem Pascal Jr. Descrição da Linguagem Pascal Jr. Características gerais PascalJr possui convenções de tipos igual a linguagem Pascal PascalJr suporta definições de funções Com passagem de parâmetros por valor e por referência

Leia mais

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha Conceitos Lógica de Programação técnica de encadear pensamentos

Leia mais

INE5421 LINGUAGENS FORMAIS E COMPILADORES

INE5421 LINGUAGENS FORMAIS E COMPILADORES INE5421 LINGUAGENS FORMAIS E COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer a teoria das linguagens formais visando sua aplicação na especificação de linguagens de programação e na construção de

Leia mais

Tratamento de Caracteres

Tratamento de Caracteres Tratamento de Caracteres Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan A tabela ASCII Se os computadores manipulam apenas números, como eles podem armazenar os caracteres de um nome

Leia mais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

Linguagem de Programação C

Linguagem de Programação C Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem

Leia mais

FACULDADE LEÃO SAMPAIO

FACULDADE LEÃO SAMPAIO FACULDADE LEÃO SAMPAIO Paradigmas de Programação Curso de Análise e Desenvolvimento de Sistemas Turma: 309-5 Semestre - 2014.2 Paradigmas de Programação Prof. MSc. Isaac Bezerra de Oliveira. 1 PARADIGMAS

Leia mais

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. e saída Biblioteca stdio.h Comandos Função scanf() Função gets() Função getchar() Material cedido pelo prof. Daniel Callegari scanf() Rotina de entrada que lê todos os tipos de dados. Protótipo: int scanf(const

Leia mais

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Compiladores 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) 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 mais

Compiladores Prof. a Mariella Berger. Trabalho 2 Analisador Léxico

Compiladores Prof. a Mariella Berger. Trabalho 2 Analisador Léxico Compiladores Prof. a Mariella Berger Trabalho 2 Analisador Léxico 1. Objetivo O objetivo deste trabalho é a criação de um analisador léxico para a linguagem Pascalito, um subconjunto modificado da linguagem

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

Introdução a Programação na Linguagem C.

Introdução a Programação na Linguagem C. Introdução a Programação na Linguagem C. Prof. Gemilson George E-mail: gemilson@geo.com.br Skype: gemilson_geo MSN: gemilsongeorge@gmail.com Facebook: facebook.com/gemilson Fone: (83)8880-2046 Blog: informaticageo.wordpress.com

Leia mais

Linguagens de Programação Aula 3

Linguagens de Programação Aula 3 Aula 3 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...

Leia mais

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

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

Leia mais

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,

Leia mais

COMPILAÇÃO. Ricardo José Cabeça de Souza

COMPILAÇÃO. Ricardo José Cabeça de Souza COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação aula 4 Engenharia Elétrica e Engenharia de Automação Introdução à Computação 1.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) Programas Programas são seqüências de instruções

Leia mais

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Ferramentas Programação. UDESC - Prof. Juliano Maia 1 Ferramentas Programação UDESC - Prof. Juliano Maia 1 Índice Seção 1 Linguagens de Programação Seção 2 Interpretador Seção 3 Compilador / Linkeditor Seção 4 Ambientes de Desenvolvimento UDESC - Prof. Juliano

Leia mais

Análise Léxica. Sumário

Análise Léxica. Sumário Análise Léxica Renato Ferreira Sumário Definição informal de Análise Léxica Identifica tokens numa string de entrada Alguns detalhes Lookahead Ambiguidade Especificação de Analisadores Léxicos Expressões

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações

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

Funções de Entrada e Saída

Funções de Entrada e Saída inicio Escrita no ecrã (Saída de dados) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio S Raio < 0 N O utilizador insere o valor do raio (Entrada de dados do teclado) Escrita no ecrã

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Condicional 1 Se 'C' é verdadeira Então?; 3 Condicional 1 Se 'C' é verdadeira Então? if (C)?; 4 Condicional 2 Se 'C' é verdadeira Então? Senão?? 5 Condicional

Leia mais

Linguagens de Programação Aula 4

Linguagens de Programação Aula 4 Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Autômatos finitos AF:exemplos... Cadeia de caracteres a,b,c 2/82 Na aula passada... Autômatos finitos AF:exemplos... Números inteiros(com

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2 Programação de Computadores II Cap. 7 Cadeias de Caracteres 1/2 Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos

Leia mais

Conteúdo. Introdução a compiladores Tradução x Interpretação Processo de Compilação

Conteúdo. Introdução a compiladores Tradução x Interpretação Processo de Compilação Compiladores Conteúdo Introdução a compiladores Tradução x Interpretação Processo de Compilação Quando se inventou o computador criou se uma máquina a mais, quando se criou o compilador criou se uma nova

Leia mais

CP Compiladores I Prof. Msc. Carlos de Salles

CP Compiladores I Prof. Msc. Carlos de Salles CP 5017.9 Prof. Msc. Carlos de Salles 1 - EMENTA O Processo de Compilação. Deteção e Recuperação de Erros. Introdução à geração de Código Intermediário. Geração de Código de Máquina. Otimização. Uma visão

Leia mais

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Introdução à Programação em C (I)

Introdução à Programação em C (I) Introdução à Programação em C (I) IAED Tagus, 2009/2010 Organização de Ficheiros em C Organização Típica de Ficheiros em C Inclusão de bibliotecas de sistema Inclusão de bibliotecas locais Definição de

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba Questão 01 No processo de construção de compiladores, é essencial compreender e manipular as expressões regulares e suas equivalências. Dentro desse contexto, seja o alfabeto = {a, b, c, d, e} e a seguinte

Leia mais

Caracteres e Cadeias de Caracteres

Caracteres e Cadeias de Caracteres Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor

Leia mais

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros

Leia mais

VAGAS, ALUNOS E DIPLOMADOS NO ENSINO SUPERIOR Apresentação de dados [JUNHO de 2008]

VAGAS, ALUNOS E DIPLOMADOS NO ENSINO SUPERIOR Apresentação de dados [JUNHO de 2008] VAGAS, ALUNOS E DIPLOMADOS NO ENSINO SUPERIOR Apresentação de dados [JUNHO de 2008] Vagas, Alunos e Diplomados no Ensino Superior Apresentação de dados [Junho de 2008] O Gabinete de Planeamento, Estratégia,

Leia mais

Introdução à Linguagem C. K&R: Capitulo 1. Introdução IAED, 2014/2015 2

Introdução à Linguagem C. K&R: Capitulo 1. Introdução IAED, 2014/2015 2 Introdução Introdução à Linguagem C K&R: Capitulo 1 Desenvolvida em 1972 por Dennis Ritchie, nos Bell Labs, para utilização no sistema operativo UNIX O standard ANSI C (ISO/IEC 9899:1990) foi adoptado

Leia mais

Introdução as Máquinas de Autômatos

Introdução as Máquinas de Autômatos Faculdade de Engenharia da Computação Disciplina: Autômatos e Linguagens Formais Introdução as Máquinas de Autômatos Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de

Leia mais

Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007. Programação 2. Trabalho Prático P2B

Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007. Programação 2. Trabalho Prático P2B Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007 Programação 2 2º Semestre Trabalho Prático P2B Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em

Leia mais

Outline. 33. Manipulação de arquivos DIM

Outline. 33. Manipulação de arquivos DIM Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de

Leia mais