Compiler Design - ABM File Reader with Memory Management
Overview
This Compiler Design project, developed in association with the University at Albany, SUNY, is a comprehensive system that reads and processes stack-based ABM (Assembly-Based Language) files, using advanced techniques for efficient memory management. It handles complex ABM code, variable scope management, and ensures concurrent access to global variables through the implementation of a Memory Bus.
The inclusion of a Cache Memory system further optimizes the speed of variable access, offering a robust solution for efficient assembly programming.
Key Features
-
ABM File Reader:
- A C-based file reader designed to interpret stack-based Assembly-Based Language (ABM) code.
-
Memory Bus:
- Implements a Memory Bus to manage concurrent access to global variables efficiently.
-
Cache Memory System:
- Enhances variable access speed using a Cache Memory system, optimizing the performance of assembly programming.
-
Variable Scope Management:
- Manages variable scopes to ensure correct handling of variables during the execution of ABM code.
Tech Stack
- Programming Languages: C, Assembly-Based Language, MIPS
- Version Control: Git, GitHub
- Operating System: Linux, Ubuntu
- Project Management Method: Agile-based
Development & Setup
This project was developed using Agile methodologies, with version control managed via Git and GitHub. The development environment is optimized for Linux systems, specifically Ubuntu.
- Install dependencies and run:
git clone https://github.com/anudeep-17/Compiler_Design cd compiler-design make ./run_abm_reader
Access & Documentation
This project showcases skills in low-level programming and memory management, offering a well-rounded solution for handling complex assembly-based language files and optimizing system performance.