是否存在具有 Lisp 语义和 C 低级操作的 Lisp 方言?诸如检索任意内存地址(虚拟内存或物理内存)并对其进行处理;指向硬件设备的指针...
例如:
(defvar a '(1 2 3 4)) ;; I have a list
(defvar b (cdr a)) ;; b is the cdr of a. But I want b to
;; actually refer to the tail of a
(setf b '(4 5 6)) ;; b now has new value, but a remains unchanged
我想要的是使用 Lisp 来表达低级问题。例如,在裸机上运行 Lisp 时如何控制单个字节和位?在 C 语言中,我可以获得一个指针并执行指针运算以指向内存空间(虚拟或物理)中我想要的任何位置。指针也可以指向硬件设计者定义的设备和任意地址。
为什么我需要这个?好吧,我想学习如何在低级编程中使用 Lisp。从长远来看,我想写一个简单的操作系统来学习,但是在 Lisp 中。我也会用 C 写一个来初步理解,但如果我只能用 C 写,我怎么能确定并说我理解如何实现一个操作系统呢?我想只有当我能用 C 以外的其他语言编写操作系统时,我才能真正理解如何实现操作系统。
我不想为操作系统编写诸如 C 核心之类的东西,而为其他一切编写诸如 Lisp 之类的东西。