なでしこ2.0 C言語版

C言語でなでしこを書き直そうプロジェクト。いつかやりたい。

→現在、なでしこ2.0の本流として、C#版が進行中。

Windows/Mac/Linux で、なでしこを動かせるようにする。

つまり、言語コアのみどのOSでも動くようにしておく。OSごとにライブラリを書き直すのが大変なので、なるべく、なでしこ自身でライブラリが書ける体制にする。

とりあえず、要望を募集中。

なでしこ2.0/要望 に要望を書き込んでおくと吉。

【議題】

  • GC(ガベコレ)はどうするか。
    • ガベコレ必要か?現在の参照カウンタ方式で十分かも。
  • メモリ管理はどうするか。
    • はじめにだだーっと確保しておいて、少しずつ分ける。組み込み機器でも動くように考慮する。メモリサイズを制限して、確保しすぎると勝手に落ちるようにすると安全でCGIで動かしたとき嬉しい。
  • 新しい文法は?
    • 単語の区切り方・・・互換性重視だと、従来の助詞区切りで。
      • 「おから」「きのみ」という変数を定義したい場合どうするか?
      • 形態素解析は必要か?→辞書を持つのはナンセンスでしょう!
  • オブジェクト指向はどうするか?
    • 廃止でも問題ない感じ。もっと文法は単純にすべき。
    • 廃止しないならば、仕様を整理&機能追加の必要有り。
  • コンパイラコンパイラは利用するか?
    • 利用する場合でも、現状の文法の場合、スキャナとパーサの間に正規化のためのトランスレータが必要。

【決定したこと】

  • 実行方式:なでしこ→抽象度の高いバイトコード→インタプリタで実行
    • 形式:なでしこ2.0/バイトコード
    • 抽象度の高いバイトコードにして、他の言語(C/Java/ActionScript/PHP)への変換が容易な状態にしておく。
  • 文字コード
    • 入力:自動判定、デフォルトは、UTF-8N
    • 内部:UNICODE
    • 出力:指定コード、デフォルトは、UTF-8N