elk 專案為微控制器開發了一個緊湊的 JavaScript 引擎

新版本的 elk 2.0.9 JavaScript 引擎現已推出,旨在用於微控制器等資源受限的系統,包括具有 32KB RAM 和 2KB 快閃記憶體的 ESP30 和 Arduino Nano 板。 要運行提供的虛擬機,100 位元組記憶體和 20 KB 儲存空間就足夠了。 此專案代碼是用C語言編寫的,並在GPLv2許可證下分發。 要建置該項目,C 編譯器就足夠了 - 無需使用其他依賴項。 該專案由物聯網設備作業系統 Mongoose OS、mJS JavaScript 引擎和嵌入式 Mongoose Web 伺服器(用於西門子、施耐德電氣、博通、博世、谷歌、三星和高通等公司的產品)的開發人員開發)。

Elk 的主要目的是為 JavaScript 中的微控制器建立韌體,以執行各種自動化任務。 該引擎也適合將 JavaScript 處理程序嵌入到 C/C++ 應用程式中。 要在程式碼中使用該引擎,只需將 elk.c 檔案放在原始程式碼樹中,包含 elk.h 頭檔並使用 js_eval 呼叫即可。 允許從 JavaScript 腳本呼叫 C/C++ 程式碼中定義的函數,反之亦然。 JavaScript 程式碼使用不產生字節碼且不使用動態記憶體分配的解釋器在與主程式碼隔離的受保護環境中執行。

Elk 實作了 Ecmascript 6 規範的一小部分,但足以創建工作腳本。特別是,它支援一組基本的運算子和類型,但不支援陣列、原型、this、new 和 delete 表達式。 建議用let代替var和const,用while代替do、switch和for。 沒有提供標準庫,即沒有這樣的 Date、Regexp、Function、String 和 Number 物件。

來源: opennet.ru

添加評論