/Omega-version0.2.3

自作言語「Omega言語」の大幅進化版。

Primary LanguagePythonBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Omega言語-version0.2.3

私が独自に開発している「Omega言語」が大幅にグレードアップして帰ってきました。 今回変更した事項は、つぎの六つです。

  • 変数定義「let」の導入
  • if文の導入
  • while文の導入
  • いくつかの標準関数の設定
  • ちょっと高速化
  • 仮想機械実行化

また、文法も大幅に変更しました。

サンプルコード

このコードは、数当てゲームを表しています。 (omegaディレクトリ内のkazuate.om)

def :main():
    input">"inp;
    if inp == dango = {test()};
    println_残念!;
    end;

def :test():
    println_正解!!;
    println_ゲームを続けるならy、やめるならnを入力してください。;
    input"=>"ans;
    if ans == y = {start()};
    exit;

def :start():
    while_True = {main()};
    end;

start()

  • 今回は「厳格な関数型言語」とし、すべて関数でまとめたかったので、if / whileの中では関数呼び出ししかできないようにしています。 ですので、通常よりもコードが長くなりやすいという欠点があります。
  • また、標準出力では変数か、それともただの文字列なのか、出力対象を自動で分ける機能がついております。
  • 指定がければ、データはすべてint型で扱われます。

実行

binディレクトリの中に、(多分)「Omega.pyc」という名のコンパイル済みバイナリファイルがあると思われます。 そのファイルのパス + 実行したいファイルのパス とプロンプトに入力しますと、実行できます。

最後に

一週間ちょっとで作ったので、コードが荒いです。ご了承ください。 ついった始めました。=> https://twitter.com/dangomu39300363 Qiita => https://qiita.com/ThinkpadL540 今後のモチベのためにもフォローしていただけるとうれしいです!!