タグ

Languageに関するnoiman2004のブックマーク (3)

  • PL/0 - Wikipedia

    PL/0(ピーエルゼロ)はプログラミング言語の名称。少なくとも2種類の言語が知られており、その1つは IBM の汎用プログラミング言語 PL/I のサブセットである。 項で詳述するもう一方のPL/0は、教育目的でPascalを簡略化したバージョンのプログラミング言語である。主にコンパイラの設計開発の実例として使用される。1975年、ニクラウス・ヴィルトの著書 Algorithms + Data Structures = Programs で紹介されたのが最初である。言語の構成要素は非常に小さく、実数はサポートしておらず、算術演算子も必要最小限で、"if" と "while" 以外の制御構文を持たない。そのような様々な制限があるため、この言語で実用的プログラムを書くのは現実的ではないが、コンパイラ自体は非常に小さく単純に作成可能である。 program = block "." . bloc

  • プログラム言語の文法はどうやって定義されるのか?

    プログラム言語の文法はどうやって定義されるのか?:Javaでコンパイラの基礎を理解する(4)(1/2 ページ) 前回までの解説でコンパイラが生成するオブジェクトコードとそれを実行する仮想マシンについては理解できたはずです。コンパイラが出力するものについては明確にできましたから、次はコンパイラへ入力するソースコードについて考えることにします。 ソースコードには、プログラムを記述することになりますから、それをどのように記述するかを自分で決める必要があります。つまり、プログラム言語の文法を自分で定義するのです。今回はこの方法について解説をします。 コンパイラの仕様(どのように動くか? を決める) 連載でターゲットとしている仮想マシンは非常に単純なものですから、バイナリファイルを毎回手作業で作成することも可能です。 とはいえ、簡単な計算をするために毎回この作業をするのは大変ですから、普段使い慣れ

    プログラム言語の文法はどうやって定義されるのか?
  • Piet - Wikipedia

    push 値をスタックに詰め込む。 pop 値をスタックから取り出す。 add 値を2つスタックから取り出し、加算した結果をスタックに詰める。 subtract 値を2つスタックから取り出し、2番目の値から1番目の値を減算した結果をスタックに詰める。 multiply 値を2つスタックから取り出し、乗算した結果をスタックに詰める。 divide 値を2つスタックから取り出し、2番目の値を1番目の値で除算した結果をスタックに詰める。 mod 値を2つスタックから取り出し、2番目の値を1番目の値で除算した際の余りをスタックに詰める。 not スタックの一番上の値が0でなければ0に、0であれば1に変更する。 greater 値を2つスタックから取り出し、2番目の値が1番目の値より大きければ1、そうでなければ0をスタックに詰める。 pointer 値を1つスタックから取り出し、その値の回数だけDP

    Piet - Wikipedia
  • 1