MakerLisp Embedded Lisp Machine 面向用于物聯(lián)網(wǎng)邊緣的嵌入式系統(tǒng)的制造商和開發(fā)人員。
目前,復(fù)古計(jì)算和復(fù)古顯示技術(shù)似乎正在大規(guī)模復(fù)蘇。例如,僅考慮我最近的一些專欄:“適合 Altoids 糖果罐的微型計(jì)算機(jī)復(fù)古套件”、“超級(jí)酷復(fù)古 IBM 克隆計(jì)算機(jī) DIY 套件”和“拆分翻蓋顯示器引發(fā)懷舊浪潮”。
因此,您可以想象我被介紹給路德·約翰遜(Luther Johnson)這個(gè)超越復(fù)古的人的驚喜和喜悅。作為Lisp 編程語言和CP/M 操作系統(tǒng)的忠實(shí)擁護(hù)者,Luther 懷念 1970 年代末和 1980 年代初個(gè)人微型計(jì)算機(jī)的簡單性和即時(shí)性,因此他設(shè)計(jì)并構(gòu)建了自己想要的系統(tǒng),之后他決定把它提供給其他人玩。
讓我們從 Lisp 開始,它最初于 1958 年被指定,使其成為第二古老的高級(jí)編程語言(只有 Fortran 更老,一年)。作為最早的編程語言之一,Lisp 開創(chuàng)了計(jì)算機(jī)科學(xué)的許多思想。此外,它很快成為人工智能 (AI) 早期研究最喜歡的語言。令人驚奇的是,List 至今仍在廣泛使用。Lisp 的追隨者傾向于將其描述為“一種多范式語言,對(duì)命令式、函數(shù)式和面向?qū)ο蟮木幊叹哂谐錾闹С帧保渑u(píng)者則聲稱 Lisp 是“Lots of Insipid Stupid Parentheses”的縮寫。
當(dāng)然,Luther 是一個(gè)狂熱的愛好者,他對(duì) Lisp 的描述如下:
一般來說,解釋性環(huán)境(如 Forth、Basic、Python 和許多其他語言)非常適合快速原型設(shè)計(jì)和迭代開發(fā),您可以從開發(fā)和測試小塊拼圖開始,然后從可信組件構(gòu)建解決方案。在嵌入式系統(tǒng)開發(fā)中,這可能是一種特別高效的工作方式,在這種方式中,我們需要在開發(fā)軟件時(shí)觀察和了解與硬件的交互。
Lisp 語言家族[以其]簡潔的表達(dá)能力和[其]高“語義能量密度”而著稱。同時(shí),Lisp 是最簡單的語言之一,因?yàn)樗旧聿]有太多的語言需要學(xué)習(xí)。相反,您將大部分時(shí)間都花在思考自己的代碼上。由于 Lisp 的工作方式,以及從編寫 Lisp 程序的過程中演變而來的風(fēng)格,您的代碼可以更好地組合和組合在一起,并且您編寫的東西每次都可以工作,無處不在。Lisp 程序似乎用更少的代碼完成了更多工作。
Lisp 的 MakerLisp 方言是一種 Lisp,它具有表達(dá)式評(píng)估的 Scheme 模型、低級(jí)宏和具有通用 Lisp 拼寫和語義的語言函數(shù)、C 語言算術(shù)和標(biāo)準(zhǔn) C 庫函數(shù)。MakerLisp 系統(tǒng)是用可移植的 C 語言編寫的,它即時(shí) (JIT) 解釋了一種微小的核心語言。所有其他形式和功能都通過 Lisp 函數(shù)和宏提供。
具有 JIT 增量編譯的 Lisp 解釋器,如 MakerLisp,可以交付性能非常好的程序。Lisp 環(huán)境有利于快速完成工作,由此產(chǎn)生的“原型代碼”具有生產(chǎn)價(jià)值。嵌入式系統(tǒng)開發(fā)已經(jīng)夠難了。我們可以使用我們可以獲得的所有開發(fā)工具,并且我們可以在 Lisp 中利用的計(jì)算模型在嵌入式系統(tǒng)上與在其他問題領(lǐng)域中一樣高效。
盡管 MakerLisp 的 JIT 增量編譯比完全編譯的 Lisp 程序運(yùn)行得更慢,但它的運(yùn)行速度仍然比等效的 Python 代碼快三倍。不過這里的重點(diǎn)是,除了 Luther 之外,Lisp 還有很多粉絲。不幸的是,在面向物聯(lián)網(wǎng) (IoT) 邊緣的嵌入式系統(tǒng)制造商和開發(fā)人員的微控制器開發(fā)板中,您往往不會(huì)發(fā)現(xiàn) Lisp。所有這些都將我們帶到 Luther 的MakerLisp Embedded Lisp Machine:
MakerLisp Machine 的主處理器是信用卡大小的單板計(jì)算機(jī) (SBC),具有 50-MHz Zilog eZ80 和 1 MB 的 SRAM(可擴(kuò)展至 16 MB)。還有一個(gè)用于運(yùn)行實(shí)時(shí)時(shí)鐘 (RTC) 的 CR1632 電池支架,而板上的 FAT32 微型 SD 卡插槽為您的程序和數(shù)據(jù)提供存儲(chǔ)(請(qǐng)注意,電池和微型 SD 卡都不是包括在電路板上,但兩者都在商店中廣泛使用)。
存儲(chǔ)在板載閃存中的默認(rèn)系統(tǒng)軟件是 MakerLisp,它是 Scheme、Common Lisp 和 C 的混合體。不需要操作系統(tǒng) (OS),這個(gè)“裸機(jī)上的 Lisp”提供從 Lisp 的直接訪問程序到 eZ80 寄存器和外圍設(shè)備。因此,您可以在更強(qiáng)大的處理器上執(zhí)行 Arduino 類型的事情,同時(shí)在自托管的 Lisp 環(huán)境中進(jìn)行編程。
現(xiàn)在,售價(jià) 129 美元的主處理器卡本身就很有趣,但 Luther 還創(chuàng)建了一些額外的板卡,它們一起構(gòu)成了一個(gè)完整的計(jì)算機(jī)系統(tǒng),如下所示:
首先,我們有一個(gè) I/O 擴(kuò)展板,它橫跨圖片的頂部(主處理器卡插入擴(kuò)展板的左側(cè))。擴(kuò)展板為額外的外部電源提供桶形插孔和插頭引腳,以及調(diào)節(jié)的 5-V 和 3.3-V 電源。它還通過接頭引腳提供對(duì) eZ80 的所有 32 個(gè)通用輸入和輸出 (GPIO) 的訪問,供可選板和面包板電路使用。
接下來,我們有一個(gè) USB HID 鍵盤控制器主板(在圖像的中間右側(cè)),它可以管理來自大多數(shù)常見 USB 鍵盤的輸入。此外,我們還有一個(gè) VGA 顯示控制器板(在圖像的中間左側(cè)),它幾乎可以驅(qū)動(dòng)任何 VGA 監(jiān)視器,以提供 30 行 × 80 列的 9 × 16 顯示,代碼頁 437擴(kuò)展的 ASCII 文本和圖形人物。
此外,Luther 還創(chuàng)建了一個(gè)定制的激光切割木外殼來容納所有 MakerLisp 板、USB 鍵盤和用于原型設(shè)計(jì)的面包板(請(qǐng)注意,該套件不提供面包板、USB 鍵盤、VGA 顯示器和任何相關(guān)的電纜)。
整個(gè)系統(tǒng)包括主處理器卡、I/O 擴(kuò)展板、USB 和 VGA 控制器板以及定制外殼,Tindie 的MakerLisp eZ80 Lisp 和 CP/M 機(jī)器售價(jià) 296 美元(加上運(yùn)費(fèi))。
再次強(qiáng)調(diào),該套件不提供 USB 鍵盤和 VGA 顯示器,但可以從多個(gè)來源輕松獲得。例如,Vortexgear Core 鍵盤和Elecrow 10.1 英寸 HDMI VGA 顯示器。
只是為了讓您體驗(yàn)一下可能性,Luther 的一位客戶將一款名為 Black Box 的復(fù)古 BASIC 游戲移植到 MakerLisp 并參加了競賽。他因?qū)?Lisp 語言的專業(yè)使用而排名第五,第二名,這表明 Lisp 愛好者可以真正利用 MakerLisp 機(jī)器展示他們的技能并展示他們的東西。
最后但并非最不重要的一點(diǎn)是,關(guān)于 CP/M,Luther 告訴我這個(gè)端口目前正在進(jìn)行中;事實(shí)上,它已成功啟動(dòng)并運(yùn)行程序。CP/M BIOS 將與 Lisp 系統(tǒng)一起存在于 MakerLisp 處理器板的閃存中?!皩?shí)時(shí)更新”閃存工具已經(jīng)可用于安裝 Lisp 系統(tǒng)的更新,當(dāng) CP/M 端口可用時(shí),它將成為 MakerLisp 系統(tǒng)閃存更新的一部分。
那么,你說什么?你過去使用過 Lisp 還是現(xiàn)在有興趣學(xué)習(xí)它?你是否和我一樣,“咬牙切齒”地玩 MakerLisp 機(jī)器?
審核編輯 黃昊宇
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3620瀏覽量
129684 -
制造商
+關(guān)注
關(guān)注
0文章
146瀏覽量
13184 -
LISP
+關(guān)注
關(guān)注
0文章
12瀏覽量
7746
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論