• ベストアンサー

プログラム言語FortranとCの違いについて

FortranとCの相違点ですが、言語仕様という意味ではなく、置き換えが効かない、すなわち片方にはあるが片方にはない、という違いについてお尋ねします。 それはビット演算ということです。私はあるプログラム集の説明を見ていて、”この仕事はビット演算なのでC言語です。それ以外はFotranです”とありました。Fotranではビット演算ができない、ということを言っているように感じました。実際、Fortranでは無理なのでしょうか。できるけど面倒な処理になるという意味ではなく、できない、ということでしょうか。C言語のようなビット処理は。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.4

極論してしまえば、現在入手できるようなFotranはC言語で作られているだろうし、Fortranを駆使してCコンパイラも作れなくは無いでしょう。 「置き換えが効かない」ということは他のどの言語にしても「無い」といってよいでしょう。 ただ、やはり各言語には得手不得手があるので、それに合せるのが賢い使い方だと思います。 そのプログラム集とやらが、何の目的で作られていて、どんな理由でそう述べているのか、その前後などから読み解く必要があるのでは。単に「Fortranでは無理」とかでは無いと思います。

その他の回答 (3)

noname#140082
noname#140082
回答No.3

質問の趣旨とは、違うかも知れませんが、FortranとCの一番の違いは、入出力命令です。 たとえば、Fortranで出力はWRITEなどを用いますが、これはコンパイラーでWRITE命令を意識したコンパイルが行われる事です。 一方、Cの場合はprintf()などが使われますが、これはあくまでprintf()と言う名前の関数に過ぎず、コンパイラーはそれが入出力命令かどうかの認識は必要ありません。 ですから、C言語ではやろうと思えば自作のprintf()を作ることも可能です。 このことにより、Cは新たなハードウェアに対しても、コンパイラーを変える必要がなく、あくまでライブラリーの提供で対応できるために、広く使われるようになりました。 このあたりが、かつて「C言語にはI/O命令がない」(限りなく誤解のある表現ですが)と言われたゆえんです。 質問の趣旨から外れまして申し訳ございません。

skmsk1941093
質問者

お礼

ありがとうございます。 説明をうかがって情報処理の世界で高い自由度を獲得するためには、ある程度のプログラム言語の幅がある方がよいのかなと思いました。 ただ、やり過ぎる必要はないのかなとも思いましたが。

回答No.2

FORTRANでもビット演算はできる。 FORTRAN77には既に内部関数として組み込まれている。

skmsk1941093
質問者

お礼

ありがとうございます。 私の疑問はこの回答で解消しました。

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

そんなに詳しいわけではありませんが、Fortranだと(シフト演算を含めた)ビット演算は組み込み関数で実現できるはずです。

skmsk1941093
質問者

お礼

ありがとうございます。 私の疑問はこの回答で解消しました。