Skip to content

Commit 0dc9f6d

Browse files
authored
Update README.md
1 parent ec1ba24 commit 0dc9f6d

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

README.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,17 @@
66
</tr>
77
</table
88
9-
Manco is my own compiled programming language made from scratch for fun that compiles to a MIPS based assembly architecture.
10-
11-
No external tools were used like yacc, bison, etc.
12-
13-
Implemented in C#, with a GUI to interact in Windows Forms.
9+
Manco is a programming language I created from scratch for fun, designed to compile to a MIPS-based assembly architecture. No external tools like Yacc or Bison were used in its development. It's implemented in C# with a Windows Forms GUI for user interaction.
1410
1511
## Preview
16-
In the left there is the code, and in the right the assembly generated and also tokens of the code.
12+
13+
On the left is the code, and on the right are the generated assembly and the corresponding tokens of the code.
1714
1815
The compiler output and program output are in bottom.
1916
2017
![image](https://github.com/RodrigoPAml/MancoLanguage/assets/41243039/eacbdfed-38b3-4920-b7e9-2422cd8837ea)
2118
22-
Error in the editor and tokens on the left
19+
An error in the editor and tokens involved on the left
2320
2421
![image](https://github.com/RodrigoPAml/MancoLanguage/assets/41243039/f0078c33-f456-4fd9-b01e-6cb63d11eb05)
2522
@@ -29,13 +26,14 @@ Error in the editor and tokens on the left
2926
3027
# Running the project
3128
32-
If you are going to build and run the project dont forget to do **git submodule init** and **git submodule update** before that and run the project **GUI** as the initial project.
29+
If you are going to build and run the project don't forget to do **git submodule init** and **git submodule update** before that and run the project **GUI** as the initial project.
3330
34-
The files examples are on the **Manco/Files**
31+
The files examples are on the folder **Examples**
3532
36-
Or you can run the executable in the Release folder that contains an Examples Folder to run.
33+
Or you can download tha **available release** that contains the gui and some examples.
3734
3835
## Features
36+
3937
- Primitive types like integer, decimal, bool and string
4038
- Complex expression compilation like (10+20*2) > 200 and (true or false) and so on
4139
- Array of primitives types with index access
@@ -46,7 +44,7 @@ Or you can run the executable in the Release folder that contains an Examples Fo
4644
- The language only uses the stack, no heap is used, which means no dynamic allocation, and fixed array sizes
4745
- The language syntax is based on lua with some mix of c++ and imagination
4846

49-
### Program 1
47+
### Example 1
5048

5149
```lua
5250
-- A sum program, that passes a number with reference for the returned value
@@ -69,7 +67,7 @@ The sum of 1 + 3 is 4
6967
Program exited 0
7068
```
7169

72-
### Program 2
70+
### Example 2
7371

7472
```lua
7573
-- Program that prints pair numbers up to N
@@ -95,9 +93,13 @@ Output
9593
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148
9694
Program exited 0
9795
```
98-
## Running the API
96+
## Running the compiler API
97+
98+
To use the API provider to compile the code, use the Manco Project and take a look at the main, there is an example of how to use the compiler to generate assembly.
99+
100+
~~With the compiled code you can use the GUI of the [AssemblerSimulator](https://github.com/RodrigoPAml/AssemblerSimulator) project to run the code.~~
99101

100-
To use the API provider to compile code, use the Manco Project and take a look at the main, there is an example of how to use the compiler to generate assembly. With the compiled code you case use the AssemblerEmulator project to run the code, or just use the GUI to have fun.
102+
With the compiled code, the project already include the assembler simulator to run and have an ouput.
101103

102104
![image](https://github.com/user-attachments/assets/b7125036-4fa6-4d5f-a443-110118e2c3fc)
103105

@@ -137,10 +139,10 @@ Saída:
137139

138140
## Compiled or Interpreted?
139141

140-
The language is compiled into a set of assembly based on the mips architecture, which does not run on current computers, but runs on my Assembler Simulator (used as a submodule) that
142+
The language is compiled into a set of assembly based on the mips architecture, which does not run on current computers, but runs on my [AssemblerSimulator](https://github.com/RodrigoPAml/AssemblerSimulator) (used as a submodule) that
141143
i have developed. I choose this type of assembly because already learn it from university. So while the language is compiled into assembly, the assembly is getting interpreted, which is slow, it also waits the GUI to render after a syscall for print, which makes it worse, but can be disabled.
142144

143-
## Compilation Phases
145+
## Compilation Phases implemented
144146

145147
### 1. Lexical Analysis
146148

@@ -173,7 +175,7 @@ Saída:
173175

174176
### 6. Execution
175177

176-
- **Description:** The execution of the assembler is done by a Assembler Simulator which is a public repository of mine, this is used as a submodule of this project.
178+
- **Description:** The execution of the assembler is done by a [AssemblerSimulator](https://github.com/RodrigoPAml/AssemblerSimulator) which is a public repository of mine, this is used as a submodule of this project.
177179
- **Purpose:** To produce the final output that can be executed by the target platform.
178180

179181
## Examples

0 commit comments

Comments
 (0)