資料介紹
軟件簡介
jMiniLang 項目是一個 LR 編譯器、虛擬機一體化工程,并且對虛擬機進行了拓展,參考了操作系統設計的思想。
Features(特性)
- 詞法分析階段。Lexer which generates NFA and DFA.
- 語法分析、詞法分析、制導翻譯。Parser which implements LALR(1) Grammar with optional semantic action.
- 語義分析。Customized semantic analysis.
- 可打印語法樹。Printable syntax tree.
- 基于棧的自定義指令集。Stack-based instruction design.
- Kotlin本地方法導入。Native method.
- 代碼頁導入/導出。Import and export of code page.
- 代碼頁序列化。Serializable code page.
- 匿名函數及閉包。Lambda functions and Closure.
- 語法/詞法錯誤提示。Display grammar and semantic errors.
- 管道機制。Pipe.
- 多進程機制。Multiple process.
- 同步/異步執行代碼。Load file with Sync/Async.
- 虛擬機。Virtual machine.
- 支持彩色界面。Support Colorful GUI.
- 函數式編程。Functional programming.
- LISP.
- 網絡流。Socket stream.
- 虛擬文件系統。Save/Load file or VFS.
- 基于原型的類設計。Class prototype.
- Bash Interface.
- 數組/詞典初始化。Array/Map initialize list.
- 異常機制。Try/Catch/Throw.
- 行為樹。Behavior Tree, including PC network simulator.
-
用戶級進程。RING 3 Process, including User Service,
fork. - 網頁服務器。Web Server, including Online Compiler and Runner.
-
C語言解析。CParser class on
ModuleUser.
What it generates(產生)
- 正則表達式、狀態機。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.
- 運行時環境。Runtime environment.
Virtual Machine OS
An OS running on jMiniLang compiler and interpreter.
Now has commands:(現在主窗口支持的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:(微服務)
-
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:執行代碼
- exec_file:讀文件執行代碼
- kill:中止用戶進程
- info:取得用戶進程狀態(用于瀏覽器遠程回調)
USER HANDLE:(用戶級進程支持的句柄種類)
- pipe:管道,類似Go中的chan,用于跨進程同步,讀阻塞,寫不阻塞。
- share:共享,同步跨進程數據共享。
- file:文件,虛擬文件接口,同步操作。
- window:窗口,創建JFrame窗口,異步,包括繪制、消息。
- net:網絡,包括HTTP請求,OkHttp實現,異步。
Dependencies:(使用的開源庫,下面為部分)
- JSON格式化:fastjson
- 實現遠程命令SSH:netty
- 后端及API:spring-boot
- 網頁模版:thymeleaf
- 前端交互:vue
- 前端樣式:layui
- Markdown文檔轉換:flexmark
- 數據結構: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 **
- 虛擬機的設計與實現:C\C++ 0次下載
- 基于GCC實現支持MISRAC的安全編譯器
- 基于任務映射的云數據中心虛擬機選擇策略 17次下載
- CompCert編譯器目標代碼生成機制研究綜述 7次下載
- 使用C30編譯器實現單片機與片外串行SRAM的通信 12次下載
- 華為方舟編譯器使用指南 1次下載
- Java虛擬機參數調優 1次下載
- 基于虛擬機負載高峰特征的虛擬機放置策略 0次下載
- Java虛擬機基礎 0次下載
- 基于虛擬機技術的DSC仿真系統設計
- 虛擬機及虛擬化技術
- 多線程ARM虛擬機的設計與實現
- 微軟java虛擬機下載
- Java虛擬機向ARM平臺的移植
- Java虛擬機向ARM平臺的移植
- Linux內核編譯失敗?移動硬盤和虛擬機的那些事兒 863次閱讀
- 什么是虛擬機?什么是虛擬化? 3.6k次閱讀
- 什么是虛擬機?虛擬機真的那么好用嗎? 463次閱讀
- 什么是虛擬機?使用C代碼實現一個虛擬機 3.1k次閱讀
- 從Java入手如何了解虛擬機(VM) 1.8k次閱讀
- KVM虛擬機管理和基本使用 2.2k次閱讀
- 領域編譯器發展的前世今生 2.7k次閱讀
- 一文帶你了解虛擬機 5.4k次閱讀
- 交叉編譯器安裝教程 4.6k次閱讀
- 虛擬機:Hadoop集群的配置 3.2k次閱讀
- 虛擬機:Ubuntu的基本配置 3.6k次閱讀
- 虛擬機:編譯器對C函數的名字修飾 3k次閱讀
- 虛擬機:QEMU虛擬機和主機無線網絡通訊設置 6.5k次閱讀
- 如何選擇PIC單片機的C編譯器 5.9k次閱讀
- 編譯器是如何工作的_編譯器的工作過程詳解 1.8w次閱讀
下載排行
本周
- 11節電池用電池保護IC S-8261D系列數據手冊
- 3.07 MB | 1次下載 | 1 積分
- 2海信LED42T29GP電路圖資料
- 0.06 MB | 次下載 | 10 積分
- 3海信LED42T29GP說明書
- 25.83 MB | 次下載 | 10 積分
- 4海信LED42T29GP電路圖資料
- 0.64 MB | 次下載 | 10 積分
- 5HERO8Black說明書
- 4.96 MB | 次下載 | 免費
- 6九陽JYCP-21ZD-A主控板電路圖資料
- 2.33 MB | 次下載 | 10 積分
- 7格力空調2p通訊電路圖紙資料
- 2.48 MB | 次下載 | 免費
- 8HT3112規格書V1
- 977.90 KB | 次下載 | 免費
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 20次下載 | 10 積分
- 2反激式開關電源設計解析
- 0.89 MB | 12次下載 | 5 積分
- 3耗盡型MOS FET產品目錄選型表
- 0.14 MB | 3次下載 | 免費
- 4簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 5FP7135V060-G1/FP7125替代物料pin to pin
- 495.40 KB | 1次下載 | 免費
- 62EDL05x06xx系列 600V半橋門驅動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 7TI系列-米爾TI AM62L核心板開發板-高能效低功耗嵌入式平臺
- 1.51 MB | 1次下載 | 免費
- 81節電池用電池保護IC S-8261D系列數據手冊
- 3.07 MB | 1次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191457次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73831次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論