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