Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ejunjsh/jcc
a toy for java compiler and interpreter
https://github.com/ejunjsh/jcc
interpreter java-compiler
Last synced: about 5 hours ago
JSON representation
a toy for java compiler and interpreter
- Host: GitHub
- URL: https://github.com/ejunjsh/jcc
- Owner: ejunjsh
- Created: 2021-01-23T07:59:45.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-02-11T00:45:08.000Z (over 3 years ago)
- Last Synced: 2023-03-05T02:28:17.612Z (over 1 year ago)
- Topics: interpreter, java-compiler
- Language: Java
- Homepage:
- Size: 80.1 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jcc
a java compiler and interpreter
## compile jcc
mvn compile
## compile RecursiveSum.java
mvn exec:java -Dexec.mainClass=com.sky.jcc.compiler.CodeGenerationMain -Dexec.args=RecursiveSum.java
output:
The following program does:
->Syntax Tree build
->Symbol Table construction
->Type checking
->Code GenerationProcessing file: RecursiveSum.java
Symbol Table:
+-------------------------------------------------------------------------------------------+
ID RECORD SCOPE
+-------------------------------------------------------------------------------------------+
RecursiveSum RecursiveSum - class prog [ program ]
Test Test - class prog [ program ]
main main - public RecursiveSum [ class ]
sum sum - int Test [ class ]
num num - int sum [ method ]
sum sum - int sum [ method ]
+-------------------------------------------------------------------------------------------+
Generated code
==============
Method: RecursiveSum.main
0 ICONST 10
1 INVOKEVIRTUAL Test.sum
2 PRINT
3 STOP
Method: Test.sum
#0 = num #1 = sum
0 ISTORE #0
1 ILOAD #0
2 ICONST 2
3 ILT
4 IF_FALSE 8
5 ICONST 1
6 ISTORE #1
7 GOTO 15
8 ILOAD #0
9 ILOAD #0
10 ICONST 1
11 ISUB
12 INVOKEVIRTUAL Test.sum
13 IADD
14 ISTORE #1
15 ILOAD #1
16 IRETURN
Program compiled into: RecursiveSum.jcc## interprete run RecursiveSum.jcc
mvn exec:java -Dexec.mainClass=com.sky.jcc.interpreter.JccInterpreter -Dexec.args=RecursiveSum.jcc
output:
The following program does:
->Code interpretationInterpreting file: RecursiveSum.jcc
55
:) enjoy