MakerLisp 为创客和嵌入式设计师提供 Lisp 和 CP/M

电子说

1.3w人已加入

描述

MakerLisp Embedded Lisp Machine 面向用于物联网边缘的嵌入式系统的制造商和开发人员。

目前,复古计算和复古显示技术似乎正在大规模复苏。例如,仅考虑我最近的一些专栏:“适合 Altoids 糖果罐的微型计算机复古套件”、“超级酷复古 IBM 克隆计算机 DIY 套件”和“拆分翻盖显示器引发怀旧浪潮”。

因此,您可以想象我被介绍给路德·约翰逊(Luther Johnson)这个超越复古的人的惊喜和喜悦。作为Lisp 编程语言和CP/M 操作系统的忠实拥护者,Luther 怀念 1970 年代末和 1980 年代初个人微型计算机的简单性和即时性,因此他设计并构建了自己想要的系统,之后他决定把它提供给其他人玩。

让我们从 Lisp 开始,它最初于 1958 年被指定,使其成为第二古老的高级编程语言(只有 Fortran 更老,一年)。作为最早的编程语言之一,Lisp 开创了计算机科学的许多思想。此外,它很快成为人工智能 (AI) 早期研究最喜欢的语言。令人惊奇的是,List 至今仍在广泛使用。Lisp 的追随者倾向于将其描述为“一种多范式语言,对命令式、函数式和面向对象的编程具有出色的支持”,而其批评者则声称 Lisp 是“Lots of Insipid Stupid Parentheses”的缩写。

当然,Luther 是一个狂热的爱好者,他对 Lisp 的描述如下:

一般来说,解释性环境(如 Forth、Basic、Python 和许多其他语言)非常适合快速原型设计和迭代开发,您可以从开发和测试小块拼图开始,然后从可信组件构建解决方案。在嵌入式系统开发中,这可能是一种特别高效的工作方式,在这种方式中,我们需要在开发软件时观察和了解与硬件的交互。

Lisp 语言家族[以其]简洁的表达能力和[其]高“语义能量密度”而著称。同时,Lisp 是最简单的语言之一,因为它本身并没有太多的语言需要学习。相反,您将大部分时间都花在思考自己的代码上。由于 Lisp 的工作方式,以及从编写 Lisp 程序的过程中演变而来的风格,您的代码可以更好地组合和组合在一起,并且您编写的东西每次都可以工作,无处不在。Lisp 程序似乎用更少的代码完成了更多工作。

Lisp 的 MakerLisp 方言是一种 Lisp,它具有表达式评估的 Scheme 模型、低级宏和具有通用 Lisp 拼写和语义的语言函数、C 语言算术和标准 C 库函数。MakerLisp 系统是用可移植的 C 语言编写的,它即时 (JIT) 解释了一种微小的核心语言。所有其他形式和功能都通过 Lisp 函数和宏提供。

具有 JIT 增量编译的 Lisp 解释器,如 MakerLisp,可以交付性能非常好的程序。Lisp 环境有利于快速完成工作,由此产生的“原型代码”具有生产价值。嵌入式系统开发已经够难了。我们可以使用我们可以获得的所有开发工具,并且我们可以在 Lisp 中利用的计算模型在嵌入式系统上与在其他问题领域中一样高效。

尽管 MakerLisp 的 JIT 增量编译比完全编译的 Lisp 程序运行得更慢,但它的运行速度仍然比等效的 Python 代码快三倍。不过这里的重点是,除了 Luther 之外,Lisp 还有很多粉丝。不幸的是,在面向物联网 (IoT) 边缘的嵌入式系统制造商和开发人员的微控制器开发板中,您往往不会发现 Lisp。所有这些都将我们带到 Luther 的MakerLisp Embedded Lisp Machine:

MakerLisp Machine 的主处理器是信用卡大小的单板计算机 (SBC),具有 50-MHz Zilog eZ80 和 1 MB 的 SRAM(可扩展至 16 MB)。还有一个用于运行实时时钟 (RTC) 的 CR1632 电池支架,而板上的 FAT32 微型 SD 卡插槽为您的程序和数据提供存储(请注意,电池和微型 SD 卡都不是包括在威廉希尔官方网站 板上,但两者都在商店中广泛使用)。

存储在板载闪存中的默认系统软件是 MakerLisp,它是 Scheme、Common Lisp 和 C 的混合体。不需要操作系统 (OS),这个“裸机上的 Lisp”提供从 Lisp 的直接访问程序到 eZ80 寄存器和外围设备。因此,您可以在更强大的处理器上执行 Arduino 类型的事情,同时在自托管的 Lisp 环境中进行编程。

现在,售价 129 美元的主处理器卡本身就很有趣,但 Luther 还创建了一些额外的板卡,它们一起构成了一个完整的计算机系统,如下所示:

首先,我们有一个 I/O 扩展板,它横跨图片的顶部(主处理器卡插入扩展板的左侧)。扩展板为额外的外部电源提供桶形插孔和插头引脚,以及调节的 5-V 和 3.3-V 电源。它还通过接头引脚提供对 eZ80 的所有 32 个通用输入和输出 (GPIO) 的访问,供可选板和面包板威廉希尔官方网站 使用。

接下来,我们有一个 USB HID 键盘控制器主板(在图像的中间右侧),它可以管理来自大多数常见 USB 键盘的输入。此外,我们还有一个 VGA 显示控制器板(在图像的中间左侧),它几乎可以驱动任何 VGA 监视器,以提供 30 行 × 80 列的 9 × 16 显示,代码页 437扩展的 ASCII 文本和图形人物。

此外,Luther 还创建了一个定制的激光切割木外壳来容纳所有 MakerLisp 板、USB 键盘和用于原型设计的面包板(请注意,该套件不提供面包板、USB 键盘、VGA 显示器和任何相关的电缆)。

整个系统包括主处理器卡、I/O 扩展板、USB 和 VGA 控制器板以及定制外壳,Tindie 的MakerLisp eZ80 Lisp 和 CP/M 机器售价 296 美元(加上运费)。

再次强调,该套件不提供 USB 键盘和 VGA 显示器,但可以从多个来源轻松获得。例如,Vortexgear Core 键盘和Elecrow 10.1 英寸 HDMI VGA 显示器。

只是为了让您体验一下可能性,Luther 的一位客户将一款名为 Black Box 的复古 BASIC 游戏移植到 MakerLisp 并参加了竞赛。他因对 Lisp 语言的专业使用而排名第五,第二名,这表明 Lisp 爱好者可以真正利用 MakerLisp 机器展示他们的技能并展示他们的东西。

最后但并非最不重要的一点是,关于 CP/M,Luther 告诉我这个端口目前正在进行中;事实上,它已成功启动并运行程序。CP/M BIOS 将与 Lisp 系统一起存在于 MakerLisp 处理器板的闪存中。“实时更新”闪存工具已经可用于安装 Lisp 系统的更新,当 CP/M 端口可用时,它将成为 MakerLisp 系统闪存更新的一部分。

那么,你说什么?你过去使用过 Lisp 还是现在有兴趣学习它?你是否和我一样,“咬牙切齿”地玩 MakerLisp 机器?

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分