A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

REPRESENTAÇÕES DE LINGUAGENS Adorilson Bezerra Santa Cruz - RN UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE CAMPUS AVANÇADO DO NATAL DEPARTAMENTO DE CIÊNCIA.

Apresentações semelhantes


Apresentação em tema: "REPRESENTAÇÕES DE LINGUAGENS Adorilson Bezerra Santa Cruz - RN UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE CAMPUS AVANÇADO DO NATAL DEPARTAMENTO DE CIÊNCIA."— Transcrição da apresentação:

1 REPRESENTAÇÕES DE LINGUAGENS Adorilson Bezerra Santa Cruz - RN UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE CAMPUS AVANÇADO DO NATAL DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO COMPILADORES

2 2 Representações de linguagens Toda linguagem possui: –Alfabeto → conjunto de elementos básicos Português: {a,b,c,..., z, A, B, C,..., Z} Exemplos de sentenças: –Santa –Cruz –zurcatnas –Gramática → definição formal da linguagem Define o conjunto de combinações de elementos do alfabeto que são válidas, ou seja, que possuem sentido.

3 3 Notação de conjuntos Conjuntos... –são usualmente representados por sequências de elementos entre chaves {1, 2, 3} –podem ter nome N = {1, 2, 3, 4, 5,...} –podem ser vazios {} ou ø

4 4 Notação de conjuntos Relações –Pertinência de elemento → ∈ e ∉ A = {1, 2, 3} 1 ∈ A 6 ∉ A –Subconjunto → ⊆ e ⊂ {1, 2, 3} ⊆ {1, 2, 3} {1, 2} ⊂ {1, 2, 3}

5 5 Notação de conjuntos Predicados –A = {x | x ∈ N ∧ x <4 } –São elementos de A todos os valores (x) tal que x pertença ao números naturais e ( ∧ ) que sejam menores que 4

6 6 Notação de conjuntos Operações –União → ∪ B ∪ C = {x | x ∈ B ∨ x ∈ C} {1, 2} ∪ {2, 3} = {1, 2, 3} –Interseção → ∩ B ∩ C = {x | x ∈ B ∧ x ∈ C} {1, 2} ∩ {2, 3} = {2} –Diferença → – B – C = {x | x ∈ B ∧ x ∉ C} {1, 2} – {2, 3} = {1} {2, 3} – {1, 2} = {3}

7 7 Linguagens Alfabeto → conjunto de símbolos básicos –Português = {a,b,c,..., z, A, B, C,..., Z} –B = {0, 1} String → combinação de símbolos do alfabeto –santa, cruz, zurcantas,... –0, 1, 0011, 0101, 0010,... String vazia → ε

8 8 Linguagens Clausura de A (ou estrela de Kleene) –A* → conjunto de todas as strings de A, incluindo ε –B* = {ε, 0, 1, 00, 01, 10, 11, 000, 010, 011,...} A+ –A+ → conjunto de todas as strings de A, sem incluir ε –A+ = A* - ε –B* = {0, 1, 00, 01, 10, 11, 000, 010, 011,...}

9 9 Linguagens Notação de conjuntos para linguagens simples –L = {0 n 1 n | ≥ 0} –Pertencem a L 0011, 000111,... –Não pertencem a L 10, 00011, 011,...

10 10 Gramáticas Produções –Regras para transformar uma sequência de símbolos em outras Z → 0Z1 Símbolos não-terminais –São intermediários e não fazem parte das strings da linguagem A, B, C Símbolos terminais –Fazem parte das strings da linguagem a, b, c

11 11 Gramáticas Produções para a linguagem L = {0 n 1 n | n ≥ 0} –Z → ε –Z → 01 –Z → 0011Z → 0Z1 –...

12 12 Gramáticas Gramáticas são expressas por quatro elementos: –V T → conjunto de símbolos terminais –V N → conjunto de símbolos não-terminais –P → produções –S → ponto de partida (S ∈ V N ) G = (V T, V N, P, S)

