プロが教えるわが家の防犯対策術!

FortranとCの相違点ですが、言語仕様という意味ではなく、置き換えが効かない、すなわち片方にはあるが片方にはない、という違いについてお尋ねします。

それはビット演算ということです。私はあるプログラム集の説明を見ていて、”この仕事はビット演算なのでC言語です。それ以外はFotranです”とありました。Fotranではビット演算ができない、ということを言っているように感じました。実際、Fortranでは無理なのでしょうか。できるけど面倒な処理になるという意味ではなく、できない、ということでしょうか。C言語のようなビット処理は。

よろしくおねがいします。

A 回答 (4件)

極論してしまえば、現在入手できるようなFotranはC言語で作られているだろうし、Fortranを駆使してCコンパイラも作れなくは無いでしょう。


「置き換えが効かない」ということは他のどの言語にしても「無い」といってよいでしょう。
ただ、やはり各言語には得手不得手があるので、それに合せるのが賢い使い方だと思います。



そのプログラム集とやらが、何の目的で作られていて、どんな理由でそう述べているのか、その前後などから読み解く必要があるのでは。単に「Fortranでは無理」とかでは無いと思います。
    • good
    • 1

質問の趣旨とは、違うかも知れませんが、FortranとCの一番の違いは、入出力命令です。


たとえば、Fortranで出力はWRITEなどを用いますが、これはコンパイラーでWRITE命令を意識したコンパイルが行われる事です。
一方、Cの場合はprintf()などが使われますが、これはあくまでprintf()と言う名前の関数に過ぎず、コンパイラーはそれが入出力命令かどうかの認識は必要ありません。
ですから、C言語ではやろうと思えば自作のprintf()を作ることも可能です。

このことにより、Cは新たなハードウェアに対しても、コンパイラーを変える必要がなく、あくまでライブラリーの提供で対応できるために、広く使われるようになりました。

このあたりが、かつて「C言語にはI/O命令がない」(限りなく誤解のある表現ですが)と言われたゆえんです。

質問の趣旨から外れまして申し訳ございません。
    • good
    • 1
この回答へのお礼

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

お礼日時:2011/06/15 11:10

FORTRANでもビット演算はできる。


FORTRAN77には既に内部関数として組み込まれている。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/06/15 11:11

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2011/06/15 11:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!