https://github.com/oleksiygarnik/programming-language-translator
This project implements a compiler for a custom programming language featuring lexical and syntax analysis, intermediate representation in Polish Notation, and code generation.
https://github.com/oleksiygarnik/programming-language-translator
compiler compiler-design grammar intermediate-representation language-design lexical-analysis polish-notation syntax-analysis
Last synced: 2 months ago
JSON representation
This project implements a compiler for a custom programming language featuring lexical and syntax analysis, intermediate representation in Polish Notation, and code generation.
- Host: GitHub
- URL: https://github.com/oleksiygarnik/programming-language-translator
- Owner: oleksiygarnik
- Created: 2019-02-22T14:21:57.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-11T10:23:12.000Z (over 1 year ago)
- Last Synced: 2025-07-28T19:03:01.376Z (8 months ago)
- Topics: compiler, compiler-design, grammar, intermediate-representation, language-design, lexical-analysis, polish-notation, syntax-analysis
- Language: C#
- Homepage:
- Size: 87.9 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Compiler
## Overview
During the development of this compiler project, the following milestones were achieved:
1. **Grammar Design**
Developed the grammar for the specified programming language.
2. **Compiler Structure**
Defined the structure of the compiler.
3. **Functional Blocks**
Described and implemented the core functional blocks of the compiler.
4. **User Interface**
Designed and implemented an intuitive graphical user interface.
5. **Testing**
Tested the compiler by comparing the results of a test program with a semantically similar program in the object-oriented programming language C#.
## Components
The compiler includes the following key components:
1. **Lexical Analyzer**
Analyzes the source code and extracts tokens.
2. **Syntax Analyzer**
Processes tokens to construct a syntax tree and ensure adherence to syntax rules.
3. **Intermediate Representation**
Builds an intermediate form of the program—Polish Notation (PN).
4. **Execution of PN**
Executes the Polish Notation code.
The programming language supports assignment operators, input and output operations with a flexible structure, as well as conditional and looping operators designed for specific tasks.