资料介绍
软件简介
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次阅读
下载排行
本周
- 1人工智能+消费:技术赋能与芯片驱动未来
- 15.25 MB | 4次下载 | 免费
- 2⼯业电源&模块电源产品⼿册
- 15.40 MB | 1次下载 | 免费
- 379M15 TO-252三端稳压IC规格书
- 0.86 MB | 次下载 | 免费
- 4MBRD20150CT TO-252肖特基二极管规格书
- 0.54 MB | 次下载 | 免费
- 5自动锁螺丝运动控制系统用户手册
- 6.65 MB | 次下载 | 5 积分
- 6奥特光耦产品手册
- 4.83 MB | 次下载 | 免费
- 7SMA系列10MHz~40GHz同轴检波器
- 559.60 KB | 次下载 | 免费
- 8CD7388CZ:7W×4 四通道音频功率放大电路技术手册
- 0.39 MB | 次下载 | 10 积分
本月
- 1元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 241次下载 | 免费
- 2元宇宙底层硬件系列报告
- 13.42 MB | 184次下载 | 免费
- 32022 年展望報告 – 半導體產業
- 1.43 MB | 136次下载 | 免费
- 4晶振与滤波器应用电路《电子工程师必备:元器件应用宝典》
- 1.57 MB | 90次下载 | 免费
- 5汽车电子行业深度解析:智能化与电动化方兴未艾
- 6.47 MB | 71次下载 | 免费
- 6中国DPU行业白皮书
- 23.80 MB | 37次下载 | 免费
- 7晶科鑫代理线-微盟电子2021年度产品目录选型手册
- 14.75 MB | 27次下载 | 免费
- 8SJK晶振产品目录-简化版-2022
- 13.77 MB | 20次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935134次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191425次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183352次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论