13 13 Gramáticas Definir gramática para a linguagem L = {0 n 1 n | ≥ 0} –V T = {0, 1} –V N = {Z} –P = {Z → 0Z1, Z → ε } –Z = ponto de partida G1 = ({0, 1}, {Z}, {Z → 0Z1, Z → ε }, Z)

14 14 Gramáticas Derivações –Substituição de símbolos que combinam com o lado esquerdo de uma produção pelo lado direito correspondente –Em G1, há duas derivações válidas Z ⇒ ε Z ⇒ 0Z1 –Qual a diferença dessas derivações para as produções?

15 15 Gramáticas Derivações –Forma sentencial → sequência com símbolos não-terminais. 0Z1 –Sentença → sequência que contém apenas símbolos terminais. 01 –Derivações sucessivas Z ⇒ 0Z1 ⇒ 00Z11 ⇒ 0011

16 16 Gramáticas Derivações –Generalizando, uma forma sequencial δ de uma gramática G é dita derivável de outra forma sequencial γ quando δ pode ser obtida de γ a partir da aplicação de uma ou mais produções de G. O sinal + é colocado sobre o sinal de derivação para indicar a eventual omissão de passos na sequencia de derivações, como em

17 17 Classificação de gramáticas Gramáticas recursivamente enumeráveis (tipo 0) –sem restrição alguma –Z → 01 –0Z1 → a –Z1 → 0Z –aZ → 1 –Z1 → a

18 18 Classificação de gramáticas Gramática sensíveis ao contexto (tipo 1) –a produção não pode diminuir o tamanho da sequência –Z → 01 –0Z1 → 0a1 –Z1 → 0Za –aZ → 1a –Z1 → a<- diminui o tamanho da sequência

19 19 Classificação de gramáticas Gramáticas livres de contexto (tipo 2) –lado esquerdo com apenas um símbolo –Z → 01 –Z → 0a1 –Z → 0Z –Z → 1a –Z1 → 1a<- dois símbolos do lado esquerdo

20 20 Classificação de gramáticas Gramáticas regulares (tipo 3) –lado esquerdo com apenas um símbolo e sem auto- incorporação –Z → 01 –Z → 0a1 –Z → 0Z –Z → 1a –Z → aZ1 <- auto-incorporação

21 21 Classificação de gramáticas Autor: Ricardo Ferreira de Oliveira

22 22 Exercício Defina uma gramática para reconhecimento de identificadores em C/C++.

23 23 Classificação de gramáticas Gramáticas regulares são utilizadas para a especificação e reconhecimentos de símbolos isolados Gramáticas livres de contexto são utilizadas para identificar a estrutura geral de comandos da linguagem A classificação de gramáticas foi proposta por Noam Chomsky, em meados de 1950.

24 24 Notações alternativas Expressões regulares –Um método formal de se especificar padrão de texto –São criadas a partir da aplicação de operadores aos símbolos do alfabeto –Operadores: Concatenação: um símbolo após o outro → ab Alternativa: | → a|b Repetição: * → a* –Parênteses: servem para agrupar símbolos –Exemplos: aa* a(a|b)*b ba|a*b

25 25 Exercício Defina uma expressão regular para o reconhecimento de identificadores em C/C++.

26 26 Notações alternativas BNF – Backus-Naur Form –Notação textual, formal para representar uma gramática livre de contexto –John Backus criou (Algol 60), Peter Naus simplificou –Operadores ::= | [ ] * –Exemplos: ::= | ::= [ ] ::= *

27 27 Notações alternativas Diagramas sintáticos –Representação gráfica para os símbolos das gramáticas livres de contexto –Símbolos não-terminais são retângulos –Símbolos terminais são elipses –Exemplos: ::= + | ( expr ) expr () +

28 28 Notações alternativas Diagramas sintáticos –Exemplos: ::= [ ] xy* NA x y


Carregar ppt "REPRESENTAÇÕES DE LINGUAGENS Adorilson Bezerra Santa Cruz - RN UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE CAMPUS AVANÇADO DO NATAL DEPARTAMENTO DE CIÊNCIA."

Apresentações semelhantes


Anúncios Google