jMiniLang Kotlin 实现的编译器和虚拟机开源项目

我要开发同款
匿名用户2021年10月24日
107阅读

技术信息

开源地址
https://github.com/bajdcc/jMiniLang
授权协议
MIT

作品详情

jMiiLag项目是一个LR编译器、虚拟机一体化工程,并且对虚拟机进行了拓展,参考了操作系统设计的思想。

Features(特性)词法分析阶段。LexerwhichgeeratesNFAadDFA.语法分析、词法分析、制导翻译。ParserwhichimplemetsLALR(1)Grammarwithoptioalsematicactio.语义分析。Customizedsematicaalysis.可打印语法树。Pritablesytaxtree.基于栈的自定义指令集。Stack-basedistructiodesig.Kotli本地方法导入。Nativemethod.代码页导入/导出。Importadexportofcodepage.代码页序列化。Serializablecodepage.匿名函数及闭包。LambdafuctiosadClosure.语法/词法错误提示。Displaygrammaradsematicerrors.管道机制。Pipe.多进程机制。Multipleprocess.同步/异步执行代码。LoadfilewithSyc/Asyc.虚拟机。Virtualmachie.支持彩色界面。SupportColorfulGUI.函数式编程。Fuctioalprogrammig.LISP.网络流。Socketstream.虚拟文件系统。Save/LoadfileorVFS.基于原型的类设计。Classprototype.BashIterface.数组/词典初始化。Array/Mapiitializelist.异常机制。Try/Catch/Throw.行为树。BehaviorTree,icludigPCetworksimulator.用户级进程。RING3Process,icludigUserService,fork.网页服务器。WebServer,icludigOlieCompileradRuer.C语言解析。CParserclassoModuleUser.Whatitgeerates(产生)正则表达式、状态机。StructuresofRegex,NFAadDFATable.分析表。StructuresofLL/LRTable.语义分析指令。Structuresofsematicistructios.语法树。Structuresofsytaxtree.代码页。Structuresofcodepage.虚拟机指令。Virtualmachieistructios.运行时环境。Rutimeeviromet.VirtualMachieOSAOSruigojMiiLagcompileraditerpreter.

Nowhascommads:(现在主窗口支持的cmd命令)

echoduppipegrepprocragetasksleeptimecoutmsgews(refer:https://github.com/bajdcc/NewsApp)bashreplaceutilaipcmusicTasks:(使用方法如:@systemhalt)

SystemUtilityRemoteUIStoreProcUI:(使用方法如:@uioclock)

ClockHitokotoMoitorToggleUI:

taskuio/offclocktaskuio/offhitokototaskuio/offmoitorImplemetedIPC,usage:(微服务)

tasksystemow->Getsystemtimetaskutilcalc1+2*3->Val=7taskuiprithelloworld->RemotewidowtaskuipathM100100L200200->SVGUtility:

taskutildocg_fuc_fold->Documettaskutilreverse...taskutiltoupper...taskutilsum...taskutilproduct...taskutilpalidrome...Tests:(测试命令,直接在主窗口cmd输入,Ctrl-C中止)

testphilo/philo2:Multi-processigadsychroizatiotestlisp:LISPlaguagetestfot:SupportChieseLaguage(widefot)testfork:Testforktestclass:TestAOPadPrototypeforclasstestbash:Testbashiterfacetesttry:Testtry/catchtestbadapple:Testasciioutput,codeiBadAppletestdialog:TestJOptioPae.showXXXDialogtestliq:TestLINQtestproc:TestRig3APItestproc2:TestRig3codewithiputtestweb:HTTPWebServerImplemetedMSG,usage:(远程控制)

Createserver:msgserverPORT|filterpipeCreatecliet:otherpipe|msgcoectIP:PORTPCcommad:

pcaddA1010100100pcremoveApcmsgABLINQ:

from(list)orfrom(array)rage(begi,ed)Fuctio:select,where,first,last,max,sum,for_each,group_by,distict,uio,etc.TASKPROC:

exec:执行代码exec_file:读文件执行代码kill:中止用户进程ifo:取得用户进程状态(用于浏览器远程回调)USERHANDLE:(用户级进程支持的句柄种类)

pipe:管道,类似Go中的cha,用于跨进程同步,读阻塞,写不阻塞。share:共享,同步跨进程数据共享。file:文件,虚拟文件接口,同步操作。widow:窗口,创建JFrame窗口,异步,包括绘制、消息。et:网络,包括HTTP请求,OkHttp实现,异步。Depedecies:(使用的开源库,下面为部分)

JSON格式化:fastjso实现远程命令SSH:etty后端及API:sprig-boot网页模版:thymeleaf前端交互:vue前端样式:layuiMarkdow文档转换:flexmark数据结构:guavaHTTP请求:okhttpJAR打包:shadowMaualSimplifiedChieseVersio

ExampleWebServer

SprigBootAPI,port8080JavaNIO,port8088RederMarkdowusigFlexMarkFrot-ed:LayUI(前端)

1.SprigBootAPI

Frot-ed:LayUI+Vue.jsAPI:Jso+RestCotroller

Back-ed:jMiiLagAPIHadler(RING3Process)

RuoServer

**OlieCompilerExampleV:GUIUserWidow**

功能介绍

jMiniLang 项目是一个 LR 编译器、虚拟机一体化工程,并且对虚拟机进行了拓展,参考了操作系统设计的思想。 Features(特性) 词法分析阶段。Lexer which generat...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论