サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
cis.k.hosei.ac.jp/~nakata
prev← up↑ →next 4.1宣言部 C言語の大域変数や関数などの宣言および符(token)や符の優先順位などを宣言します。符は、lexのアクションの戻り値を利用します。そのためにlexのアクションには戻り値が必ず必要になります。実際の戻り値は、与える必要がなくその代わりに、マクロ文字列になる大文字列をreturn文の引数に記述しておきます。そのマクロの宣言とその値の割り当ては、yaccのプログラムをコンパイルする時に自動的に行われます。(257から順に出現順に従って割り当てていきます。) C言語のコード C言語のコードも記述することができ、変数や関数の宣言に用いられます。Cのコードを記述する際には、以下のようにlexの定義部同様%{と%}で囲んで書きます。 C言語の宣言 この部分には、大域変数の宣言やマクロ宣言などを記述します。 符の宣言 ここで宣言した符のみが以下のルール部で終
prev← up↑ →next 4.jayの使い方(簡略版) jayはyaccのJava版です。 http://www.informatik.uni-osnabrueck.de/alumni/bernd/jay/ からダウンロードできます(jay tutorial examples という名前のものをダウンロードするといいでしょう)。 ここにもcode.tar.gzや code.zipが置いてあります。 インストールの仕方を見て、インストールしてください。 ここでは、lexのJava版としてはJFlexを使うことにして話を進めます。 jayのプログラムはyaccのプログラムと同じように、宣言部、ルール部、プログラム部の3部構成になっています。各部の区切り記号は、%%です。%%だけが書かれた行が区切りになります。 yaccプログラムの構成
このページは,CまたはJavaが利用できることを前提に,コンパイラ演習で利用するソフトウェアツールの利用方法などの簡単な説明を集めたページです.各自の開発環境に合わせて,参考にして下さい. 環境整備 cygwinを利用する場合は, cygwinのインストール を参考にして下さい. Linuxを利用する場合は,ツールの有無をwhichコマンドなどを利用して確認し,インストールされていない場合は,各自で必要なツールをインストールして下さい.既にインストー済みの場合は,そのまま利用して下さい. Cで開発する場合 LL C言語だけで開発して下さい. LALR yacc/lexまたはbison/flexを使って下さい.使い方(簡略版) Javaで開発する場合 LL javaCCを使って下さい.使い方(簡略版) LALR jay/jflexを使って下さい.使い方(簡略版) その他のツール 機能拡張版c
スタックマシンとは,プログラムを記憶しておく領域以外にデータの記憶領域としてスタックのみを用いた計算機のことです. 例えば,3+5を計算する際には,まず3をスタックの一番上に置き, 次に5をその上に積みます. この状態で,「加算する」という命令を実行すると、スタックから 3と5を取り除いて、その二つの数を加えたものを代わりに置きます。 したがって、3や5が無くなって,一番上のスタックに8が残ります. すなわち,何かを積む,何かを積む,加算するというような後置記法 の要領で計算をすることになります.「積む」,「加算する」などが スタックマシンに対する命令になります. 3+4-5は,「3を積む」,「4を積む」,「加算する」,「5を積む」,「減算する」という一連の命令になりますので,スタックマシンの命令語で書くと LDC 0 3 ←3を積む LDC 0 4 ←4を積む AD 0 0 ←加算する
このページを最初にブックマークしてみませんか?
『cis.k.hosei.ac.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く