web-dev-qa-db-ja.com

小さな埋め込みプロジェクトに適したインタプリタ言語

mbed microcontroller に小さな ARM Cortex M が付いています。基本的に、プロジェクトの有効なリソースは、25 KBのRAMと400 KBのFlashです。I/ Oの場合は PS/2 キーボードが必要です。 、VGAフレームバッファ(文字出力付き)、および SDカード プログラムの保存/ロード用(おそらく数MBまで)。

物事に実装するプログラミング言語を理解しようとしているので、私は尋ねます。私は実装が簡単で、リソースを無駄にしないインタプリタ言語を探しています。私はこれも少なくともデバイス自体に書き込むことができるようにするつもりですが、エディターは解釈できます(そう、ブートストラップ)。

とにかく、私はいくつかの単純な言語を見てきました。いくつかの素晴らしい候補:

誰かがこのようなことをしたり、この法案に適合することができる言語を知っていたり、これまでに私の3人の候補者についてコメントしたりしていますか?

8
Earlz

あなたが説明したことについては、FORTHがおそらく理想的です。 FORTHはあなたのものよりずっと小さなプラットフォームで日常的に動作します。 (合計16KはFORTHの大きなマシンです。)以前にFORTHを見たことがない場合は、深刻な学習曲線が含まれることになります。

(私が覚えているように)TinySchemeと呼ばれるScheme実装があり、一見の価値があるかもしれません。私は最初に、スラッシュドットの作品から、それをマルウェアエンジンのコアとして使用した男について聞いた。 (そうです、そうです。彼の仕事は、何かのためにマルウェアを作成することでした。TinySchemeでそれを行うと、ペイロードが大幅に小さくなる可能性があります。)

6
John R. Strohm

Lua が断然あなたの最善の策であると主張します。 Luaは、Cを実行できる場所ならどこでもコンパイルできます。これは、最も軽量なスクリプト言語の1つです。言語として非常に柔軟であり、スキルは非常に移転可能です。 Lua の特別に埋め込まれたバージョンもあります。

補遺:明らかにメモリフットプリントを25K強に減らすのは 可能 です。

補遺2-物事がおかしくなります:これによってもたらされるオプションがあります SO質問Squirrel は、聞いたことはあるが使用したことのない言語です。参照カウントを使用しているため、Luaよりも明らかに小さいです。

11
World Engineer

Tcl/Tkとそのルーターでの使用について少し前に読んだことを覚えています。

http://www.tcl.tk/about/uses.html にある「組み込み開発」の段落からの抜粋:

Tclは非常にコンパクトな言語であり、特別なハードウェアと簡単に統合できるため、組み込み開発の一般的な選択肢です。 Tclは、シスコやその他のネットワーク製品やTivoを含むセットトップボックスなど、多くのデバイスに隠されています。もちろん、他のソフトウェアプロジェクトにTclを埋め込むことも非常に人気があり、電子設計自動化(EDA)やコンピューター支援設計(CAD)アプリケーションなど、一部の業界では支配的な制御言語になっています。

1
davidk01

埋め込み可能なスクリプト言語に関して、私がよく知っている2つは [〜#〜] lua [〜#〜] および [〜#〜]ポーン[〜#〜]

Python&組み込みシステムに移植された他のそのような言語のバージョンがあると思いますが、それらは組み込みLinuxの種類である傾向があります。プラットフォームによっては(8Kの小さなMCUであるかどうかはわかりません) ROMまたは組み込みPC)オプションの場合があります。

1
Yusubov