Folha 3 - Análise léxica
|
|
- Isaac Rodrigues Mota
- 8 Há anos
- Visualizações:
Transcrição
1 Folha 3 Análise léxica 1. Escrever um programa em Lex que permite contar o número de ocorrências de uma cadeia de caracteres contida num ficheiro de texto. 2. Escrever um programa em Lex que permite substituir uma cadeia de caracteres por outra contidas num ficheiro de texto. 3. Escrever um programa em Lex que dado um ficheiro de texto, mostre: o número de algarismos; o número de vogais do alfabeto; o número de consoantes do alfabeto; o número de linha de texto; o número de espaços ou tabulações (\t); o número de caracteres não identificados nos pontos anteriores. 4. Escrever um programa em Lex para identificar números naturais contidos num texto. Exemplo: Entrada: 123 abc s 245 xyz xyz 2 abc 45 cc Saída: Escrever um programa em Lex que permite contabilizar os números inteiros com 1 algarismo, com 2 algarismos e com 3 ou mais algarismos, contidos num ficheiro de texto. Ver o exemplo a seguir. 6. Escrever um programa em Lex que permite identificar números inteiros (com ou sem sinal) contidos num ficheiro de texto. 7. Escrever um programa em Lex que permite identificar números com parte decimal (com ou sem sinal) contidos num ficheiro de texto. 8. Escreva um programa LEX que copie um ficheiro, substituindo cada sequência não nula de espaços em branco por um único espaço. 9. Escreva um programa LEX que copie um ficheiro, substituindo cada sequência não nula de digítos (número) pela palavra NÚMERO. 10. Escreva um programa LEX que copie um programa em C, substituindo todas as instâncias de FLOAT por REAL.
2 2 11. Escrever um programa em Lex que construa dois vectores com os números inteiros e com os números reais contidos num ficheiro de texto. No final, deve mostrar estes vectores. 12. Implementar um programa em Lex que elimine de um programa em C todos os comentários e caracteres de espaço. 13. Escreva expressões regulares para as seguintes linguagens e implemente autómatos finitos em C e em Lex para as mesmas: a) palavras com V = { a, b, c } em que o primeiro a precede o primeiro b. b) palavras com V = {a, b, c} com n umero par de a s. c) números binários múltiplos de 4. d) números binários maiores que e) palavras em V = { a, b, c } que não contêm a substring baa. 14. Para as seguintes expressões regulares, implemente em C e em Lex um autómato finito determinístico que as reconheça: if then else [az][az09]* [09]+ ( [az]* \n ) ( \n \t ) 15. Considere os seguintes tokens e as respectivas expressões regulares t1 aa* t2 c(a+b)* t3 ab*c t4 caa* t5 b*aa*(c+b) t6 aab*a t7 (a+c)*abb(c+b)* t8 a*bc* t9 (a+(bc)*d) + t10 (a+(bc)*b) + a) Construa um autómato finito determinista para reconhecer cada token. b) Codifique em C e em Lex o reconhecedor de cada token. 16. Considere a seguinte especificação para nomes de objectos numa linguagem: [ <class>: ] [ // <address>/ ] <path> A notação deve ser interpretada da seguinte forma: os parênteses rectos [ ] delimitam partes opcionais de um nome; os caracteres < > delimitam os seguintes padrões: i) <class> é um identificador; ii) <address> é uma lista de um ou mais identificadores, separados por. ; iii) <path>é uma lista de um ou mais identificadores, separados por /. um identificador é uma sequência de uma ou mais letras e dígitos, não podendo começar por um dígito. Construa um autómato finito determinista que reconheça os nomes dos objectos da linguagem e programeo em C e Lex.
3 3 17. Considere a seguinte especificação dos tokens de L, definidos de acordo com as seguintes regras: i) os números podem ser escritos na base 2 (i.e., com o alfabeto {0, 1}), na base 8 (i.e., com o alfabeto {0,, 7}) e na base 10 (i.e., com o alfabeto {0,, 9}); ii) os identificadores são escritos como sequências de dígitos decimais e de caracteres (letras, _, $, %) que começam por uma letra e não terminam com os caracteres _, $ e %; iii) os comentários são sequências de caracteres (letras, _, $, %) entre /* e */; iv) os números reais (e.g., 5, 4E5, 3.8, 29.6E15, 7E3), são representados por vírgula flutuante, com um ponto decimal antecedido e precedido por uma sequencia de um ou mais dígitos, e o expoente com o máximo de 2 dígitos, sendo o primeiro dígito diferente de 0. Não se consideram os 0 s não significativos à esquerda e à direita do ponto decimal. Construa um autómato finito determinista que reconheça os tokens de L e programeo em C e Lex. 18. Considere a seguinte especificação de endereços URL. ftp://[<user>[:<password>]@]<host>[:<port>]/<path>[;<ftptype>] A notação deve ser interpretada da seguinte forma: os parênteses rectos [ ] delimitam partes opcionais de um nome; os caracteres < > delimitam os seguintes padrões: i) <user> e <password> são identificadores; ii) <host> é uma lista de um ou mais identificadores, separados por. ; iii) <port> é uma sequência de um ou mais dígitos; iv) <path> é uma lista de um ou mais identificadores, separados por / ; v) <ftptype> é L <port>; um identificador é uma sequência de uma ou mais letras (maiúsculas ou minúsculas), dígitos e os caracteres _, $ e, não podendo começar por um dígito ou. Construa um autómato finito determinista que reconheça os endereços URL e programeo em C e Lex. 19. Considere uma linguagem de programação, de nome Graphics, que permite desenhar polígonos a partir de instruções. Um ponto é representado por ( number, number ), onde number denota um número inteiro maior ou igual a 0. Uma instrução é uma sequencia de pontos separados por ; que começa por POLY e termina com END. Um programa é uma sequência de instruções. Um exemplo de um programa para desenhar o polígono é dado pela instrução POLY (10,40) ; (50,90) ; (40,45) ; (50,0) END. Identifique os tokens da linguagem Graphics. Construa um autómato finito que reconheça os tokens da linguagem e programeo em C e Lex. 20. Considere a seguinte especificação de um tipo de documentos XML <!ELEMENT id (expr)> A notação deve ser interpretada da seguinte forma:
4 4 id é uma sequência de uma ou mais letras (maiúsculas ou minúsculas), dígitos e os caracteres _, e :, não podendo começar por um dígito ou :. expr é uma sequencia sobre o alfabeto {#PCDATA,,, *,?} que: começa por #PCDATA, tem, ou entre dois #PCDATA s, podendo ainda cada #PCDATA ser seguido por * ou por?. Construa um autómato finito que reconheça este tipo de documentos e programeo em C e Lex. 21. Considere a seguinte tabela de tradução de padrões de expressões regulares para tokens Expressão regular Token Valor de atributo ws if then else id num < <= = <> > >= if then else id num apontador para entrada da tabela apontador para entrada da tabela LT LE EQ NE GT GE Construa o algoritmo de um analisador léxico para os tokens da tabela anterior. Implemente o algoritmo utilizando as linguagens de programação C e LEX. 22. Implementar um préprocessador de C, que expanda macros definidas por #define, ficheiros incluídos com #include e elimine os comentários. 23. Implementar um analisador léxico para um subconjunto da linguagem C, com os construtores usuais: for while break if then else... e a pontuação usual:, : ; ( ) { } [ ] < > <= >= ==!=... Teste o analisador obtido com programas em C. 24. Dado um ficheiro.srt (de legendas para Divx), fazer um analisador léxico para adiantar/atrasar essas legendas de acordo com um valor de x segundos e programálo em C e Lex. Exemplo do formato de um ficheiro.srt: 1 00:00:45,000 > 00:00:50,400 Hello
5 5 2 00:00:50,300 > 00:00:58,200 Goodbye Neste exemplo serão geradas duas legendas. A primeira, será apresentada no filme aos 45 segundos durante cerca de 5 segundos. A segunda, será apresentada no filme aos 50 segundos durante cerca de 3 segundos. 25. Implementar um analisador léxico para a linguagem Tiger, cujos construtores são: while for to break let in end function var type array if then else do of nil e os operadores são:, : ; ( ) { } [ ]. + * / = < > < > <= >= ==!= & := os comentários são idênticos ao C. Experimente nos programas exemplo seguintes: let type any = {any : int} var buffer := getchar() function readint(any: any) : int = let var i := 0 function isdigit(s : string) : int = ord(buffer)>=ord("0") & ord(buffer)<=ord("9") function skipto() = while buffer=" " buffer="\n" do buffer := getchar() in skipto(); any.any := isdigit(buffer); while isdigit(buffer) do (i := i*10+ord(buffer)ord("0"); buffer := getchar()); i end type list = {first: int, rest: list} function readlist() : list = let var any := any{any=0} var i := readint(any) in if any.any then list{first=i,rest=readlist()} else nil end function merge(a: list, b: list) : list = if a=nil then b else if b=nil then a else if a.first < b.first then list{first=a.first,rest=merge(a.rest,b)} else list{first=b.first,rest=merge(a,b.rest)} function printint(i: int) = let function f(i:int) = if i>0 then (f(i/10); print(chr(ii/10*10+ord("0")))) in if i<0 then (print(""); f(i)) else if i>0 then f(i) else print("0") end function printlist(l: list) = if l=nil then print("\n") else (printint(l.first); print(" "); printlist(l.rest)) /* A program to solve the 8queens problem */ let var N := 8 type intarray = array of int var row := intarray [ N ] of 0 var col := intarray [ N ] of 0 var diag1 := intarray [N+N1] of 0 var diag2 := intarray [N+N1] of 0 function printboard() = (for i := 0 to N1 do (for j := 0 to N1 do print(if col[i]=j then " O" else "."); print("\n")); print("\n")) function try(c:int) = ( /* for i:= 0 to c do print("."); print("\n"); flush();*/ if c=n then printboard() else for r := 0 to N1 do if row[r]=0 & diag1[r+c]=0 & diag2[r+7c]=0 then (row[r]:=1; diag1[r+c]:=1; diag2[r+7c]:=1; col[c]:=r; try(c+1); row[r]:=0; diag1[r+c]:=0; diag2[r+7c]:=0) ) in try(0) end
6 6 26. Faça um analisador léxico que transforme, no texto de input, todas as minúsculas em maiúsculas (e mantenha tudo o resto igual) e programeo em C e Lex. 27. Faça um analisador léxico que extrai de um documento de texto todos os endereços de contidos. Assuma que os caracteres não permitidos num endereço de são \t, \n, {, }, espaço, ponto e vírgula, vírgula e aspas. Lembrese também que não pode haver nem dois pontos seguidos. Este analisador deve apenas produzir a lista de endereços, separados de vírgula e espaço. Ou seja, prontos para serem copiados directamente para um cliente de . Por exemplo, o texto: O endereço do João Fonseca é jfonseca@gmail.com e o do Carlos Meireles é meiras@hotmail.com. Para os outros, estão na lista abaixo: mariliaf@student.deeei.uq.tp; mfon{s}@kkks.us gilaroi@yaaahooo.com; gil eanes@grlah.jh daria o seguinte resultado: jfonseca@gmail.com, meiras@hotmail.com, mariliaf@student.deeei.uq.tp, gilaroi@yaaahooo.com, eanes@grlah.jh 28. A conhecida linguagem de edição LaTeX (lêse latec ), essencialmente dedicada à elaboração de artigos e relatórios científicos (e para situações onde se pretende alta qualidade gráfica em texto e fórmulas) consiste num conjunto de comandos que definem como deve aparecer o texto no resultado final. Cada comando é sempre precedido do caracter \. Um documento em LaTeX deve começar sempre pelo preâmbulo, que começa com a instrução \documentclass[opcoes]{<classe do Documento>}, algumas chamadas a packages (comandos do tipo \usepackage... ) até ao início do texto propriamente dito. O texto consiste num bloco delimitado pelo comandos \begin{document} e \end{document}. Cada bloco definido por begin/end é chamado ambiente e identificado dentro de chavetas (neste caso o ambiente é document ). Dentro do texto, existem vários comandos e ambientes específicos a cada situação. Neste exercício, vamos utilizar apenas os comandos \section, \chapter, \title e os ambientes itemize e enumerate. Em baixo, vemos um ficheiro LaTeX de exemplo: \documentclass[onecolumn, 10pt] {article} \usepackage{graphix} \begin{document} \title{o Gato} \chapter{introducao} Era uma vez um gato maltes...\\ \section{seccao1} Tocava piano e falava frances\\
7 7 \section{seccao2}...e dava uns toques de guitarra e falava ingles tambem\\ \chapter{desenvolvimento} Na verdade, o gato apenas: \begin{itemize} \item Miava \item Ronronava \item Fugia dos caes \end{itemize} \chapter{conclusoes} Moral da historia: \begin{enumerate} \item Os animais sao nossos amigos \item Mesmo quando nao falam frances nem ingles \item Mesmo quando nao tocam piano nem guitarra \end{enumerate} \end{document} e o respectivo resultado poderia ser algo do género: O GATO 1. Introducao Era uma vez um gato maltes Seccao1 Tocava piano e falava frances Seccao2...e dava uns toques de guitarra e falava ingles tambem 2. Desenvolvimento Na verdade, o gato apenas:. Miava. Ronronava. Fugia dos caes 3. Conclusoes Moral da historia: 1. Os animais sao nossos amigos 2. Mesmo quando nao falam frances nem ingles 3. Mesmo quando nao tocam piano nem guitarra
8 8 No sentido de ajudar os menos habituados ao LaTeX (e que pretendem apenas compreender e extrair o conteúdo de um ficheiro.tex ), pretendese que faça em Lex um miniinterpretador que produza ficheiros de texto simples com atenção aos seguintes pontos: a) Ignore completamente o preâmbulo (ou seja, não deve aparecer no ficheiro de saída) b) Coloque o título em letras maiúsculas (antecedido de um tab \t ). c) Elimine as indicações de \begin{document} e \end{document}. d) Crie capítulos e secções, numerados como apresentado acima. e) Interprete os ambientes itemize (colocar um. no início de cada linha precedida por \item) e enumerate (colocar numeração sequencial em cada \item) 29. Para fazer a sua package completa, é necessária também a ferramenta que converta um texto seu em LaTeX. Assim, poderá escrever os seus textos numa linguagem de edição inventada por si e ter o output com a qualidade LaTeX: a) Garanta que o ficheiro de saída começa sempre com os seguintes comandos: \documentclass[a4paper,10pt]{report} \begin{document} e termina com o seguinte: \end{document} b) Converta sequências de maiúsculas seguidas de vários \t em comandos \title{...} c) Converta sequências de dígitos isolados (seguidos de ponto), por exemplo 1. em comandos \chapter{...}. d) Converta sequências de pares de dígitos (intercalados com pontos), por exemplo 1.1. em comandos \section{...} e) (opcional) Converta as frases iniciadas com. ou * como sendo comandos \itemize f) (opcional) Converta as frases iniciadas com dígito seguidas de como sendo comandos \enumerate
Folha 3 - Análise léxica
Folha 3 Análise léxica 1. Escrever um programa em FLEX que permite contar o número de ocorrências de uma cadeia de caracteres contida num ficheiro de texto. 2. Escrever um programa em FLEX que permite
Leia maisCapítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
Leia maisAULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme
AULA 2: INTRODUÇÃO A LINGUAGEM DE C Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Agenda Introdução a linguagem C Compiladores Variáveis IDEs Exemplos Exercícios Introdução A Linguagem C
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 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 maisAluísio Eustáquio da Silva
1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que
Leia maisAlgoritmos com VisuAlg
Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente
Leia maisCompiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador
Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos
Leia maisUm compilador é um programa que lê um programa escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num programa equivalente
Capítulo 1 Introdução Um compilador é um que lê um escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num equivalente numa outra linguagem, a linguagem destino Como parte importante neste
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 maisOs objetivos indicados aplicam-se a duas linguagens de programação: C e PHP
AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:
Leia 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 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 maisPROGRAMAÇÃO PARA DESIGNERS - OPERADORES
PROGRAMAÇÃO PARA DESIGNERS - OPERADORES Introdução Este tutorial faz parte de um grupo de tutoriais (Programação para Designers) cujo objectivo é ensinar actionscripting a quem não tem bases de programaçã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 maisProgramação Elementar de Computadores Jurandy Soares
Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos
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 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 maisSintaxe e Semântica. Fases da Compilação. programa fonte
Sintaxe e Semântica mleal@inf.puc-rio.br Fases da Compilação programa fonte tokens parse tree árvore anotada ou outra forma intermediária código intermediário código objeto código objeto otimizado scanner
Leia maisProgramação de Computadores III
Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Leia maisConceitos Básicos de C
Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,
Leia maisAMBIENTE DE PROGRAMAÇÃO PYTHON
Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos
Leia maisA lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.
INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,
Leia maisConjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo;
Conjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo; O tipo de dados tem por base um tipo simples (enumerável); Na verdade, um set representa o conjunto
Leia maisAlgoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma
Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de
Leia maisLinguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1
Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;
Leia maisO Processo de Programação
Programação de Computadores I Aula 04 O Processo de Programação José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/23 Algoritmo Um algoritmo é uma seqüência de
Leia maisIdentificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)
Aulas anteriores... Formulação adequada do problema Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução Definição do algoritmo Método de decomposição hierárquica utilizando
Leia maisProgramação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre
Programação MEAer Bertinho Andrade da Costa 2011/2012 1º Semestre Instituto Superior Técnico Introdução ao Pré-Processador Programação 2011/2012 DEEC-IST Introdução ao Pré-Processador 1 Sumário Introdução
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 maisTeoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos
Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos Simão Melo de Sousa 12 de Outubro de 2011 Conteúdo 1 Linguagens e Expressões Regulares 2 2 Autómatos de Estados Finitos
Leia maisIntrodução à Linguagem
Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:
Leia maisResumo da Matéria de Linguagem de Programação. Linguagem C
Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis
Leia maisALGORITMOS PARTE 01. Fabricio de Sousa Pinto
ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3
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 maisLinguagens Formais e Compilação Ficha de exercícios
Linguagens Formais e Compilação Ficha de exercícios Simão Melo de Sousa 1 Linguagens Formais: Construir Frases Exercício 1 Para cada uma das gramáticas G seguintes, (a) descreva a linguagem L(G) gerada
Leia maisApostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi
Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia
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 maisHugo Pedro Proença, 2007
Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações
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 maisProgramas simples em C
Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da
Leia maisManual de Programação Basic. Manual de auxílio para personalização de mensagens com o uso de programação BASIC
Manual de Programação Basic Manual de auxílio para personalização de mensagens com o uso de programação BASIC Manual de programação Basic Introdução Este documento tem o propósito de detalhar o uso da
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisProgramação de Computadores
Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 2 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma
Leia maisResolução de problemas e desenvolvimento de algoritmos
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de
Leia maisInstruções para Submissão de Trabalhos ao EPETUSP 2013
Instruções para Submissão de Trabalhos ao EPETUSP 2013 O trabalho deverá ser submetido em formato PDF e não serão feitas correções após o envio. Portanto, solicitamos o máximo cuidado e atenção na elaboração
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 maisPodemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :
Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : O form Index A tabela Fotos A query Q_seleção_de_fotos Vide figura 46. Figura 46 O próximo passo é criar um form que
Leia maisGuia de Estudo Folha de Cálculo Microsoft Excel
Tecnologias da Informação e Comunicação Guia de Estudo Folha de Cálculo Microsoft Excel Estrutura geral de uma folha de cálculo: colunas, linhas, células, endereços Uma folha de cálculo electrónica ( electronic
Leia maisP r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:
Inteligência É a faculdade de criar objetos artificiais, especialmente ferramentas para fazer ferramentas. Henri Bergson. WHILE Além dos comandos if-else e switch, o controle de fluxo de um programa pode
Leia maisGerador de Relatório
Gerador de Relatório O Gerador de Relatórios do Sistema Finanças permite criar relatórios personalizados com os dados da classificação financeira. Como funciona Você define o formato do seu relatório e
Leia maisO código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.
1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente
Leia maisProgramação. Folha Prática 3. Lab. 3. Departamento de Informática Universidade da Beira Interior Portugal 2015. Copyright 2010 All rights reserved.
Programação Folha Prática 3 Lab. 3 Departamento de Informática Universidade da Beira Interior Portugal 2015 Copyright 2010 All rights reserved. LAB. 3 3ª semana EXPRESSÕES E INSTRUÇÕES 1. Revisão de conceitos
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 maisLÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2012-1
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2012-1 Objetivos Entender o mecanismo de um programa em C/C++ Apresentar e estrutura da Linguagem C/C++
Leia maisEstrutura de um programa em linguagem C
Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Exemplo de um programa em linguagem C Directivas de Pré-Processamento #include Declarações Globais Declarações
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisComputabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto
Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação
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 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 maisCurso de Programação Computadores
3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos
Leia maisESTRUTURA DE DADOS PILHA
ESTRUTURA DE DADOS PILHA CONCEITO DE PILHAS - Pilhas são listas lineares onde a inserção de um novo item ou a remoção de um item já existente se dá em uma única extremidade, no topo. Pilha vazia Insere(A)
Leia maisConjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)
Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance
Leia maisAo conjunto total de tabelas, chamamos de Base de Dados.
O QUE É O ACCESS? É um sistema gestor de base de dados relacional. É um programa que permite a criação de Sistemas Gestores de Informação sofisticados sem conhecer linguagem de programação. SISTEMA DE
Leia maisIntrodução a Algoritmos Parte 04
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisTítulo do trabalho: subtítulo do trabalho
Título do trabalho: subtítulo do trabalho Resumo Este documento apresenta um modelo de formatação a ser utilizado em artigos e tem como objetivo esclarecer aos autores o formato a ser utilizado. Este documento
Leia maisComputação e Programação Aula prática nº 5. Enunciados dos problemas
Enunciados dos problemas 1 1. Processador de números 1.1 Objectivos do exercício análise sequencial de um problema baseada em objectos e desenvolvimento do respectivo algoritmo; codificação do algoritmo
Leia maisExemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )...
Caracteres Conceitos Tipo de dados simples (char), cujo valor é a codificação numérica de um caracter; Caracteres literais são representados por aspas simples, como em A e a ; Variáveis do tipo char podem
Leia maisProjeto de Compiladores. FIR Faculdade Integrada do Recife João Ferreira joaoferreira@fir.br 5 e 6 de março de 2007
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira joaoferreira@fir.br 5 e 6 de março de 2007 Agenda da Aula Resposta exercício da aula passada Revisão As Fases de Um Compilador Analisador
Leia maisSistemas de Apoio à Decisão
Sistemas de Apoio à Decisão Processo de tomada de decisões baseia-se em informação toma em consideração objectivos toma em consideração conhecimento sobre o domínio. Modelar o processo de tomada de decisões
Leia maisAlgoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)
Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação
Leia maisProgramação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática
Leia maisIntrodução a Computação
Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para
Leia maisLÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos
Leia mais1. NÍVEL CONVENCIONAL DE MÁQUINA
1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0
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 maisTrabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.
ICMC-USP ICC - SCC-0 Turmas B e D - º. Semestre de 00 - Prof. João Luís. PAE: Jefferson F. Silva. Trabalho Final Submissão Automática da implementação pelo sistema Boca (http://blacklabel.intermidia.icmc.usp.br/boca/scc00/.)
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou
Leia maisPontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.
Índice 1. SISTEMAS NUMÉRICOS 1.1 Caracterização dos Sistemas Numéricos 1.2 Sistemas Numéricos em uma Base B Qualquer 1.2.1 Sistema de Numeração Decimal 1.2.2. Sistema de Numeração Binário 1.2.3 Sistema
Leia maisNORMAS PARA EDITORAÇÃO E ENVIO DE TRABALHOS TÉCNICOS AO EVENTOS BRASIL 2014
NORMAS PARA EDITORAÇÃO E ENVIO DE TRABALHOS TÉCNICOS AO EVENTOS BRASIL 2014 07 a 08 de dezembro de 2014 São Paulo - SP DATAS E CONSIDERAÇÕES IMPORTANTES Os trabalhos técnicos deverão ser enviados eletronicamente,
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 maisInternet e Programação Web
COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 3 Técnico Prof. Cesar 2014 1 SUMÁRIO Criar sites dinâmicos em PHP --------------------------------------------------------
Leia maisFUNDAÇÃO EDUCACIONAL DE ITUIUTABA
FUNDAÇÃO EDUCACIONAL DE ITUIUTABA ASSOCIADA À UNIVERSIDADE DO ESTADO DE MINAS GERAIS CURSO DE SISTEMA DE INFORMAÇÃO PILHA E FILA Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@yahoo.com
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 maisRegras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos
Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando
Leia mais[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]
Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. A Linguagem C
Universidade Federal de Uberlândia Faculdade de Computação A Linguagem C Prof. Renato Pimentel 1 Programação Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento
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 maisINTRODUÇÃO À LINGUAGEM C++
INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem
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 maisCONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Objetivos Compreender os conceitos de lógica de programação e de algoritmos. Conhecer
Leia maise à Linguagem de Programação Python
Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto
Leia maisPROGRAMAÇÃO II 3. PILHA DINÂMICA
3. PILHA DINÂMICA PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma pilha é um tipo especial de Pilha na quais todas as inserções e remoções são feitas na primeira posição, que é chamada de topo. Outro nome
Leia maisInterpretação e Compilação de Linguagens de Programação Sintaxe e Semântica
Interpretação e Compilação de Linguagens de Programação Sintaxe e Semântica 28 de Fevereiro de 2013 Nesta aula apresentam-se dois dos aspetos fundamentais das linguagens de programação, sintaxe e semântica.
Leia maisLinguagens de programação
Prof. André Backes Linguagens de programação Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve ser descrito em termos de 1 s ou 0 s
Leia maisESTRUTURA CONDICIONAL
AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO
Leia maisO que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais
Processamento Estatístico da Linguagem Natural Aula 5 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ O que queremos Algo que faça automaticamente um mapeamento
Leia mais7. Estrutura de Decisão
7. Estrutura de Decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação
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 mais