七誌の開発Wiki - LLPML

Low Level Programming Markup Language (LLPML)


C#とJavaScriptを混ぜたような独自言語によるネイティブコンパイラです。
  • CompilerLibを利用しています。
  • C#で作成されているため、コンパイラの動作には.NET Frameworkが必要です。
  • 出力はネイティブバイナリです。.NET Frameworkに依存しないためランタイムなしで動きます。
  • LLPMLと同等のものをLLPMLで書き直しているのがAndromedaです。

現在の方針

  • 名前に Markup Language と付いているのは、当初XMLでプログラムの記述を行っていた名残です。現在はXMLを使用していません。
  • C言語にC++やC#の要素を取り入れて焼き直したような言語です。
  • 構文がJavaScript風なのは、パースが簡単だからです。なるべくC#と同じ記述を取り入れたいと考えていましたが、実装の都合による妥協などもあり、現時点ではC#から乖離しています。
  • 自分自身を記述するのに必要な要素を実装します。
  • ちょっとした工夫(あれば便利で実装もあまり難しくない機能)もなるべく取り入れます。
  • マングリングを避けるため、関数のオーバーロードはサポートしません。
  • 自分自身の記述に不要なため、64bit整数型や浮動小数点数型(float, double)はサポートしません。
  • 型推論による多相型、もしくは明示的なgenericsは、実装がかなり難しいと思われます。実装が望ましい機能ですが、ちょっとした工夫の枠内を超えているため、現時点では見送ります。
  • 以上は必要に応じて変更する可能性があります。

リポジトリ

ダウンロード

過去のリリース