* 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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS