• 締切済み

教育用コンパイラ

VB6やVB.NETで作られた教育用コンパイラを探しています。 できればソースから勉強したいです。 VisualStudio6,2005を持っているので、VB以外の言語で作られたものでも構いません。 スキャナーは理解できましたが、パーサー(構文解析)部と構文実行部が理解できていません。

  • hdkoa
  • お礼率0% (1/117)

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

どういうものを「教育用」と呼ぶのか基準が良くわかりませんが (yaccとかAntみたいのを使っちゃいけないとか?)、 この本に載っているのはC#を使っていて、わりとわかりやすい つくりだったと思います。 コンパイラ入門 C#で学ぶ理論と実践 (ソフトウェア実践講座): 本: 冨沢 高明 http://amazon.jp/dp/4797331690 VB(.NETも含め)によるものってのは見たことないですね。

関連するQ&A

  • WinAPIに用いるコンパイラコンパイラ

    私はウィンドウズのアプリケーションを作るのに、Visual StudioのC++を用いてます。これに簡単なスクリプトファイルを加えてグラフィックを作成しようと考えていますが、そのスクリプトを解析するのにコンパイラコンパイラを勉強を兼ねて使用しようと思いました。 コンパイラコンパイラには沢山種類があるかと思われます。私が思いつくのは、boostや、yacc/lexです。 この環境でコンパイラコンパイラをソースとして加えるのなら皆さんなら何を用いますか。出来れば理由も加えて教えてください。ちなみに、コンパイラコンパイラを勉強したいので、簡単にできる文字を取り組んで比較と言った事以外でお願いします。

  • パーサとコンパイラの違いって?

    C++を勉強中で、小さなソフトをいくつか作ったのですが、パーサという概念があることを知りました。 構文解析をするという点ではコンパイラと同じようなものに感じるのですが、パーサとコンパイラはどのように違うのでしょうか?? 詳しい方いらっしゃいましたらご教示頂けると幸いです。

  • Microsoftのコンパイラについて

    初めてまして C言語、VB等の言語を勉強したいのですが、Microsoftから無償のコンパイラは提供されているのでしょうか? もし、ご存知の方いらしましたら、教えていただけるとありがたいです。

  • コンパイラの構文解析(上向き)の習得

    コンパイラの仕組みについて興味があり勉強しています。 構文解析について下向きの再帰降下法についてはコンパイラの入門書などにも説明があり、簡単なものであれば自分でコードを書けるレベルになりました。 次にyaccなどに使用されているという上向きの構文解析法(LR/SLR/LALR等)を学びたいと思いましたが、良い資料が見つかりません。 具体的には理論の説明(集合の式等が理解しにくいです)だけではなくて、簡単な式などを評価するソースコードや実際の動作が解説されているものがあれば嬉しいです。 ネット上あるいは市販の3000円台程度の書籍で良いものがありましたらご紹介いただけると嬉しいです。 よろしくお願いします。

  • GNUコンパイラとIntelコンパイラの違いについて

    今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?

  • gccコンパイラー

    今、gccでコンパイルするc言語のコンパイラーを探しています。 フリーでダウンロードできるいいコンパイラーはないでしょうか。 お勧めなどがありましたら教えてほしいです。 あと、C言語ではgccやbcc等のコンパイラーで プログラムソースの書き方容が変わったりするものなのでしょうか? 一応、ボーランド?のコンパイラーは持ってます。 ただ、今度OJTでUNIX環境のc言語開発の現場に行く事になり gccでコンパイルするもので勉強しとくようにいわれています。 宜しくお願いします。

  • オブジェクト指向コンパイラのインスタンスの構造について

    インタプリタやコンパイラの中身について興味があり勉強しています。といってもまだ簡単な字句解析や構文解析のレベルです。 読んだ本にはオブジェクト指向言語については書かれていませんでした、そこで一つ疑問に思ったこと点について質問させてください。 簡単な言語の場合、使用する変数が宣言されると、その領域がスタックやヒープ空間に確保されるという風に理解しました。 一方オブジェクト指向言語にて、あるクラスのインスタンスを生成した場合を考えます。インスタンスには変数の他に関数やメソッドといった処理手続きが含まれていますよね。その手続きをコンパイルしたコードは何処に置かれているのでしょうか? 手続きのコードもヒープ空間に確保された各インスタンスの領域にコピー(?)されて実行されるのでしょうか。それとも処理手続きの実体は実行プログラムに含まれていて全インスタンスで共通で利用するようになっているのでしょうか。 初心者の素朴な疑問です、ご回答いただければ幸いです。

  • コンパイラ

    プログラミングの勉強の為にC言語の 新版 明解C言語 入門編[http://www.amazon.co.jp/dp/4797327928/] という本が手元にあるのですが、この本にある プログラムを入力し、ビルドし、実行できるコンパイラ(無料の)を 捜しています。何かいいものありませんか?

  • コンパイラ、インタプリタ、クロスコンパイラについて

    インタプリタについて質問があります。 色々と調べたところ、perl、php、rubyなど、ソースをインタプリタで実行する言語の利点は以下なのだと思います。 ソフトを作っている環境と実行環境の間でcpuやos等が異なる場合は、 ソースは互いに異なる機械語に翻訳されるので、翻訳は実行環境で行わなければならない。 その際、コンパイラの場合はわざわざ手動で翻訳を実行しなければならないが、 インタプリタの場合は勝手に実行時に翻訳してくれるので楽。 1.それで質問なのですが、 コンパイラは環境に対応した機械語を出すらしいですが、 何故そんな事ができるのでしょうか。 コンパイラが、自身が置かれた環境を分析して、それに対応した機械語を出すのでしょうか? それとも、そもそも環境毎に対応したコンパイラを使うという事でしょうか? 2.また、世の中にはクロスコンパイラというものがあると聞きました。 クロスコンパイラがあれば、ソフトを作っている環境でそのままコンパイルできるので、 インタプリタはいらないのではないでしょうか? クロスコンパイラの短所や長所などを教えてほしいです。 3.翻訳後の話として、機械語はcpuやosによって違うという話ですよね。 つまり、機械語にコンパイル済みのソフトを配布する際は環境毎に対応したソフトを それぞれ配布しなければならないのですよね。 しかし、ネット上でダウンロードできるフリーのソフトなんかは、 特定のOS向け、あるいはOS別に違うファイルを配布、というのはよく見かけますが、 cpuやその他の環境毎に配布物を分けているのは見たことがありません。 機械語は、本当にos以外にも依存するものなのでしょうか?

  • SQLの構文解析

    プログラミング初心者ですがよろしくお願いします。 SQL文の字句、構文解析を行いたいと思っていて、SQL文が書かれたテキストファイルを入力とし、構文木もしくはそれににた情報を出力できるようなものがほしいです。 どこかにSQL構文のパーサーのソースコードライブラリは無いでしょうか?できればフリーがいいです。 C言語やflex,bisonなどのソースコードがあればいいのですが探しても見つかりません。どなたかご存じありませんか?よろしくお願いします。