Slide 1

Slide 1 text

jgs Compilers Lecture 11: Connecting the Dots Dr. Javier Gonzalez-Sanchez [email protected]

Slide 2

Slide 2 text

jgs Previously …

Slide 3

Slide 3 text

Dr. Javier Gonzalez-Sanchez | Compilers | 3 jgs Do not Forget ▪ Terminals: Represented in lowercase, enclosed in single or double quotes, or depicted as ovals in diagrams. ▪ Non-Terminals: Represented with an uppercase initial letter, enclosed in angle brackets (< >), or depicted as rectangles in diagrams.

Slide 4

Slide 4 text

Dr. Javier Gonzalez-Sanchez | Compilers | 4 jgs Grammar PROGRAM BODY ASSIGNMENT

Slide 5

Slide 5 text

Dr. Javier Gonzalez-Sanchez | Compilers | 5 jgs Grammar VARIABLE WHILE

Slide 6

Slide 6 text

Dr. Javier Gonzalez-Sanchez | Compilers | 6 jgs Grammar IF RETURN PRINT

Slide 7

Slide 7 text

jgs Case Study: English Grammar

Slide 8

Slide 8 text

Dr. Javier Gonzalez-Sanchez | Compilers | 8 jgs Case Study | English Grammar ▪ I work. ▪ She eats. ▪ They study. ▪ He does not like coffee. ▪ We don't go to school on Sundays. ▪ ::= ? | ▪ ::= "not" ? ▪ ::= "I" | "you" | "he" | "she" | "it" | "we" | "they" ▪ ::= "work" | "eat" | "like" | "study" | "go" | ... ▪ ::= "coffee" | "school" | "homework" | ... ▪ ::= "do" | "does"

Slide 9

Slide 9 text

Dr. Javier Gonzalez-Sanchez | Compilers | 9 jgs Let’s Work

Slide 10

Slide 10 text

Dr. Javier Gonzalez-Sanchez | Compilers | 10 jgs Case Study | English Grammar ▪ Do you work? ▪ Does she like coffee? ▪ Where do they study? ▪ What does he eat? ▪ ::= | ▪ ::= "?" ▪ ::= "?" ▪ ::= "what" | "where" | "when" | "why" | "who" | "how" ▪ ::= "do" | "does"

Slide 11

Slide 11 text

Dr. Javier Gonzalez-Sanchez | Compilers | 11 jgs Let’s Work

Slide 12

Slide 12 text

Dr. Javier Gonzalez-Sanchez | Compilers | 12 jgs Test Yourselves ▪ Create syntax diagrams for the BNF/EBNF rules on slides 8 and 10. ▪ Create derivation trees for the inputs shown at the top of slides 8 and 10.

Slide 13

Slide 13 text

jgs Case Study: A Grammar for JSON

Slide 14

Slide 14 text

Dr. Javier Gonzalez-Sanchez | Compilers | 14 jgs Case Study | A Grammar for JSON { "name": "Alice", "age": 30, "address": { "city": "New York", "zip": "10001" }, "phones": ["+1-800-555-1234", "+1-800-555-5678"] }

Slide 15

Slide 15 text

Dr. Javier Gonzalez-Sanchez | Compilers | 15 jgs Case Study | A Grammar for JSON Object Pair Array Value

Slide 16

Slide 16 text

Dr. Javier Gonzalez-Sanchez | Compilers | 16 jgs Case Study | A Grammar for JSON ▪ Object ::= "{" Pair ("," Pair )* "}" ▪ Pair ::= String ":" Value ▪ Value ::= String | Number | "true" | "false" | "null" | Object | Array ▪ Array ::= "[" Value ("," Value )* "]" ▪ String ::= "string" ▪ Number ::= "integer"

Slide 17

Slide 17 text

Dr. Javier Gonzalez-Sanchez | Compilers | 17 jgs Case Study | A Grammar for JSON {"name":false}

Slide 18

Slide 18 text

Dr. Javier Gonzalez-Sanchez | Compilers | 18 jgs Case Study | A Grammar for JSON {"name":false, "age" :100 }

Slide 19

Slide 19 text

Dr. Javier Gonzalez-Sanchez | Compilers | 19 jgs Case Study | A Grammar for JSON {"name":false, "age" :100, "grades”:[1,2,3] }

Slide 20

Slide 20 text

Dr. Javier Gonzalez-Sanchez | Compilers | 20 jgs Case Study | A Grammar for JSON {"name":false, "age" :100, "grades":{ "labs":[1,2,3] } }

Slide 21

Slide 21 text

Dr. Javier Gonzalez-Sanchez | Compilers | 21 jgs Test Yourselves ▪ Create derivation trees for the inputs shown on slides 17 to 20, even though we have already completed some of them. Try to build them from scratch on your own.

Slide 22

Slide 22 text

Dr. Javier Gonzalez-Sanchez | Compilers | 22 jgs Homework Syntax Diagrams for Java: - Class - Attributes - Methods - Parameters - Instruction (stop here) Do not forget static, final, public, private, data-types, abstract, extends, implements …

Slide 23

Slide 23 text

Dr. Javier Gonzalez-Sanchez | Compilers | 23 jgs Questions

Slide 24

Slide 24 text

Dr. Javier Gonzalez-Sanchez | Compilers | 24 jgs Homework Review Recursion

Slide 25

Slide 25 text

jgs Compilers Javier Gonzalez-Sanchez, Ph.D. [email protected] Spring 2025 Copyright. These slides can only be used as study material for the Compilers course at Universidad Panamericana. They cannot be distributed or used for another purpose.