Slide 1

Slide 1 text

jgs jgs Compilers Lecture 30: Review Dr. Javier Gonzalez-Sanchez [email protected]

Slide 2

Slide 2 text

Dr. Javier Gonzalez-Sanchez | Compilers | 2 jgs jgs GitHub Classroom ▪ Final Project https://classroom.github.com/a/XJmZgSI2 ▪ TheCompiler ▪ Your final project ▪ Include Lexer ▪ Include Parser with error handling ▪ Include Semantic Analysis ▪ Include Code Generation ▪ Bonus: your generated code work with the provided VM

Slide 3

Slide 3 text

Dr. Javier Gonzalez-Sanchez | Compilers | 3 jgs jgs To Do List ▪ Source Code on your GitHub Repository (submit a link) ▪ Final Paper (document) ▪ Video Presentation (submit a link) ▪ Final Exam (yes!, we will have a review)

Slide 4

Slide 4 text

Dr. Javier Gonzalez-Sanchez | Compilers | 4 jgs jgs Extra ▪ How to do a Virtual Machine ▪ Second Part of code Generation (loops, conditions, methods)

Slide 5

Slide 5 text

jgs jgs Review

Slide 6

Slide 6 text

Dr. Javier Gonzalez-Sanchez | Compilers | 6 jgs jgs High-Level Languages X,E,G,O,O #e1,I,I,0,7 @ OPR 19, AX STO x, AX LIT 5, AX OPR 21, AX LOD #e1,AX CAL 1, AX OPR 0, AX 5 Virtual Machine (interpreter) // source code Lexer Parser Semantic Analyzer Code Generation 01001010101000010 01010100101010010 10100100000011011 11010010110101111 00010010101010010 10101001010101011 Assembler compilation execution

Slide 7

Slide 7 text

Dr. Javier Gonzalez-Sanchez | Compilers | 7 jgs jgs Question

Slide 8

Slide 8 text

Dr. Javier Gonzalez-Sanchez | Compilers | 8 jgs jgs Question

Slide 9

Slide 9 text

Dr. Javier Gonzalez-Sanchez | Compilers | 9 jgs jgs Question

Slide 10

Slide 10 text

Dr. Javier Gonzalez-Sanchez | Compilers | 10 jgs jgs Question

Slide 11

Slide 11 text

Dr. Javier Gonzalez-Sanchez | Compilers | 11 jgs jgs Question

Slide 12

Slide 12 text

jgs jgs Test Yourselves

Slide 13

Slide 13 text

Dr. Javier Gonzalez-Sanchez | Compilers | 13 jgs jgs Example ▪ https://tabatkins.github.io/railroad-diagrams/generator.html

Slide 14

Slide 14 text

Dr. Javier Gonzalez-Sanchez | Compilers | 14 jgs jgs Example ▪ https://www.graphviz.org/pdf/neatoguide.pdf

Slide 15

Slide 15 text

Dr. Javier Gonzalez-Sanchez | Compilers | 15 jgs jgs LISP (defun factorial (n) (if (<= n 0) 1 (* n (factorial (- n 1))) ) ) FACTORIAL (factorial 1000) result? … double factorial (double n) { if (n<=1) return 1; else return n * factorial (n-1); } result?

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

jgs 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.