Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 2. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 2 / 12

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

Download "Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 2. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 2 / 12"

Transcrição

1 Fundamentos de Linguagens de Programação Nelma Moreira Departamento de Ciência de Computadores da FCUP Fundamentos de Linguagens de Programação Aula 2 Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 1 / 12 Sistemas de transições (Γ, ) Um conjunto de configurações Γ, γ Γ Uma relação binária Γ Γ, chamada relação de transição; (γ, γ ) escreve-se γ γ. denota o fecho reflexivo e transitivo de Exemplos: associados a autómatos finitos ou gramáticas Uma configuração γ é final se não há nenhum γ tal que γ γ. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 2 / 12

2 Semântica operacional natural (big-step) Descreve a execução completa de cada comando. Configurações: c, s ou s, onde c é um comando e s um estado Γ = (Com State) State Configurações Finais: s State Transições: c, s s Regras: Hipóteses: c i, s i s i Conclusão: c, s s Se n = 0 diz-se um Axioma. c 1, s 1 s 1... c n, s n s n c, s s Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 3 / 12 Semântica operacional natural (big-step) Semântica operacional para comandos do While att sn x := a, s s[x A[[a]]s] skip sn skip, s s comp sn c 1, s s, c 2, s s c 1 ; c 2, s s if v sn if f sn while v sn c 1, s s if b then c 1 else c 2, s s se B[[b]]s = V c 2, s s if b then c 1 else c 2, s s se B[[b]]s = F c, s s, while b do c, s s while b do c, s s se B[[b]]s = V while f sn while b do c, s s se B[[b]]s = F Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 4 / 12

3 Exemplos Sendo s 0 = [x = 5, y = 7] determinar o estado após a execução de:. (z := x; x := y); y := z Para tal constrói-se uma árvore de derivação com esse comando como raiz: onde, z:=x,s 0 s 1 x:=y,s 1 s 2 z:=x;x:=y,s 0 s 2 y := z, s 2 s 3 (z := x; x := y); y := z, s 0 s 1 s 1 = s 0 [z 5] s 2 = s 1 [x 7] s 3 = s 2 [y 5] Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 5 / 12 Árvore de derivação Para derivar c, s s : Raiz: c, s s Nós internos: conclusões das regras instanciadas, que são premissas de alguma regra Folhas: são instâncias de axiomas Uma árvore de derivação é simples se é só a instância de um axioma; senão é composta. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 6 / 12

4 Exemplos a) Sendo s 0 = [x = 3], determinar o estado após a execução de: y := 1; while (x = 1) do (y := y x; x := x 1) b) Sendo s 0 = [x = 10, y = 5], determinar o estado após a execução de: z := 0; while y x do (z := z + 1; x := x y) Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 7 / 12 Terminação da execução A execução de um comando c num estado s: termina se e só se existe um estado s tal que c, s s entra em ciclo se e só se não existe tal estado Um comando termina sempre se termina para qualquer estado. O que acontece com os seguintes comandos: while (x = 1) do (y = y + y; x := x 1) while true do skip Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 8 / 12

5 Equivalência Semântica Dois comandos c e c dizem-se semanticamente equivalentes se para todos os estados s e s se tem: c, s s se e só se c, s s Mostra que while b do c é semanticamente equivalente a if b then (c ; while b do c) else skip Mostra que são equivalentes os comandos (c 1 ; c 2 ); c 3 e c 1 ; (c 2 ; c 3 ). Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 9 / 12 Determinismo Uma semântica é determinística se para todas os valores de c, s, s e s se tem: c, s s e c, s s então s = s Teorema A semântica operacional natural é determinística. A demonstração é por indução nas árvores de derivação: 1 Demonstra-se que a propriedade se verifica para árvores de derivação simples (instâncias de axiomas) 2 Demonstra-se que a a propriedade se verifica para árvores compostas: para cada regra assume que a propriedade se verifica para as premissas e demonstra que se verifica para a conclusão, desde que as condições da regra são satisfeitas. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 10 / 12

