Professional Documents
Culture Documents
Objetivos
Roteiro
Contexto Conceitos
Alfabeto Palavra Conjunto de todas as palavras e Linguagens Gramtica
Contexto
Retomando a aula passada de planejamento da disciplina
Objetivos
Construir um compilador para uma linguagem Compreender o processo de compilao de uma linguagem para melhorar a desenvoltura perante ambientes e linguagens
Linguagem
Uma definio geral, baseada no dicionrio Aurlio, fala o seguinte sobre linguagem
Uma linguagem o uso da palavra articulada ou escrita como meio de expresso e comunicao entre pessoas
Raciocnio de partida
Para uma linguagem de programao (no to aberta como uma comunicao entre pessoas) ser empregado um formalismo que permite uma melhor fundamentao para o tema
Alfabeto
Alfabeto
um conjunto finito de smbolos
Exemplo
Consunto A = { a, b, c } As letras, dgitos, caracteres especiais e espao em branco, todos estes smbolos usados no Pascal
Perceba que o conjunto deve ser finito. O conjunto dos nmeros naturais por exemplo no poderia ser considerado um alfabeto O alfabeto costuma ser representado por
Palavra
Tambm tratada como cadeia de caracteres ou sentena
Uma palavra, cadeia de caracteres ou sentena, definida sobre um alfabeto, um conjunto de smbolos justapostos
Exemplo
Para o alfabeto : { a, b} , abab uma palavra...
Palavra
Prefixo, sufixo e subpalavra
Qualquer sequencia contgua, no incio, no fim ou em qualquer parte da palavra, respectivamente
Linguagem Formal
Uma linguagem formal L um subconjunto de palavras sobre o alfabeto .
L est contido em * Exemplo
O conjunto dos palndromos (palavras que so as mesmas se lidas normalmente ou de traz para frente) definida sobre = { a, b} uma linguagem L = { , a , b, aa, bb, aba, bab, ... }
Gramtica
Conforme comentamos em raciocnio anterior, o conjunto de todas as palavras torna o leque de possibilidades muito amplo e talvez sem sentido. Isso no muito adequado. Para definir de forma finita linguagens infinitas usa-se um formalismo que a gramtica. Gramtica
Conjunto de regras que quando aplicadas gera palavras vlidas ou permite reconhecer palavras vlidas
Definio de Gramtica
Uma gramtica pode ser definida pela tupla
(V, T, P, S)
Onde
V : Conjunto finito de smbolos T : conjunto finito de smbolos terminais P : (V U T ) -> (V U T)
Conjunto de relaes de smbolos para smbolos, que permite substituir um smbolo por outro
Definio de Gramtica
Exemplo:
Uma gramtica para definir os nmeros naturais
V = { N,D } T = { 0,1,2,3, ..., 9 } P = { N -> D; N -> DN ; D -> 0 | 1 | ... | 9 } S=N Lendo informalmente,
Base: Todo dgito nmero natural Recurso: Se N natural, a concatenao de dgito e natural tambm Natural
Definio de Gramtica
Derivao
possvel reconhecer o nmero 243 como um nmero natural com base na gramtica definida. Smbolo de partida ( N ) Relao usada
N DN 2N 2DN 24N 24D 243 N -> DN D -> 2 N -> DN D -> 4 N -> D D -> 3
Com a sequencia de derivao com relaes expressas na gramtica, conseguiu-se encontrar o nmero 243
Autmatos
Um formalismo que permite expressar linguagens ou suas partes
No caso de autmatos, considerado um formalismo operacional, dado os conceitos de mquina e outros elementos que explicam este mecanismo
Autmatos
Autmatos
um Sistema de Estados Finitos
Representa um modelo computacional do tipo sequencial muito comum em diversos estudos de computao, no nosso caso aplicado a linguagens e compiladores
Considerado um formalismo operacional reconhecedor
Autmatos
Como um formalismo operacional reconhecedor, um autmato pode ser visto como uma mquina constituda de 3 partes
a) Fita : dispositivo com a informao a processar b) Unidade de Controle, que trata
Estado corrente da mquina Leitor/Cabeote Movimenta-se para a direita
Autmatos
A definio de um autmato finito segue o seguinte formalismo
M = ( , Q, , q0, F ) onde:
Q q0 F : Alfabeto : Conjunto de estados : Programa, que trata as transies : Estado inicial : Estados finais
Autmatos
Exemplo Imagine um autmato para reconhecer palavras que possuam as subpalavras aa e bb
M = ( , Q, , q0, F ) M=( { a, b} , { q0, q1, q2, qf } , 1, q0, { qf } )
1 q0 q1 q2 qf a q1 qf q1 qf b q2 q2 qf qf
Expresses Regulares
um formalismo denatocional para descrever uma linguagem regular
Operaes bsicas:
Unio Concatenao Concatenao de mesmo smbolo ( r + s) rs r*
Exemplos
aa ba* (a + b)* (a + b)*aa(a + b)* a*ba*ba* (a + b)*(aa + bb) Somente a palavra aa Palavras iniciadas com b e seguidas de a Qualquer palavra com a ou b Palavras que tenham uma subpalavra aa Palavras que tenham dois bs Palavras que terminam com aa ou bb
Exerccios
Reviso
Tpicos abordados
Definies iniciais de linguagem Alfabeto Palavra Conjunto de Todas as Palavras Linguagem formal Gramtica Autmatos Finitos Expresses Regulares