Classes
April
- Lecture 2025-04-29
- TFA
- Videos
- TFA
- Language Server Protocol (LSP)
- Building a VSCode extension (VSIX)
- npm package @crguezl/eloquentjsegg
- Langium Egg
- Egg grammar
- A Recursive descent parser for Egg
- LL(1) parsers. FIRST and FOLLOW sets
- Abstract Syntax Trees for Egg
- A full implementation of a recursive descent parser for Egg (private)
- PL 20/21 First Egg Lab: Egg. A Programming Language
- Eloquent JS. Chapter 12. Project: A Programming Language
- Lecture 2025-04-28
- TFA
- Videos
- Magne Haveraaen talk: Language Standardization. Slides and photo
- TFA
- Language Server Protocol (LSP)
- Building a VSCode extension (VSIX)
- npm package @crguezl/eloquentjsegg
- Langium Egg
- Egg grammar
- A Recursive descent parser for Egg
- LL(1) parsers. FIRST and FOLLOW sets
- Abstract Syntax Trees for Egg
- A full implementation of a recursive descent parser for Egg (private)
- PL 20/21 First Egg Lab: Egg. A Programming Language
- Eloquent JS. Chapter 12. Project: A Programming Language
- Lecture 2025-04-23
- Recursive Descent Parsers. Extending Arrays and objects with a default clause. Functions on the left side of an assignment.
- Videos
- Egg grammar
- A Recursive descent parser for Egg
- LL(1) parsers. FIRST and FOLLOW sets
- Abstract Syntax Trees for Egg
- A full implementation of a recursive descent parser for Egg (private)
- PL 20/21 First Egg Lab: Egg. A Programming Language
- Eloquent JS. Chapter 12. Project: A Programming Language
- The class StoreMapWithHash
- Pablo’s fork of object-hash
- Extending is DeepJSONable
- Caches, identity, equality and deep equality
- Web engines vs JavaScript engines
- Scope in Babel
- Lecture 2025-04-22
- Recursive Descent Parsers. Extending JS with Babel. Functions on the left side of an assignment
- Videos
- The class StoreMapWithHash
- Pablo’s fork of object-hash
- Extending is DeepJSONable
- Egg grammar
- A Recursive descent parser for Egg
- Abstract Syntax Trees for Egg
- A full implementation of a recursive descent parser for Egg (private)
- PL 20/21 First Egg Lab: Egg. A Programming Language
- Eloquent JS. Chapter 12. Project: A Programming Language
- Caches, identity, equality and deep equality
- Web engines vs JavaScript engines
- Scope in Babel
- Lecture 2025-04-21
- Extending JS with Babel. Functions on the left side of an assignment
- Videos
- Caches, identity, equality and deep equality
- Publishing a package to the GitHub Registry
- Importing only the required functions from the support package
- Creating custom JavaScript syntax with Babel
- Monorepos
- Web engines vs JavaScript engines
- Callable Objects
- Templates in Babel
- Scope in Babel
- Lecture 2025-04-09
- Extending JS with Babel. Functions on the left side of an assignment
- Videos
- Creating custom JavaScript syntax with Babel
- Monorepos
- Web engines vs JavaScript engines
- Callable Objects
- Templates in Babel
- Scope in Babel
- Lecture 2025-04-08
- Extending JS with Babel. Functions on the left side of an assignment
- Videos
- Creating custom JavaScript syntax with Babel
- Monorepos
- Web engines vs JavaScript engines
- Callable Objects
- Templates in Babel
- Scope in Babel
- Lecture 2025-04-07
- Extending JS with Babel. Functions on the left side of an assignment
- Videos
- Creating custom JavaScript syntax with Babel
- Monorepos
- Web engines vs JavaScript engines
- Callable Objects
- Templates in Babel
- Scope in Babel
- Lecture 2025-04-02
- Introduction to Babel. Functions on the left side of an assignment
- Videos
- Callable Objects
- Templates in Babel
- Scope in Babel
- Lecture 2025-04-01
- Introduction to Babel. Functions on the left side of an assignment
- Videos
- Callable Objects
March
- Lecture 2025-03-31
- Functions on the left side of an assignment
- Videos
- Callable Objects
- Lecture 2025-03-26
- Functions on the left side of an assignment
- Videos
- Callable Objects
- Lecture 2025-03-25
- Magne Haveraaen Talk. Language Standardization. Functions on the left side of an assignment
- Videos
- Callable Objects
- Lecture 2025-03-24
- Functions on the left side of an assignment
- Videos
- Callable Objects
- Lecture 2025-03-19
- Types and Loops
- Videos
- AST types
- Hello AST Types repo
- Recast
- Introduction to Compilers
- Scope Analysis: teacher old notes. Eyapp. SimpleC. Symbol Tables.
- Teacher old notes: Práctica: Calculadora con Análisis de Ámbito
- Example of exam: The Regexp language
- Template repo for the exam example ULL-ESIT-PL/exam-training-template
- Video of PL 2022/05/24 class with an explanation of the example exam
- Video of PL class 2022/05/23. See it from minute 30:30
- Lecture 2025-03-17
- Types and Loops
- Videos
- AST types
- Hello AST Types repo
- Recast
- Introduction to Compilers
- Scope Analysis: teacher old notes. Eyapp. SimpleC. Symbol Tables.
- Teacher old notes: Práctica: Calculadora con Análisis de Ámbito
- Example of exam: The Regexp language
- Template repo for the exam example ULL-ESIT-PL/exam-training-template
- Video of PL 2022/05/24 class with an explanation of the example exam
- Video of PL class 2022/05/23. See it from minute 30:30
- Lecture 2025-03-12
- Adding functions to the Calculator
- Videos
- AST types
- Hello AST Types repo
- Recast
- Introduction to Compilers
- Scope Analysis: teacher old notes. Eyapp. SimpleC. Symbol Tables.
- Teacher old notes: Práctica: Calculadora con Análisis de Ámbito
- Example of exam: The Regexp language
- Template repo for the exam example ULL-ESIT-PL/exam-training-template
- Video of PL 2022/05/24 class with an explanation of the example exam
- Video of PL class 2022/05/23. See it from minute 30:30
- Lecture 2025-03-11
- First PL Exam
- Videos
- AST types
- Hello AST Types repo
- Recast
- Introduction to Compilers
- Scope Analysis: teacher old notes. Eyapp. SimpleC. Symbol Tables.
- Teacher old notes: Práctica: Calculadora con Análisis de Ámbito
- Example of exam: The Regexp language
- Template repo for the exam example ULL-ESIT-PL/exam-training-template
- Video of PL 2022/05/24 class with an explanation of the example exam
- Video of PL class 2022/05/23. See it from minute 30:30
- Lecture 2025-03-10
- Adding functions to the Calculator, First PL Exam
- Videos
- AST types
- Hello AST Types repo
- Recast
- Introduction to Compilers
- Scope Analysis: teacher old notes. Eyapp. SimpleC. Symbol Tables.
- Teacher old notes: Práctica: Calculadora con Análisis de Ámbito
- Example of exam: The Regexp language
- Template repo for the exam example ULL-ESIT-PL/exam-training-template
- Video of PL 2022/05/24 class with an explanation of the example exam
- Video of PL class 2022/05/23. See it from minute 30:30
- Lecture 2025-03-05
- Publishing npm modules with GitHub Actions, scope-intro, First PL Exam
- Videos
- Publishing as a Module in the GitHub Registry
- GitHub Actions
- ast-types
- Hello AST Types repo
- Recast
- Scope Analysis: teacher old notes. Eyapp. SimpleC. Symbol Tables.
- Teacher old notes: Práctica: Calculadora con Análisis de Ámbito
- Example of exam: The Regexp language
- Template repo for the exam example ULL-ESIT-PL/exam-training-template
- Video of PL 2022/05/24 classe with an explanation of the example exam
- Video of PL class 2022/05/23. See it from minute 30:30
February
- Lecture 2025-02-26
- Bjarne Stroustrup lecture. Publishing a module in the GitHub Registry, CI and GitHub Actions, Publishing npm modules with GitHub Actions, hello-compiler
- Videos
- Publishing as a Module in the GitHub Registry
- GitHub Actions
- Lecture 2025-02-25
- Publishing a module in the GitHub Registry, CI and GitHub Actions, Publishing npm modules with GitHub Actions, hello-compiler
- Videos
- Publishing as a Module in the GitHub Registry
- GitHub Actions
- Lecture 2025-02-24
- Publishing a module in the GitHub Registry, CI and GitHub Actions, Publishing npm modules with GitHub Actions, hello-compiler
- Videos
- Publishing as a Module in the GitHub Registry
- GitHub Actions
- Lecture 2025-02-19
- Arith2js, Tests scripts for tests automation, Covering, GitHub Pages, Publishing a module in the GitHub Registry, CI and GitHub Actions, Publishing npm modules with GitHub Actions
- Videos
- Testing erroneous input files
- Covering
- Publishing as a Module in the GitHub Registry
- GitHub Actions
- Lecture 2025-02-18
- Arith2js, The Example to test Methodology, The examples playground, The test/data tree structure, Mocking, dotenv, Controlling tests with environment variables, Tests scripts for tests automation
- Videos
- The 'Example to test Methodology'
- The examples playground
- The test/data tree structure
- Mocking
- The dotenv npm module
- Controling tests with environment variables
- Lecture 2025-02-17
- Lecture 2025-02-12
- Lecture 2025-02-11
- Lecture 2025-02-10
- Lecture 2025-02-05
- Lecture 2025-02-04
- Espree parser. Examples of the phases of a compiler using espree
- Videos
- Introduction to Compilers
- Examples of the phases of a compiler using espree
- Compacting the JS ASTs
- Introduction to Babel
- How to build a parser
- Analysis LR
- CodeSpaces
- GitPod
- Markdown
- MDX
January
- Lecture 2025-01-29
- Espree parser. Examples of the phases of a compiler using espree
- Videos
- Introduction to Compilers
- Examples of the phases of a compiler using espree
- Compacting the JS ASTs
- Introduction to Babel
- How to build a parser
- CodeSpaces
- GitPod
- Markdown
- MDX
- Lecture 2025-01-28
- Primeras prácticas. Historia de los Lenguajes de Programación. Examples of the phases of a compiler using espree
- Videos
- Introduction to Compilers
- CodeSpaces
- GitPod
- Markdown
- MDX
- Examples of the phases of a compiler using espree
- Compacting the JS ASTs
- Lecture 2025-01-27
- Introducción a la metodología de trabajo, primeras tareas y prácticas, bibliografía, sistema de evaluación, TFA, etc.
- Videos
Labs
- Training Exam
- TFA: Final Project
- Extended Egg Interpreter
- Extending JavaScript
- Calculator. Funs on the left side. Multiple arguments
- Types and Loops
- Functions
- Scope Intro
- Hello Compiler
- Translating Arithmetic Expressions to JavaScript
- IAAS
- Visual Studio Code and Gitpod
- GitHub Project Board
- Markdown
- GitHub Campus Expert
- Fill the form
Schedules
Schedules
Google Calendar
Incidencias
- La clase del 19 de Febrero será de 10:30 a 11:30. DAA se impartirá de 8:30 a 10:30.
School Schedule
Academic Calendar
Labs Schedule
- The practical classes (PE101, PE102, PE103) will be taught by teachers
- Israel López Plata groups PE102 and PE103 from week 1 to Friday March 14th
- Coromoto León Hernández group PE101 all the term
- Casiano Rodríguez León groups PE102 and PE103 from the 20th of March to the end of the term
There are 11 delivery weeks and a TFA (Final Subject Work) week
Weeks with no delivery labs
- The first two weeks 27/01-31/01 and 03/02-07/02
- The week before the last 28/04-02/05
TFA delivery
The last two weeks of May.
Exam Dates
- 11 de marzo 9:30 to 11:30 Aula 1.3
- 23 de mayo 9:00 Aula 1.2
- 13 de junio 9:00 Aula 1.1
- 4 de julio 9:30 Aula 1.1