6 Função semântica S sn O significado dos comandos é dado pela função (parcial): Tal que: S sn : Com (State State) S sn [[c]]s = { s se c, s s caso contrário Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 11 / 12 Semântica operacional estrutural (small-step) att ss x := a, s s[x A[[a]]s] skip ss skip, s s comp 1 c 1, s c 1, s ss c 1 ; c 2, s c 1 ; c 2, s comp 2 ss c 1, s s c 1 ; c 2, s c 2, s if v ss if b then c 1 else c 2, s c 1, s se B[[b]]s = V if v ss if b then c 1 else c 2, s c 2, s se B[[b]]s = F while ss while b do c, s if b then(c; while b do c) else skip, s Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 12 / 12

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos:

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos: Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos: Integridade: Cada regra deve preservar validade. O que implica (por indução nas

Leia mais

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12 Fundamentos de Linguagens de Programação Nelma Moreira Departamento de Ciência de Computadores da FCUP Fundamentos de Linguagens de Programação Aula 12 Nelma Moreira (DCC-FC) Fundamentos de Linguagens

Leia mais

INF Semântica formal N

INF Semântica formal N INF05516 - Semântica formal N Ciência da Computação - UFRGS 2006-2 Marcus Ritt mrpritt@inf.ufrgs.br 23/08/2006 Introdução 2 Agenda............................................................... 3 Semântica

Leia mais

introdução de um novo valor semântico de erro; e A[E 2 ]s 0 erro erro se B [b]s = erro

introdução de um novo valor semântico de erro; e A[E 2 ]s 0 erro erro se B [b]s = erro Propriedades de segurança Na semântica que consideramos todas as expressões avaliam para um determinado valor e os comandos executam sem provocarem s. Vamos considerar algumas alterações que aproximem

Leia mais

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção.

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção. Verificação Automática de Programas Consideremos o seguinte programa para calcular 100 m=1 m: x:=0; y:=1; (while y!=101 do x:=x+y;y:=y+1) Como podemos provar que este programa termina com x = 100 m=1 m.

Leia mais

Programas em L1 pertencem ao conjunto de árvores de sintaxe abstrata definido pela gramática abstrata abaixo:

Programas em L1 pertencem ao conjunto de árvores de sintaxe abstrata definido pela gramática abstrata abaixo: 1 Semântica Operacional e Sistemas de Tipos Vamos definir a semântica operacional de uma série de linguagens no estilo conhecido por semântica operacional estrutural chamado também de semântica operacional

Leia mais

Prova. t ::= t t. t 1 t 4 t 2 t 3 (t 1 t 2 ) (t 3 t 4 ) (t 2 t 1 ) (t 4 t 3 )

Prova. t ::= t t. t 1 t 4 t 2 t 3 (t 1 t 2 ) (t 3 t 4 ) (t 2 t 1 ) (t 4 t 3 ) Sistema de Tipos - II/UFRGS 1 1. Marque verdadeiro ou falso: Prova ( ) A relação de avaliação small-step deve ser determinística (ou seja para qualquer termo deve existir somente uma maneira para ele progredir

Leia mais

Linguaguens recursivamente enumeráveis e recursivas

Linguaguens recursivamente enumeráveis e recursivas Linguaguens recursivamente enumeráveis e recursivas Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite por uma máquina de Turing. SD: classe de linguagens recursivamente

Leia mais

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 20

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 20 Fundamentos de Linguagens de Programação Nelma Moreira Departamento de Ciência de Computadores da FCUP Fundamentos de Linguagens de Programação Aula 20 Nelma Moreira (DCC-FC) Fundamentos de Linguagens

Leia mais

Gramáticas ( [HMU00], Cap. 5.1)

Gramáticas ( [HMU00], Cap. 5.1) Gramáticas ( [HMU00], Cap. 5.1) Vimos que a seguinte linguagem não é regular L = {0 n 1 n n 0} Contudo podemos fácilmente dar uma definição indutiva das suas palavras: 1. ɛ L 2. Se x L então 0x1 L L é

Leia mais

Lógica Proposicional

Lógica Proposicional Lógica Proposicional Lógica Computacional Carlos Bacelar Almeida Departmento de Informática Universidade do Minho 2007/2008 Carlos Bacelar Almeida, DIUM LÓGICA PROPOSICIONAL- LÓGICA COMPUTACIONAL 1/28

Leia mais

Fórmulas da lógica proposicional

Fórmulas da lógica proposicional Fórmulas da lógica proposicional As variáveis proposicionais p, q, são fórmulas (V P rop ) é fórmula (falso) α e β são fórmulas, então são fórmulas (α β), (α β), (α β) e ( α) DCC-FCUP -TAI -Sistemas Dedutivos

Leia mais

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) ) Exercicios 7.1 Escreve expressões regulares para cada uma das seguintes linguagens de Σ = {a, b}: (a) palavras com não mais do que três as (b) palavras com um número de as divisível por três (c) palavras

Leia mais

Linguaguens recursivamente enumeráveis

Linguaguens recursivamente enumeráveis Linguaguens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário,

Leia mais

Gramáticas Livres de Contexto Parte 1

Gramáticas Livres de Contexto Parte 1 Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável

Leia mais

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada. Autómatos de Pilha Um autómato de pilha (não determinístico) (AP) é um autómato finito não determinístico com transições ɛ, acrescido de uma memória infinita a pilha mas em que o modo de acesso à informação

Leia mais

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos Lista de Exercícios CT-200 Primeiro Bimestre 2010 Carlos Henrique Quartucci Forster Estagiário: Wesley Telles Revisão de Teoria de Conjuntos 1. Sejam A = {1,2 } e B = { x, y, z}. Quais os elementos dos

Leia mais

Máquinas de Turing - Computabilidade

Máquinas de Turing - Computabilidade BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma

Leia mais

Linguagens recursivamente enumeráveis

Linguagens recursivamente enumeráveis Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M

Leia mais

Semântica Operacional

Semântica Operacional Semântica Conceitos Semântica é o estudo do significado. Incide sobre a relação entre significantes, tais como palavras, frases, sinais e símbolos, e o que eles representam, a sua denotação. Semântica

Leia mais

Intuição da sintaxe de L2 (35)

Intuição da sintaxe de L2 (35) 2.2 A Linguagem L2 2.2 A Linguagem L2 A linguagem L2 é uma extensão de L1 com funções recursivas, memória (acesso e atualização de variáveis), sequência de comandos ( ; ) e laço de repetição while. Primeiro,

Leia mais

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2) SCC-505 - Capítulo 2 e (versão 2) João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.

