You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-17Lines changed: 19 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,20 +6,17 @@
6
6
</tr>
7
7
</table
8
8
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.
14
10
15
11
## 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.
17
14
18
15
The compiler output and program output are in bottom.
@@ -29,13 +26,14 @@ Error in the editor and tokens on the left
29
26
30
27
# Running the project
31
28
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.
33
30
34
-
The files examples are on the **Manco/Files**
31
+
The files examples are on the folder **Examples**
35
32
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.
37
34
38
35
## Features
36
+
39
37
- Primitive types like integer, decimal, bool and string
40
38
- Complex expression compilation like (10+20*2) > 200 and (true or false) and so on
41
39
- 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
46
44
- The language only uses the stack, no heap is used, which means no dynamic allocation, and fixed array sizes
47
45
- The language syntax is based on lua with some mix of c++ and imagination
48
46
49
-
### Program 1
47
+
### Example 1
50
48
51
49
```lua
52
50
-- A sum program, that passes a number with reference for the returned value
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.~~
99
101
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.
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
141
143
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.
142
144
143
-
## Compilation Phases
145
+
## Compilation Phases implemented
144
146
145
147
### 1. Lexical Analysis
146
148
@@ -173,7 +175,7 @@ Saída:
173
175
174
176
### 6. Execution
175
177
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.
177
179
-**Purpose:** To produce the final output that can be executed by the target platform.
0 commit comments