首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于不可变数据结构的微型虚拟机?

基于不可变数据结构的微型虚拟机?
EN

Stack Overflow用户
提问于 2016-10-02 19:24:10
回答 2查看 368关注 0票数 1

是否存在用户可见的主要数据结构(列表、数组、映射、集合等)的“微型”虚拟机(对于任何编程语言)是不变的,就像Clojure或Haskell一样?

我所说的“微型”指的是实现简单、简洁和可移植性是关键点的虚拟机:想想Lua或TinyScheme。

EN

回答 2

Stack Overflow用户

发布于 2016-10-04 16:07:30

我不确定它如何与您的“关键点”保持一致,但您可以看看Pixie。Pixie在RPython中实现了一个虚拟机。它的声明之一是编译的VM +标准库只占用10MB多一点的空间。该语言是一种(松散地)基于Clojure的lisp。默认情况下,它似乎保持了Clojure的不可变策略,并且肯定有Clojure的持久数据类型的实现。

票数 1
EN

Stack Overflow用户

发布于 2016-10-08 13:15:37

Owl Lisp

一个“纯粹的功能方案”。VM为1600行C。

Owl Lisp是一种纯函数式的方案方言。它基于R7RS标准的适用子集,主要使用纯函数操作所需的线程和数据结构对其进行扩展。Owl可以在大多数类UNIX系统上使用,如Linux、BSD和OS X。程序通常通过C编译为独立的二进制文件,因此不需要Owl来运行用它编写的程序。

Owl项目最初既是为了尝试用一些必要的特性来扩展R5RS方案,比如线程和模块,也是为了试验纯函数式如何影响应用顺序纯函数式语言的运行时和使用。虽然一些东西已经添加到Scheme中,但Owl试图保持核心语言尽可能简单。

在实现方面,我们的目标是获得一个小型的便携系统,可以用来轻松地发布程序。目前,这是通过使用基于寄存器的小型虚拟机来实现的,该虚拟机可以用特定于程序的指令来扩展,以减少解释开销。

ClojureC

面向C作为后端的

编程语言的Clojure编译器。它基于ClojureScript ..。在可以运行任何东西之前,请确保您已经安装了GLib 2和Boehm-Demers-Weiser垃圾收集器。

TinyClojure

TinyClojure是一个在可移植的C++中构建一个小型的、可轻松嵌入的Clojure/ClojureScript版本的项目。在很多方面,我都试图创建一个与TinyScheme等价的Clojure。

..。

ClojureC很好,但构建过程很复杂,而且存在外部库依赖...TinyClojure开发的重点是使其成为在任何应用程序中嵌入Clojure的最简单的方法。极小的Clojure由一个头文件、一个源文件组成,没有外部依赖项,并且扩展和嵌入接口尽可能简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39820761

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文