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 處理器板的閃存中?!皩崟r更新”閃存工具已經可用于安裝 Lisp 系統的更新,當 CP/M 端口可用時,它將成為 MakerLisp 系統閃存更新的一部分。
那么,你說什么?你過去使用過 Lisp 還是現在有興趣學習它?你是否和我一樣,“咬牙切齒”地玩 MakerLisp 機器?
審核編輯 黃昊宇
-
嵌入式系統
+關注
關注
41文章
3570瀏覽量
129251 -
制造商
+關注
關注
0文章
144瀏覽量
13118 -
LISP
+關注
關注
0文章
12瀏覽量
7715
發布評論請先 登錄
相關推薦
評論