* ES-C -(by [[K]], 2020.02.16) ** (0) はじめに -ES-CはEssen開発プロジェクトのサブプロジェクトで、ES-BASICのC言語版です。 -でもES-BASICがかなり適当に作っていたのに対して、ES-Cは他の野望も意識して、もう少し丁寧に作ります。 ** (1) ES-Cにて盛り込まれる予定の野望(= ES-Cはもはやただの言語ではありません!) -(1-1) ES-Cで書くと、C言語の関数が作れるわけだけど、それをES-C本体から必要に応じて呼び出すことで、言語の拡張が動的にできる(ES-Cの再ビルドなどは不要) --(同じことは、まあES-BAISCでもできなくはないのですが、[[K]]はBASICで言語拡張をしたいとは思っていないので、今のところ開発予定はありません。) -(1-2) ES-Cは移植性の高いC言語を目指す。intやlongのビット幅やエンディアンが異なっても、ソースを一文字も直さずに動くことを目指す。またデータファイルやメモリイメージを異なるアーキテクチャに自動でコンバートすることもできる。 --状態保存して、他のアーキテクチャで状態復元して再開することもできる。 --アセンブラを併用した部分がある場合は、その部分の移植は必要になる(そこは積極的にはフォローしない、消極的には支援する)。 --OSによる差異も言語処理系や標準ライブラリで吸収する。 --(同じことは、まあES-BAISCでもできなくはないのですが、(以下略)) -(1-3) セキュリティやデバッグ支援にも力を入れる。→[[seclang01]] --(同じことは、まあES-BAISCでもできなくはないのですが、(以下略)) ** (2) ES-CとOSASKの関係 -OSASK(おさすく)は[[K]](=私)が2000年から作っていた超軽量型のOSです。 -OSASKは、アプリケーションの状態保存、エミュレーション機能(=移植作業を不要にする技術)、デバッグ支援機能、などの実装を計画していました。現在OSとしてのOSASKの開発は休止中ですが、私はこれらの理想をあきらめたわけではなく、OSとして実現するのではなく、言語処理系で実現しようと考えています。 -OSを作るとなると、ハードウェアの進歩に合わせてOSもアップデートしていかなければならず、それは[[K]]個人では大変な負担です。そういう状況なのであれば、ハードウェアのサポートなどは既存のOSたちに任せて、私は私の実現したい機能(上記の機能)に集中して開発するほうが実現が早まると考えています。そういう考えがあったので、あえてOS屋から言語屋に転職(?)したのです。 -もちろん、これらの機能を当初の予定通りにOSで実現していたら、記述言語によらずに、アプリの状態保存、エミュレータ機能、デバッグ支援機能が得られるわけです。そのほうがすごいのは間違いないのですが、私の(限られた)実装能力を考えると実現可能性が下がってしまうな・・・と。 --一方で、言語で作るメリットとしては --一方で、言語で作るメリットとしては既存OSのユーザと競争関係にならずに済むので、みんな仲良しでいられるかもしれません(既存言語ユーザとは競争関係になりますが)。 * こめんと欄 #comment