Project Overview
Pig is a Simple Quick Programming Language for Beginners and Advanced Users.
Project Goals
The Main Target is to create an Programming Language that anyone can use even those who dont know Coding, Here are some Goals To Fulfill:
- Showcase the developer's skills in Logical and Analytical Thinking and Programming.
- Create a captivating Programming Language that WORKS.
- Implement Variables, Datatypes and Functions.
- Implement Control Flow :- If,Else,Then and For.
Project Scope
The project scope encompasses the following key elements:
Scanner
Scanner will Do the Lexical Analysis and Translates source code to to Tokens,
Parser
Parser will Make the AST or Abstract Syntax Tree for defining the GRAMMAR Of the Language.
CodeGen
Codegen Function to Translate ASTs to LLVM IR, So LLVM Can Compile it.
Compiler
LLVM will take the IR and Translate it to Machine Code.
Project Requirements
To achieve the desired project goals and scope, the following requirements have been identified:
- Language Keywords and Grammer
- An Programming Language to Implement the Compiler, I chose Rust
- Deep Knowledge about how Programming Languages work
- Good in Programming And Logical THinking
Initial Planning and Development Setup
During the project initiation phase, the following activities were undertaken:
-
Research: I Will Read and dive deep into other Programming Languages Source Codes for Ideas and help.
-
Project Plan: A detailed project plan was created, outlining the various stages of development, key milestones, and estimated timelines. This plan provides a roadmap for the project's execution and ensures effective project management.
-
Development Environment Setup:
- Installed Emacs
- Installed Rust
- Initialized Git Repo