Leia mais

Análise Sintática. Fabiano Baldo

Análise Sintática. Fabiano Baldo Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais

Leia mais

Matemática para Ciência de Computadores

Matemática para Ciência de Computadores Matemática para Ciência de Computadores 1 o Ano - LCC & ERSI Luís Antunes lfa@ncc.up.pt DCC-FCUP Complexidade 2002/03 1 Representação de Relações Definição: Uma relação binária de um conjunto A num conjunto

Leia mais

Verificação Formal de Software

Verificação Formal de Software Verificação Formal de Software Nelma Moreira & Sabine Broda Departamento de Ciência de Computadores da FCUP Verificação Formal de Software Aula 16 Nelma Moreira (DCC-FC) Verificação Formal de Software

Leia mais

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins Editor de Autômatos Finitos Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins 0 1 0 0 Roteiro da Apresentação Introdução Autômatos Finitos Desenvolvimento trabalho Considerações finais 2/31

Leia mais

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1 Árvores (ordenadas) Recordemos que, uma árvore é grafo (não dirigido) em que o número de vértices excede em 1 o número de arcos. Um vértice é acessível a todos os outros: a raiz. Os vértices que são acessíveis

Leia mais

Verificação Formal de Software Aula 18

Verificação Formal de Software Aula 18 Verificação Formal de Software Nelma Moreira Verificação Formal de Software Aula 18 Cálculo de Correção parcial H [skip p ] [ass p ] {φ} skip {φ} [comp p ] {φ[e/x]} x := E {φ} [if p ] {φ} C 1 {η} {η} C

