- ベストアンサー
C言語の事
jactaの回答
- jacta
- ベストアンサー率26% (845/3158)
#1です。 やや説明不足だったこともあり、必要以上に難度が高い印象を与えたようです。 まず、実用的なコンパイラを作成する方法ですが、機械語やアセンブリ言語を直接出力するのは、コンパイラ・ベンダーとかでない限り(多くの場合)無意味です。 ではどうするかですが、C言語のソースコードを出力すればよいのです。つまり、 自作言語のソースコード → C言語のソースコード という変換を行うトランスレータを作成します。 そして、そのトランスレータとCコンパイラを順に実行させるためのコンパイラ・ドライバを作成します。 インチキくさいと思われるかもしれませんが、FortranやAdaのコンパイラは、こういう方式をとることがよくあります。C++も初期のものはこの方式でした。 この方法であれば、ネイティブコードの最適化などは一切考える必要はなく、インタープリタとさほど変わらない難度で実現できます。 GCCなどを使えば、かなり多くのターゲットに対応したクロスコンパイラを実現することもできます。そして、本当にマルチターゲットを実現するには、トランスレートの結果出力するC言語のソースコードは、十分に移植性の高いものでなければならず、その点でもかなり実力の向上が見込めます。 また、これを応用して、C言語ではなく、C#へのトランスレータを作ってやれば.NET対応のコンパイラを作れますし、Javaへのトランスレータを作ってやればJVM対応のコンパイラを作ることができます。
関連するQ&A
- C言語を学ぶ理由が知りたいです!
高校一年です。 タイトルどおり、C言語を学ぶ理由をしりたいです。 僕は、普段使ってるソフトのようなGUIアプリが作りたいです。 しかし「やさしいC」という本を買ったのですがCUIのことしか書いてありません。 GUIアプリを作りたい場合は、C言語じゃだめなんでしょうか? もしC言語でGUIアプリが作れるならどうのようにして作るのか教えてください かなりの初心者です。あまり難しい言葉を使わないでいただけると嬉しいです。
- ベストアンサー
- C・C++・C#
- MacでC言語
MacでC言語するのはやめた方が良いと思いますか? cocoaをやろうかと思ってるんですが carbonには将来性はありませんよね? C言語などをするならWindowsの方が向いてますか? 詳しく教えて下さい
- ベストアンサー
- その他(プログラミング・開発)
- cでなぜguiアプリが作成出来るのか。
cでなぜguiアプリが作成出来るのか。 現在cについて学習中です。 テキストエディタで書きターミナルで実行しています。 cではアプリが作れるようになるといいますが 現在のままではcuiのソフトしかできる気がしません。 一般的に言われるアプリケーションというものを 作成するにはまた別の手段が必要なのでしょうか。
- ベストアンサー
- C・C++・C#
- C言語って何に使うの??
僕は中2で、C言語を独学で学んでいるのですが、よく考えるとC言語って何に使うんですか?? 本に書いてあるのは簡単な計算や石取りゲームなどの実用的ではない物です。 どんなことに使っていますか?
- ベストアンサー
- C・C++・C#
- C言語(Windows)からUNIXに移植したことある人
C言語(Windows)からUNIXに移植したことある方はいらっしゃいますか? ある方がいらっしゃいましたら、移行の仕方等教えて下さい。その際の 注意点等ありましたらお願いします。 やろうとしていることは、Windowsの通信制御アプリをSolarisに 移植です。なのでWinsock関係などの情報が知りたいです。 通信制御アプリなのでCUIだと思いますが、もしGUIの場合UNIXではどうなるのでしょうか?
- ベストアンサー
- C・C++・C#
- C言語でアプリを作ってみたい
C言語をある程度覚えたんですが ファイルコンバーターなど難しいので簡単な物がいいです 時計タイマーなどおもしろいソフトを作りたいんですが どういう場所を参考にすればいいでしょう? オセロゲームなどジョーク的な物がいいです 画像をモノクロにするとか簡単なものがいいです どなたか良いアプリ提案お願いします
- ベストアンサー
- C・C++・C#
- c言語でのカーソル移動(?)について
C言語でCUIに表示された20*20の●をカーソルで移動するプログラムを作ろうと思い、 カーソルでの移動の部分でカーソルのアスキーコードを探しても無く、どうプログラムしたら良いのかがわからなくて、困っています。 やり方を教えていただけませんでしょうか?
- ベストアンサー
- C・C++・C#
お礼
インタープリタを作るにあたって調べたんですが 資料が少ないのと、難しすぎるかもしれません 他に簡単な物は無いのでしょうか? C言語のサイトって基礎コードしか無くて困っています ファイルコンバーダーってのが気になります