• ベストアンサー

プログラム言語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
質問者

お礼

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

関連するQ&A

  • C言語をFORTRANへ

    C言語で記述したプログラムをFORTRANに翻訳というか書き直してくれるソフトはないものでしょうか? FORTRANをCに書き直すソフトなら存在するんですけど・・・

  • C言語のプログラムのFORTRANへの変換

    こんにちは。 C言語のプログラムをFORTRANに変換したいのですが、思ったように動きません。 C言語のプログラムをFORTRANに変換できるソフトなどはあるのでしょうか? WEBでは「C2F」というものがあったように記載しているページがありますが、 実際にダウンロードできる場所がみつかりません。 このような変換ができるソフトやC2Fについてご存知の方がいらっしゃいましたら 教えていただけないでしょうか? よろしくお願いいたします。

  • FORTRANからC言語へ

    FORTRANで記述したプログラムをC言語に翻訳というか書き直してくれるソフトはないものでしょうか?

  • FORTRANとC言語のデータ受け渡し。

    卒業論文で計算プログラムをくんでいるのですが、 教授から、とりあえずa,bをCでscanfしてそれをFortranに渡し、 足し算させ和cを出し、それをC言語に持って行き、printfさせるプログラム を組んでみろと。C言語はそれなりにわかるつもりですが、Fortranはさっぱりです。データの受け渡しわかる方教えてください。

  • C言語をFortranに変換するソフトを教えてください

    数値計算をFortranで行っています。 C言語で書かれたプログラムをFortranに書き直すツールがあるとうわさで聞いたのですが、あるのでしょうか?あれば大変役に立つのでほしいのですが。。。 お願いします!

  • Fortran と、C言語のデータの受け渡し

    Micro Soft Visual C++ 上で Fortran と、C言語のデータの受け渡しをしたいのですが、例えばC言語でint型のi,jを読み込み、Fortranでi,jを受け取り、その和kを求め、kをC言語に受け渡し、printfでkの値を表示させるプログラムはどんな感じになるんでしょうか? お手数ですがCとFortranのソースコードを教えていただけたらうれしいです。 また、Micro Soft Visual C++ 6.0 と Visual Fortran 6.1a ではできないのでしょうか? 教えてください。

  • C言語からのFortranプログラムの呼び出し

    Fortranで記述した以下のような構成の有限要素法プログラムをC言語から呼び出したいのですが,具体的にどのようなコードを記述すればいいのかがわかりません.お教えいただけないでしょうか. サブルーチンinputおよびoutputでは入力および結果ファイルの入出力を行っています. 当方C言語はほぼ初心者です.Fortranのプログラミング環境としてはVisualStudio2005およびVisualFortran9.1を用いています. C言語のプログラミング環境としてはおなじくVisualStudio2005を使用したいとおもっております. [メインプログラム] open (5,file='input.dat') open (6,file='output.dat') /入出力用のファイルを開く call input(parameter1) /各サブルーチンで有限要素法を実行 call bound(parameter2) call matrix(parameter3) call solve(parameter4) call output(parameter5) close (5) /入出力用のファイルを閉じる close (6) stop end

  • FortranプログラムからC言語で実装された関数を呼ぶ方法

    Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか?何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。

  • FortranプログラムからC言語で実装された関数を呼ぶには?

    Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか? ユーザーガイドによれば、「Fortranプログラム中に、C_EXTERNALという宣言をした関数は、Cの関数と同じくアクセスできるようになり、C側では、#extern <返り値>関数名(引数)を与えれば、Cの関数として呼び込むことができる。」とのことがかかれています。 実際に使っているファイルをいくつか書き出します。 <D:\fortran\sample.f> C_EXTERNAL WRITE 'WriteFile' : INTEGER*4 INTEGER*4 RESULT RESULT=WRITE() write(*,*) result return end <D:\fortran\sample.c> #extern int Writefile(int); <C:\Program Files\Silverfrost\FTN95\ftn95c.bat> ftn95.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 /link ちなみに、「Cpad for Salford FTN77」での実行/設定/実行/コンパイル時のパラメータは「/link /dreal」です。もちろんftn95.exeへのパスは通してあります。何が問題でしょうか? 何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。

  • fortranでプログラムを作りたいのですが

    今学校で、txtファイルの数値データを数式処理しているのですが、そのtxtファイル数が多く、一つ一つエクセルで開いてやるのがとても面倒くさくて(エクセルの中ではマクロで処理しているが)困ってます。  そこでfortranでプログラミングして処理しようかと思っているのですが、それに関してわからない事があります 1.fortranのopen文はどんなファイルでも開けるか? 2.またfortranで開いて、計算処理できるファイルはtxt datなどのファイルしかないのか? 3.ファイル名が1~100のように順番になっている時1~100まで順番で開いて、それぞれに計算処理出  来るようなプログラムは可能か?

専門家に質問してみよう