Leia mais

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011 Compiladores Prof. Bruno Moreno Aula 8 02/05/2011 RECONHECIMENTO DE TOKENS Reconhecimento de Tokens Até aqui aprendemos a identificar tokens Para reconhecimento, a única abordagem utilizada foi árvores

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Hisham Muhammad h@hisham.hm PUC-Rio Sobre o professor Hisham H. Muhammad MSc. em Informática pela PUC-Rio Doutorando na área de Linguagens de Programação Grupo do LabLua,

Leia mais

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto. As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por indução

Leia mais

INF Semântica Formal - Prova II /1

INF Semântica Formal - Prova II /1 INF05516 - Semântica Formal - Prova II - 2009/1 Nome: Número: Instruções: Todas as questões são relativas a linguagem L3 sem subtipos, exceto quando explicitamente mencionado. A duração da prova é de 100

Leia mais

Compiladores Aula 4. Celso Olivete Júnior.

Compiladores Aula 4. Celso Olivete Júnior. Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro

Leia mais

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 8 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 7/4/8 Valor: pontos. Uma versão do problema

Leia mais

Comandos de desvio de fluxo. Expressões lógicas.

Comandos de desvio de fluxo. Expressões lógicas. Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação www.decom.ufop.br/bcc701 Semana 03: Comandos de desvio de fluxo. Expressões lógicas. Aula #7 22/03/2012

Leia mais

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada. Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos 2018.2 Modelo de Computação Determinação de como os cálculos são realizados pelo computador e que funcionalidades ele possui. Máquina de Turing É um modelo de computação

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Gramáticas e Linguagens independentes de contexto

Gramáticas e Linguagens independentes de contexto Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 2 Etapas para o desenvolvimento dum programa 1. Perceber o problema 2. Encontrar um procedimento algorítmico para o resolver. Estratégias:

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

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas 2018.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

Elementos básicos das linguagens de programação

Elementos básicos das linguagens de programação Elementos básicos das linguagens de programação Objetivos: Apresentar os últimos elementos básicos das linguagens de programação Elementos básicos já estudados Entrada (read, readln) Saída (write, writeln)

Leia mais

Análise Sintática Bottom-up

Aná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 mais

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)

Leia mais

Aula de 28/10/2013. sticas; Implementação. em Ruby

Aula de 28/10/2013. sticas; Implementação. em Ruby Linguagens Formais e Autômatos (LFA) Aula de 28/10/2013 Propriedades Formais Relevantes das LLC s; Lema do Bombeamento; Linguagens LL e LR; Gramáticas LC Determinísticas sticas; Implementação em Ruby 1

Leia mais

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha Linguagem Livre de Contexto Autômato de Pilha Programas SCC-5832 - Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação

Leia mais

SCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha

SCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha SCC-5832 - Capítulo 2 e João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos joaoluis@icmc.usp.br 2009 Sumário 1 Lema do Bombeamento para Linguagens

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Linguagens Livres do Contexto (1/2) Seu estudo é de fundamental importância na informática: Compreende um universo

Leia mais

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Matemática para Ciência de Computadores

Matemática para Ciência de Computadores Matemática para Ciência de Computadores 1 o Ano - LCC & ERSI Luís Antunes lfa@ncc.up.pt DCC-FCUP Complexidade 2002/03 1 Inteiros e divisão Definição: Se a e b são inteiros com a 0, dizemos que a divide

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

Introdução Definição Conceitos Básicos de Linguagem

Introdução Definição Conceitos Básicos de Linguagem Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para

Leia mais

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 7 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 9/9/7 Valor: pontos. Uma versão do problema

Leia mais

Matemática para Ciência de Computadores

Matemática para Ciência de Computadores Matemática para Ciência de Computadores 1 o Ano - LCC & ERSI Luís Antunes lfa@ncc.up.pt DCC-FCUP Complexidade 2002/03 1 Relações Definição: Uma relação binária de um conjunto A num conjunto B é um subconjunto

