資料介紹
軟件簡介
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平臺的移植
- 什么是虛擬機?什么是虛擬化? 1118次閱讀
- 什么是虛擬機?虛擬機真的那么好用嗎? 463次閱讀
- 什么是虛擬機?使用C代碼實現一個虛擬機 1824次閱讀
- 從Java入手如何了解虛擬機(VM) 989次閱讀
- KVM虛擬機管理和基本使用 1328次閱讀
- 領域編譯器發展的前世今生 1748次閱讀
- 一文帶你了解虛擬機 2913次閱讀
- 交叉編譯器安裝教程 3559次閱讀
- 虛擬機:Hadoop集群的配置 2811次閱讀
- 虛擬機:Ubuntu的基本配置 3118次閱讀
- 虛擬機:編譯器對C函數的名字修飾 2576次閱讀
- 虛擬機:Ubuntu的Thinkpad電池設置 2548次閱讀
- 虛擬機:QEMU虛擬機和主機無線網絡通訊設置 5477次閱讀
- 如何選擇PIC單片機的C編譯器 5429次閱讀
- 編譯器是如何工作的_編譯器的工作過程詳解 1.6w次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論