• ベストアンサー

C言語の事

jactaの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

#1です。 やや説明不足だったこともあり、必要以上に難度が高い印象を与えたようです。 まず、実用的なコンパイラを作成する方法ですが、機械語やアセンブリ言語を直接出力するのは、コンパイラ・ベンダーとかでない限り(多くの場合)無意味です。 ではどうするかですが、C言語のソースコードを出力すればよいのです。つまり、 自作言語のソースコード → C言語のソースコード という変換を行うトランスレータを作成します。 そして、そのトランスレータとCコンパイラを順に実行させるためのコンパイラ・ドライバを作成します。 インチキくさいと思われるかもしれませんが、FortranやAdaのコンパイラは、こういう方式をとることがよくあります。C++も初期のものはこの方式でした。 この方法であれば、ネイティブコードの最適化などは一切考える必要はなく、インタープリタとさほど変わらない難度で実現できます。 GCCなどを使えば、かなり多くのターゲットに対応したクロスコンパイラを実現することもできます。そして、本当にマルチターゲットを実現するには、トランスレートの結果出力するC言語のソースコードは、十分に移植性の高いものでなければならず、その点でもかなり実力の向上が見込めます。 また、これを応用して、C言語ではなく、C#へのトランスレータを作ってやれば.NET対応のコンパイラを作れますし、Javaへのトランスレータを作ってやればJVM対応のコンパイラを作ることができます。

noname#35759
質問者

お礼

インタープリタを作るにあたって調べたんですが 資料が少ないのと、難しすぎるかもしれません 他に簡単な物は無いのでしょうか? C言語のサイトって基礎コードしか無くて困っています ファイルコンバーダーってのが気になります

関連するQ&A

  • OSXでC言語!!

    OSXのC言語で Windowsとかボタンとかを表示するにはどうすれば良いんですか? XcodeのGUIでボタンとかを付けられるんですが どのプロジェクトを使えばいいか分かりません C言語でかけるプロジェクトはcocoa? carbon? そのへんもよく分かりません 質問したいのは ウインドウとボタンをGUIを使わないで表示する コードと C言語でかけるプロジェクトです 教えて下さいお願いします

  • C言語を学ぶ理由が知りたいです!

    高校一年です。 タイトルどおり、C言語を学ぶ理由をしりたいです。 僕は、普段使ってるソフトのようなGUIアプリが作りたいです。 しかし「やさしいC」という本を買ったのですがCUIのことしか書いてありません。 GUIアプリを作りたい場合は、C言語じゃだめなんでしょうか? もしC言語でGUIアプリが作れるならどうのようにして作るのか教えてください かなりの初心者です。あまり難しい言葉を使わないでいただけると嬉しいです。

  • OSXでC言語

    C言語を学んでる者です コマンドラインのプログラムに飽きてきました ウインドウなどボタンを使いたいんですが cocoaなどcarbonなどは使いたくありません 調べましたらtoolboxを呼び出してウインドウやマウス操作をするようなことが書かれていたんですがよくわかりません OSXでC言語のみでXcodeなど使わないで Windowsみたいにウインドウなどボタンを表示させる関数などライブラリなどあるのでしょうか? OSXだと情報が少な過ぎて困っています 誰か教えて下さいお願いします

  • MacでC言語

    MacでC言語するのはやめた方が良いと思いますか? cocoaをやろうかと思ってるんですが carbonには将来性はありませんよね? C言語などをするならWindowsの方が向いてますか? 詳しく教えて下さい

  • cでなぜguiアプリが作成出来るのか。

    cでなぜguiアプリが作成出来るのか。 現在cについて学習中です。 テキストエディタで書きターミナルで実行しています。 cではアプリが作れるようになるといいますが 現在のままではcuiのソフトしかできる気がしません。 一般的に言われるアプリケーションというものを 作成するにはまた別の手段が必要なのでしょうか。

  • C言語初心者です。

    C言語初心者です。 Macを使用しています。 概要を理解したいので教えてください。 コードをかく   ↓ 実行する   ↓ 結果が表示される というようなイメージなのですが違うでしょうか? gcc コンパイラ ターミナル X-code などが必要だというのはわかります。 しかしそれらをどのように、つかうかわかりません。 どなた様か初心者にもわかるように簡単に一から教えてください。 よろしくお願いいたします。

  • C言語って何に使うの??

    僕は中2で、C言語を独学で学んでいるのですが、よく考えるとC言語って何に使うんですか?? 本に書いてあるのは簡単な計算や石取りゲームなどの実用的ではない物です。 どんなことに使っていますか?

  • C言語(Windows)からUNIXに移植したことある人

    C言語(Windows)からUNIXに移植したことある方はいらっしゃいますか? ある方がいらっしゃいましたら、移行の仕方等教えて下さい。その際の 注意点等ありましたらお願いします。 やろうとしていることは、Windowsの通信制御アプリをSolarisに 移植です。なのでWinsock関係などの情報が知りたいです。 通信制御アプリなのでCUIだと思いますが、もしGUIの場合UNIXではどうなるのでしょうか?

  • C言語でアプリを作ってみたい

    C言語をある程度覚えたんですが ファイルコンバーターなど難しいので簡単な物がいいです 時計タイマーなどおもしろいソフトを作りたいんですが どういう場所を参考にすればいいでしょう? オセロゲームなどジョーク的な物がいいです 画像をモノクロにするとか簡単なものがいいです どなたか良いアプリ提案お願いします

  • c言語でのカーソル移動(?)について

    C言語でCUIに表示された20*20の●をカーソルで移動するプログラムを作ろうと思い、 カーソルでの移動の部分でカーソルのアスキーコードを探しても無く、どうプログラムしたら良いのかがわからなくて、困っています。 やり方を教えていただけませんでしょうか?