Leia mais

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri Unidade VI Técnicas de Teste de Software Profa. Dra. Sandra Fabbri Os requisitos de teste são extraídos de uma implementação em particular Teste dos detalhes procedimentais A maioria dos critérios dessa

Leia mais

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João

Leia mais

Modelos de Computação Folha de trabalho n. 10

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Gramáticas e Linguagens Independentes de Contexto

Gramáticas e Linguagens Independentes de Contexto Gramáticas e Linguagens Independentes de Contexto 6.1 Responde às uestões seguintes considerando a gramática independente de contexto G = (V, {a, b}, P, R), onde o conjunto de regras P é: R XRX S S at

Leia mais

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências

Leia mais

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal: a n b n 1 Exemplo preliminar Considere a linguagem dos Palíndromos Lpal: radar, Roma é amor, 0110, 11011,... ou seja, quando w = w r Lpal é regular? usando o Lema do Bombeamento: Suponha Lpal regular,

Leia mais

Sumário Algumas Demonstrações CONCLUSÃO RESUMO ATIVIDADES... 34

Sumário Algumas Demonstrações CONCLUSÃO RESUMO ATIVIDADES... 34 Sumário Aula 11: Relações Binárias 9 11.1 Introdução... 10 11.2 Relações Binárias... 10 11.2.1 Propriedades das Relações Binárias... 13 11.3 Algumas Demonstrações... 16 11.4 CONCLUSÃO... 18 11.5 RESUMO....

Leia mais

Autómatos de pilha e Gramáticas independentes de contexto

Autómatos de pilha e Gramáticas independentes de contexto Autómatos de pilha e Gramáticas independentes de contexto Proposição 15.1. A classe de linguagens aceites por autómatos de pilha está contida a classe das linguagens independentes de contexto. Dem. Seja

Leia mais

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo Gramática regular IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 41 Frase do dia Através de três métodos

Leia mais

Teoria da Computação Aula 02 Introdução

Teoria da Computação Aula 02 Introdução Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:

Leia mais

Linguagens e Programação Gramáticas. Paulo Proença

Linguagens e Programação Gramáticas. Paulo Proença Linguagens e Programação Gramáticas Gramáticas Ferramenta para a descrição e análise de linguagens; Baseada num conjunto de regras que especificam o modo de construção das frases válidas na linguagem;

Leia mais

17 AULA. Números Naturais: Axiomas de Peano LIVRO. META: Introduzir o conceito de números naturais através dos axiomas de Peano.

17 AULA. Números Naturais: Axiomas de Peano LIVRO. META: Introduzir o conceito de números naturais através dos axiomas de Peano. 2 LIVRO Números Naturais: Axiomas de Peano 17 AULA META: Introduzir o conceito de números naturais através dos axiomas de Peano. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de Definir o conjunto

Leia mais

Introducao a Programacao Estruturas de decisão

Introducao a Programacao Estruturas de decisão Introducao a Programacao Estruturas de decisão p ericlesmiranda@gmail.com Slides fornecidos pelo professor Gurvan Huiban Plano de aula 1 Estrutura if-then 2 Estrutura if-then-else 3 O operador condicional

Leia mais

Matemática para Ciência de Computadores

Matemática para Ciência de Computadores Matemática para Ciência de Computadores 1 o Ano - LCC & ERSI Luís Antunes lfa@ncc.up.pt DCC-FCUP Complexidade 2002/03 1 Fecho transitivo Teorema: o fecho transitivo de uma relação R é igual a relação de

Leia mais

LLC's: Lema do Bombeamento e Propriedades de Fechamento

LLC's: Lema do Bombeamento e Propriedades de Fechamento Linguagens Formais e Autômatos LLC's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Sumário

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação de Linguagens de Programação Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 11 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:

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

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

Gramática. Gramática. Gramática

Gramática. Gramática. Gramática Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

Apostila 03 - Linguagens Livres de Contexto Exercícios

Apostila 03 - Linguagens Livres de Contexto Exercícios Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Autómatos determísticos de k-pilhas

