![Page 1: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/1.jpg)
Compiladores
BNF e Grafo Sintático
Baseado no livro do Prof. Delamaro – Como Construir um Compilador
![Page 2: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/2.jpg)
Linguagem Livre de Contexto
• Em geral, uma linguagem de programação pertence a uma classe de linguagens chamadas de linguagens livres de contexto.
• Uma das maneiras de se definirem tais linguagens é por meio das gramáticas livres de contexto.
![Page 3: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/3.jpg)
Gramática
![Page 4: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/4.jpg)
Gramática Livre de Contexto
• GLC é É uma quádrupla G = (Ω,Σ,P,S), na qual:
– Σ – é o alfabeto sobre a linguagem definida;
– Ω – é um conjunto não vazio de símbolos não terminais;
– P – é um conjunto de produções da forma A → α, onde A ε Ω e α ε (Σ U Ω)*;
– S – é o símbolo inicial da gramática, S ε Ω
![Page 5: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/5.jpg)
Exemplo de GLC
![Page 6: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/6.jpg)
Exemplo de GLC
![Page 7: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/7.jpg)
Forma de Backus-Naur (BNF)
• A Forma de Backus-Naur (BNF) é uma outra maneira de se definir linguagens livres de contexto.
• Ela é semelhante a uma gramática livre de contexto, mas permite que o lado direito das produções possua alguns operadores.
– seleção
– opcional
– repetição 0 ou mais vezes
– repetição 1 ou mais vezes
![Page 8: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/8.jpg)
BNF - Seleção
![Page 9: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/9.jpg)
BNF – Seleção - Exemplo
![Page 10: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/10.jpg)
BNF – Opcional
![Page 11: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/11.jpg)
BNF – Opcional - Exemplo
![Page 12: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/12.jpg)
BNF – Opcional - Exemplo
![Page 13: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/13.jpg)
Repetição – 0 ou mais vezes
![Page 14: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/14.jpg)
Repetição – 0 ou mais vezes - Exemplo
![Page 15: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/15.jpg)
Repetição – 1 ou mais vezes
![Page 16: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/16.jpg)
Repetição – 1 ou mais vezes - Exemplo
![Page 17: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/17.jpg)
BNF novamente
![Page 18: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/18.jpg)
Grafo Sintático
![Page 19: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/19.jpg)
Grafo Sintático
![Page 20: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/20.jpg)
Grafo Sintático
![Page 21: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/21.jpg)
Grafo Sintático
![Page 22: Compiladores - UNIMEP - Universidade Metodista de ...unimep.br/~anbelgamo/compiladores/BNF_Grafo.pdfForma de Backus-Naur (BNF) •A Forma de Backus-Naur (BNF) é uma outra maneira](https://reader033.vdocuments.net/reader033/viewer/2022042806/5f6c2e516cd4ec2dfb2d94fd/html5/thumbnails/22.jpg)
Exercício
• Escrever na forma de grafo sintático