Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/algosup/2023-2024-project-3-virtual-processor-team-2

Third project of 2023-2024 year which aims creating our own assembly language, with an interpreter to be able to read and run our programs. 📎
https://github.com/algosup/2023-2024-project-3-virtual-processor-team-2

aop aop-interpreter asm assembly at2 interpreter language-model vcpu virtual-processor

Last synced: about 5 hours ago
JSON representation

Third project of 2023-2024 year which aims creating our own assembly language, with an interpreter to be able to read and run our programs. 📎

Awesome Lists containing this project

README

        

# [2024] - IAT2️⃣



Made in Vierzon


Made at ALGOSUP


Assembly Team 2

## 🫂 Who are we ?
| **Picture** | **Name** | **Role** | **GitHub** | **LinkedIn** |
| ------------------------------------------------------------------------------------------------ | ---------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------|
| | **Mathias GAGNEPAIN** | Project Manager | GitHub Logo | [LinkedIn](https://www.linkedin.com/in/mathias-gagnepain-426a131b0/) |
| | **Guillaume DESPAUX** | Program Manager | GitHub Logo | [LinkedIn](https://www.linkedin.com/in/guillaume-despaux-084b10206/) |
| | **Guillaume DERAMCHI** | Technical Leader | GitHub Logo | [LinkedIn](https://www.linkedin.com/in/guillaume-deramchi-a45116293/) |
| | **Maxime CARON** | Software Engineer | GitHub Logo | [LinkedIn](https://www.linkedin.com/in/maxime-caron-dev/) |
| | **Paul NOWAK** | Software Engineer | GitHub Logo | [LinkedIn](https://www.linkedin.com/in/paul-nowak-0757a61a7/) |
| | **Enzo GUILLOUCHE** | Quality Assurance | GitHub Logo | [LinkedIn](https://www.linkedin.com/in/enzo-g-b62114293/) |

Read the list of [contributors](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-2/contributors) to see who helped with the project!


## 📚 What is this project ?

This project (IAT2) involves the creation of a new assembly language for enhanced understanding and usability, we introduce the AT2, accompanied by its dedicated assembler (2AT2) and virtual Processor (VAT2).

## 🕵️‍♂️ What is AT2 ?

AT2 stands for **A**ssembly **T**eam **2**, representing our proprietary assembly language.
*You can also refer to the [documentation](./documents/functional/at2_language_documentation.pdf).*

## ⚙️ What is 2AT2 ?

2AT2 stands for **A**ssembler for **A**ssembly **T**eam **2**, serving as the exclusive assembler capable of reading and converting `.aop` files written in our AT2 language into machine code (Binary).

## 💻 What is VAT2 ?

VAT2 stands for **V**irtual Processor for **A**ssembly **T**eam **2**, serving as a virtual processor able to execute our binary generated by 2AT2.

## 📦 What is IAT2 ?

IAT2 stands for **I**ntegral **A**ssembler **T**eam **2**, it's the name of the whole project (2AT2 + VAT2).

## 💾 Why did we choose .aop as extension ?

We selected the `.aop` extension to signify **A**op **O**riginal **P**rogram, embodying an infinite recursive loop inspired by [ZWEI](https://en.wikipedia.org/wiki/EINE_and_ZWEI#Naming)'s name.

## 🔎 How does it work ?

To assemble your code in `.aop`, here is some commands related to **2AT2** usage.

1. Compile you AT2's code: `2at2 `
2. Display the commands list: `2at2 -help` or `2at2 -h`
3. Compile + run your AT2's code with VAT2: `iat2 `

*You can also refer to the entire [user manual](./documents/functional/user_manual.md) and [AT2 documentation](./documents/functional/at2_language_documentation.pdf).*

### 🔗 Requires

To use IAT2 you need:

- A computer *(Windows Recommended)*
- GCC installed, you can install it [here](https://www.devdungeon.com/content/install-gcc-compiler-windows-msys2-cc)

### 💽 Installation

Step By Step:

1. Clone the repository: `git clone https://github.com/algosup/2023-2024-project-3-virtual-processor-team-2.git`
2. Go at the project root
3. Build the project
- How to use with mingw: (Windows)
1. Execute ``cmake -S . -B Build -G "MinGW Makefiles"``
2. Execute ``cd Build``
3. Execute ``mingw32-make``
- How to use with msys2: (Windows)
1. Execute ``cmake -S . -B Build -G "MSYS Makefiles"``
2. Execute ``cd Build``
3. Execute ``make``

It will generate a bin folder containing our runners to use it refers to [How does it work](#🔎-how-does-it-work)

*You can also refer to [user manual](./documents/functional/user_manual.md).*

## 🛠️ Made with

* [C99](https://en.wikipedia.org/wiki/C99) - C programming Language[.](https://www.youtube.com/watch?v=tas0O586t80)
* [C++](https://cplusplus.com/) - C++ Language used for unit tests.
* [Visual Studio Code](https://code.visualstudio.com/) - [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Developement Environement).
* [CMake](https://cmake.org/) - Software Build System for C & C++ code.
* [GoogleTest](https://github.com/google/googletest) - Google's internal systems for continuous integration.
* [GCC](https://gcc.gnu.org/) - Used to compile C language.
* [G++](https://gcc.gnu.org/) - Used to compile C++ language

## 🤝 Contributing

If you want to contribute please take a look to [CONTRIBUTING.md](CONTRIBUTING.md).

## 🗃️ Versions
- **Latest :** 1.1.1
- **Current :** 1.1.1
- Versions List : [Cliquer pour afficher](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-2/tags)

## ⚖️ License

This project is under license ``MIT`` - see the [LICENSE](LICENSE) file for more information.

ALGOSUP Logo