資料介紹
軟件簡介
jMiniLang 項目是一個 LR 編譯器、虛擬機一體化工程,并且對虛擬機進行了拓展,參考了操作系統(tǒng)設(shè)計的思想。
Features(特性)
- 詞法分析階段。Lexer which generates NFA and DFA.
- 語法分析、詞法分析、制導(dǎo)翻譯。Parser which implements LALR(1) Grammar with optional semantic action.
- 語義分析。Customized semantic analysis.
- 可打印語法樹。Printable syntax tree.
- 基于棧的自定義指令集。Stack-based instruction design.
- Kotlin本地方法導(dǎo)入。Native method.
- 代碼頁導(dǎo)入/導(dǎo)出。Import and export of code page.
- 代碼頁序列化。Serializable code page.
- 匿名函數(shù)及閉包。Lambda functions and Closure.
- 語法/詞法錯誤提示。Display grammar and semantic errors.
- 管道機制。Pipe.
- 多進程機制。Multiple process.
- 同步/異步執(zhí)行代碼。Load file with Sync/Async.
- 虛擬機。Virtual machine.
- 支持彩色界面。Support Colorful GUI.
- 函數(shù)式編程。Functional programming.
- LISP.
- 網(wǎng)絡(luò)流。Socket stream.
- 虛擬文件系統(tǒng)。Save/Load file or VFS.
- 基于原型的類設(shè)計。Class prototype.
- Bash Interface.
- 數(shù)組/詞典初始化。Array/Map initialize list.
- 異常機制。Try/Catch/Throw.
- 行為樹。Behavior Tree, including PC network simulator.
-
用戶級進程。RING 3 Process, including User Service,
fork
. - 網(wǎng)頁服務(wù)器。Web Server, including Online Compiler and Runner.
-
C語言解析。CParser class on
ModuleUser
.
What it generates(產(chǎn)生)
- 正則表達式、狀態(tài)機。Structures of Regex, NFA and DFA Table.
- 分析表。Structures of LL/LR Table.
- 語義分析指令。Structures of semantic instructions.
- 語法樹。Structures of syntax tree.
- 代碼頁。Structures of code page.
- 虛擬機指令。Virtual machine instructions.
- 運行時環(huán)境。Runtime environment.
Virtual Machine OS
An OS running on jMiniLang compiler and interpreter.
Now has commands:(現(xiàn)在主窗口支持的cmd命令)
- echo
- dup
- pipe
- grep
- proc
- range
- task
- sleep
- time
- count
- msg
- news(refer: https://github.com/bajdcc/NewsApp)
- bash
- replace
- util
- ai
- pc
- music
Tasks:(使用方法如:@system halt
)
- System
- Utility
- Remote
- UI
- Store
- Proc
UI:(使用方法如:@ui on clock
)
- Clock
- Hitokoto
- Monitor
Toggle UI:
-
task ui on/off clock
-
task ui on/off hitokoto
-
task ui on/off monitor
Implemented IPC, usage:(微服務(wù))
-
task system now
-> Get system time -
task util calc 1+2*3
-> Val = 7 -
task ui print hello world
-> Remote window -
task ui path M 100 100 L 200 200
-> SVG
Utility:
-
task util doc g_func_fold
-> Document -
task util reverse ...
-
task util toupper ...
-
task util sum ...
-
task util product ...
-
task util palindrome ...
Tests:(測試命令,直接在主窗口cmd輸入,Ctrl-C中止)
-
test philo/philo2
: Multi-processing and synchronization -
test lisp
: LISP language -
test font
: Support Chinese Language(wide font) -
test fork
: Test fork -
test class
: Test AOP and Prototype for class -
test bash
: Test bash interface -
test try
: Test try/catch -
test badapple
: Test ascii output, code in BadApple -
test dialog
: Test JOptionPane.showXXXDialog -
test linq
: Test LINQ -
test proc
: Test Ring 3 API -
test proc2
: Test Ring 3 code with input -
test web
: HTTP Web Server
Implemented MSG, usage:(遠程控制)
-
Create server:
msg server PORT | filter pipe
-
Create client:
other pipe | msg connect IP:PORT
PC command:
-
pc add A 10 10 100 100
-
pc remove A
-
pc msg A B
LINQ:
-
from(list)
orfrom(array)
-
range(begin, end)
- Function: select, where, first, last, max, sum, for_each, group_by, distinct, union, etc.
TASK PROC:
- exec:執(zhí)行代碼
- exec_file:讀文件執(zhí)行代碼
- kill:中止用戶進程
- info:取得用戶進程狀態(tài)(用于瀏覽器遠程回調(diào))
USER HANDLE:(用戶級進程支持的句柄種類)
- pipe:管道,類似Go中的chan,用于跨進程同步,讀阻塞,寫不阻塞。
- share:共享,同步跨進程數(shù)據(jù)共享。
- file:文件,虛擬文件接口,同步操作。
- window:窗口,創(chuàng)建JFrame窗口,異步,包括繪制、消息。
- net:網(wǎng)絡(luò),包括HTTP請求,OkHttp實現(xiàn),異步。
Dependencies:(使用的開源庫,下面為部分)
- JSON格式化:fastjson
- 實現(xiàn)遠程命令SSH:netty
- 后端及API:spring-boot
- 網(wǎng)頁模版:thymeleaf
- 前端交互:vue
- 前端樣式:layui
- Markdown文檔轉(zhuǎn)換:flexmark
- 數(shù)據(jù)結(jié)構(gòu):guava
- HTTP請求:okhttp
- JAR打包:shadow
Manual
Example
Web Server
- Spring Boot API, port 8080
- Java NIO, port 8088
- Render Markdown using FlexMark
Front-end: LayUI(前端)
1. Spring Boot API
Front-end: LayUI + Vue.js API: Json + RestControllerBack-end: jMiniLang API Handler (RING 3 Process)
Run on Server
** Online Compiler Example V: GUI User Window **
- 虛擬機的設(shè)計與實現(xiàn):C\C++ 0次下載
- 基于GCC實現(xiàn)支持MISRAC的安全編譯器
- 基于任務(wù)映射的云數(shù)據(jù)中心虛擬機選擇策略 17次下載
- CompCert編譯器目標代碼生成機制研究綜述 4次下載
- 使用C30編譯器實現(xiàn)單片機與片外串行SRAM的通信 12次下載
- 華為方舟編譯器使用指南 1次下載
- Java虛擬機參數(shù)調(diào)優(yōu) 1次下載
- 基于虛擬機負載高峰特征的虛擬機放置策略 0次下載
- 基于虛擬機技術(shù)的DSC仿真系統(tǒng)設(shè)計
- 虛擬機及虛擬化技術(shù)
- 多線程ARM虛擬機的設(shè)計與實現(xiàn)
- 微軟java虛擬機下載
- PIC單片機的C編譯器(軟件)
- Java虛擬機向ARM平臺的移植
- Java虛擬機向ARM平臺的移植
- 什么是虛擬機?什么是虛擬化? 219次閱讀
- 什么是虛擬機?虛擬機真的那么好用嗎? 463次閱讀
- 什么是虛擬機?使用C代碼實現(xiàn)一個虛擬機 1160次閱讀
- 從Java入手如何了解虛擬機(VM) 812次閱讀
- KVM虛擬機管理和基本使用 1090次閱讀
- 領(lǐng)域編譯器發(fā)展的前世今生 1473次閱讀
- 一文帶你了解虛擬機 2644次閱讀
- 交叉編譯器安裝教程 3273次閱讀
- 虛擬機:Hadoop集群的配置 2689次閱讀
- 虛擬機:Ubuntu的基本配置 2990次閱讀
- 虛擬機:編譯器對C函數(shù)的名字修飾 2469次閱讀
- 虛擬機:Ubuntu的Thinkpad電池設(shè)置 2427次閱讀
- 虛擬機:QEMU虛擬機和主機無線網(wǎng)絡(luò)通訊設(shè)置 5280次閱讀
- 如何選擇PIC單片機的C編譯器 5245次閱讀
- 編譯器是如何工作的_編譯器的工作過程詳解 1.5w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多