Seax 基于虚拟机的函数式编程语言运行环境开源项目

我要开发同款
白开水不加糖2021年09月14日
74阅读
开发技术Rust
所属分类开发工具
授权协议MIT

作品详情

Seax是一个基于虚拟机的平台,用于执行函数式编程语言的程序。这个项目被分割成若干个独立的Cargocrates,每个都有自己的Git仓库: SeaxCommand-LineApplicationAcommand-lineapplicationforcompilingprogramstoSVMbytecode,executingSVMbytecodefiles,andinvokingthetheSchemeinterpreter,eitheronsourcecodefilesorasaREPL.Thisissothattheindividualcomponentsofthesystemmaybewrittenaslibrariesratherthanasexecutableprograms.IfadditionalcompilerstargetingtheSVMaredeveloped,thismainprogrammayinvokethemaswell.ThisrepositoryalsocontainsthemaindocumentationandissuetrackerforSeax.

SeaxVirtualMachine(SVM)

该项目的核心,是一个用于评估Seax字节码程序的虚拟机。SVM是基于PeterLandin在1963年描述的SECD机器。这个工具包包含主要的SECD实现、SVM指令集和单元类型的定义,以及一个用于编码和解码Seax字节码文件的库。SVM是作为一个库发布的,因此它可以被包含在其他程序中。

SeaxSchemeCompiler

针对SeaxVM的Scheme解释器/编译器。此实现旨在尽可能符合 Revised6 ReportonScheme (R6RS) ,但可能不是一个复杂的实现。seax-scheme作为库而不是可执行文件发布,因此它可以包含在其他使用Scheme作为嵌入式语言的应用程序中。

SeaxUtilities

Alibraryofgeneral-purposereusablecodeforwritingcompilerstargetingtheSeaxplatform.ThiscrateincludestraitsforabstractsyntaxtreenodesforSeaxprograms,andanimplementationoftheForkTabledatastructureforrepresentingscopesandsymboltables.

Seax是使用Rust编程语言实现的。为了从源代码构建Seax,你需要Cargo、Rust的构建自动化工具。Seax的持续集成构建是针对最新的Rustnightly版本进行的。因此,与早期Rust版本的向后兼容性并不总是得到保证。

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

评论