Autómatos determísticos de k-pilhas Autómatos determísticos de k-pilhas dados de entrada a a a3 an controlo finito (S, Σ, Γ, δ, Z, s 0, F ) δ (S Σ Γ k ) (S, (Γ ) k ) Departamento de Ciência de Computadores da FCUP MC Aula 3 Dados um estado

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

IV Gramáticas Livres de Contexto

IV Gramáticas Livres de Contexto IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S

Leia mais

Autómatos de Pilha e Linguagens Livres de Contexto

Autómatos de Pilha e Linguagens Livres de Contexto Folha Prática Autómatos de Pilha e Linguagens Livres de Contexto 1 Autómatos de Pilha e Linguagens Livres de Contexto Autómatos de Pilha Não Determinísticos (APND) 1. Considere a seguinte tabela de transição

Leia mais

Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática

Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática Ambiguidade Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática De maneira equivalente, se existe mais de uma derivação mais à esquerda para uma cadeia Ou se

Leia mais

Lógica Computacional

Lógica Computacional Aula Teórica 13: Dedução Natural em Lógica Proposicional António Ravara Simão Melo de Sousa Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa Departamento de

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

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38 Compiladores Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Fevereiro, 2017 1 / 38 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Semântica Denotacional

Semântica Denotacional Semântica Denotacional Uma introdução ISBN 0-321-19362-8 Semântica denotacional é um método formal para definir a semântica de linguagens de programação. Interessa a: projetista de linguagens, quem escreve

Leia mais

19 AULA. Princípio da Boa Ordem LIVRO. META Introduzir o princípio da boa ordem nos números naturais e algumas de suas conseqüências.

19 AULA. Princípio da Boa Ordem LIVRO. META Introduzir o princípio da boa ordem nos números naturais e algumas de suas conseqüências. LIVRO Princípio da Boa Ordem META Introduzir o princípio da boa ordem nos números naturais e algumas de suas conseqüências. OBJETIVOS Ao fim da aula os alunos deverão ser capazes de: Aplicar o princípio

Leia mais

3 Cálculo de Hoare. 3.1 Semântica Axiomática de Linguagens de Programação

3 Cálculo de Hoare. 3.1 Semântica Axiomática de Linguagens de Programação Cálculo de Hoare 31 3 Cálculo de Hoare 3.1 Semântica Axiomática de Linguagens de Programação As técnicas para as semânticas operacional e denotacional de linguagens de programação são fundamentadas na

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos (notas da primeira aula 1 Definições básicas 1.1 Conjuntos Definição 1. Um conjunto é uma coleção de objetos, denominados elementos. Notação 1. Para indicar que um elemento

Leia mais

Este número é racional ou irracional. Se 2. é racional então basta tomar b = c = 2. Vem b c = 2. é irracional, então seja b = = 2, que é racional

Este número é racional ou irracional. Se 2. é racional então basta tomar b = c = 2. Vem b c = 2. é irracional, então seja b = = 2, que é racional Métodos de demonstração A semântica da lógica clássica é baseada na noção de verdade. E em particular cada proposição é absolutamente verdadeira ou falsa. Isso traduzse pelo princípio do terceiro excluído:

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

Primeira Prova de Linguagens de Programação - DCC024W - Sistemas de Informação

Primeira Prova de Linguagens de Programação - DCC024W - Sistemas de Informação Primeira Prova de Linguagens de Programação - DCC024W - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem

Leia mais

5 Implementação do Corretor de Programas

5 Implementação do Corretor de Programas Implementação do Corretor de Programas 67 5 Implementação do Corretor de Programas 5.1 Introdução Para validar as idéias expostas anteriormente, faz-se necessário implementar um corretor de programas com

Leia mais

Autómatos de pilha e GIC

Autómatos de pilha e GIC Autómatos de pilha e GIC Proposição 17.1. A classe de linguagens aceites por autómatos de pilha está contida na classe das linguagens independentes de contexto. Dem. Seja L uma linguagem independente de

Leia mais

Construção de Compiladores

Construção de Compiladores Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de

Leia mais