This repository contains the complete development of a language processor for the Tiny programming language, created as part of the Language Processors course at Universidad Complutense de Madrid.
- Esther Babón Arcauz
- Pablo Campo Gómez
- Claudia López-Mingo Moreno
- José Antonio Ruiz Heredia
The project involves designing and implementing a full compiler for the Tiny language, starting from lexical analysis and ending in code generation for a stack-based abstract machine.
- Definition of lexical classes for Tiny(0) and Tiny
- Regular expressions specification
- Transition diagrams for token recognition
- Manual parser for Tiny(0) using recursive descent
- Top-down and bottom-up parsers for Tiny
- Grammar conditioning and director sets
- Abstract syntax specification via function signatures
- Attribute grammar for AST construction
- Implementation-ready grammar transformations
- Token stream printing
- Type checking procedures
- Memory allocation strategy
- Instruction set for a target abstract machine (code-p)
- Labeling and code generation logic
The repository is organized by phase, each containing detailed documentation, code, and diagrams for its components.