• ベストアンサー

C?FORTRAN?

大学でCとFORTRANの両方を習ったのですが(基本を)、どちらを社会では一般に使われるのでしょうか? ちなみに物理の研究室に所属していますが、みなさんFORTRANを使っています。 どちらがより社会に出たときに使う機会が多いか教えてください。 また、CとFORTRANでの違いや、お勧めの方を教えてください。

noname#97208
noname#97208

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

  • ベストアンサー
  • fofof
  • ベストアンサー率88% (8/9)
回答No.4

現在FORTRANが使われているのは、科学技術計算などのHPC(High Performance Computing)のみといっても過言じゃないでしょう。 HPCなどでいまだにFORTRANが使われている理由は、FORTRANの方が、自動並列化などの自動最適化が行いやすいことなどがあげられると思います。C などでは、ポインタを使うし、JAVAだと例外あるし、C++だと両方あったりするし…自動並列化などを行うことが難しいです。そのため、俗にスーパコンピュータや、クラスタ、ベクトル演算器をつんだようなマシンでは、いまだにFORTRANが使われていたりします。 とは言うものの、本気で高速なプログラムを書く際には、結局コンパイラに頼らず、自分で並列化したりするわけなんですが。 FORTRANも、オブジェクト指向FORTRANとか、最近の言語の流れを汲んだものもあったりしますが、おそらく、そんなに使い勝手が良いものではないんじゃないかと思います。 というわけで、少なくとも一般的な用途では、FORTRANよりはCや、CよりはC++やJAVAなどの、再利用性が高い言語のほうが良く使われています(本当に再利用されるかは別として…)。 さらに言うと、最近では、HPCにおいても、JAVAとかが進出してきたりしています…使えるかどうかは別として…

その他の回答 (3)

  • rot-N
  • ベストアンサー率27% (118/432)
回答No.3

大学では、先達が作った数値解析ソフトを使い続けますので、Fortran中心です。もう20年近くまえからそうでした。 で、そういう「しがらみ」が無いと、使うのはCです。

  • betagamma
  • ベストアンサー率34% (195/558)
回答No.2

社会に出たら、圧倒的にCです。FORTRANを使うことはまずありません。 C,java,C++などがよく使われています。 理由は、プログラムを再利用するときの便利さが段違いだからです。 大学での少人数での研究と違い、実際のコンピューターのアプリケーションは非常に多くの人の共同開発になっています。そのときに、他人の作ったプログラムが再利用しやすくないと困るのです。変数名や関数名に色々な制限があるFORTRANは、多人数でソースコードを共有するのに適していません。 物理の研究室では、計算のためにFORTRANを使っていらっしゃるのでしょう。FORTRANは、簡単な、科学技術計算のプログラムを書くには、非常に楽な言語です。また、最初にできた高級言語なので、科学技術計算の分野に関してのプログラムの蓄積が非常に大きいということがあります。 そのまま、純粋な物理畑を行かれるのでしたら、何か製品を作ることよりも、研究者として正しい知識を用いて「科学技術計算をすること」が求められるでしょうから、FORTRANだけでいいかもしれません。 しかし、計算物理の世界に入ってスーパーコンピューターでシミュレーションする、などになりますと、正直FORTRANではコンピューターの性能を生かし切れませんので、C関連の言語を扱うことになるかと思います。 ただ、FORTRANの方がCより、言語規則がしっかり決まっていて、しかも内容も純粋に計算を行っているものが多いですから、自動的にCに書き直すプログラムは書きやすく、実際FORTRANを自動的にCに変換するプログラムが存在します。 むしろ、FORTRANを一回Cに変換して、C経由でコンパイルして実行する環境も存在します。 おすすめとしては、明らかにCです。

  • colocolo62
  • ベストアンサー率32% (1162/3624)
回答No.1

一般的なソフトウェア開発(ちょっとしたアプリケーションなども含む)であれば、ほとんどFORTRANを使う事はないと思います。 CかC++でしょう。 FORTRANは、物理系のシミュレーションや解析用のプログラムを作る場合に使われるケースが多いです。 そういった分野の研究者であれば、使用頻度は高いと思います。

関連するQ&A

  • Fortranについて

    私は今大学生のものです。 今卒業研究でFortranのプログラムを用いています。しかし私はプログラミングには疎く、独学で勉強しようと思うのですがなにか初心者にわかりやすいお勧めの本、サイトなどはあるでしょうか? 本屋に行ってもFortranの本は販売されておらず、通販では手にはいるのですがどの本がいいのかわかりません。是非教えていただければと思いここに書き込ませていただきました。 また、家でもFortranのプログラムをコンパイル、実行できる環境をつくりたいのですがどうすればよろしいでしょうか? 学校ではcygwinをインストールして行っていますが家でもcygwinをインストールすればいいのでしょうか? また今もととなるプログラムはあるのですがこのプログラムはLinux上では正常にコンパイルされないところがあるらしく書き直さなければならないらしいのですがLinux上でのFortranのプログラムは普通のFortranのプログラムとは違うのでしょうか?ちなみに学校のパソコンのOSはWindows Vistaです。 初心者の質問ばかりになってしまってすみません。自分でしっかり学びたいと思うのでぜひ教えてください。

  • 物理の理論系の研究室希望なのですが、どこの研究室でも研究室ではコンピュ

    物理の理論系の研究室希望なのですが、どこの研究室でも研究室ではコンピュータでの計算とかをやるみたいですのでFORTRAN? C言語?を学習したいです。 具体的にこの研究室に行くというのはきまってないので、そこの研究室でどっちを使ってるかは言えません。 物理の理論系研究室ではどちらがメジャーなのでしょうか?

  • 研究生は大学等教育機関の学生に含まれますか?

    私は現在大学院の研究室に所属する研究生になります。 疑問なのですが、一般的に研究生とは学生になるのでしょうか? それとも社会人に含まれるのでしょうか? 回答よろしくお願いします。

  • FORTRAN77でプログラミング

    今年、大学の授業でFORTRAN77を使ったプログラミングを勉強することになりました。 今で3回授業が終わったところなのですが、いきなりつまずいてしまい皆さんの知恵をお借りしたいと思います。。 作るプログラムは 問:摂氏(C)、華氏(F)、絶対温度(K)のいずれかの値を { xx(温度の数値),yy(CかFかK) }のように入力したときに、入力した値以外の単位での温度値が表示されるプログラムを作れ。 自分なりに作ってみたのが下のプログラムです。 全く論外なプログラミングをしているかもしれませんが…。 (自作) c234567 implicit none real n,cx,fx,kx character*1 d,c,f,k c n:入力値 d:入力された温度の値 C:摂氏 F:華氏 K:絶対温度 write(*,*) '温度値、単位を表す文字を入力してください。' read(*,*)n,d if(d.eq.c)then cx=n fx=cx*(9/5)+32 kx=cx+273.15 else if(d.eq.f)then fx=n cx=(fx-32)*(5/9) kx=cx+273.15 else kx=n cx=kx-273.15 fx=cx*(9/5)+32 end if end if write(*,50) cx,'C',fx,'F',kx,'K' 50 format(' ',f7.3,a3,f7.3,a3,f7.3,a3) stop end これをどうしたらいいのでしょうか。 ちなみに、使用しているFORTRAN77は Compaq Visual Fortran Optimizing Compiler Version 6.1 です。 どうぞよろしくお願いします。

  • 学者?

    学者の仕事ってのは、政府によって、給料をもらっているのですかね? また、どこの機関に所属しているのですかね? 研究機関に所属している人達は研究者っていうじゃないですか。 また、大学の教授だったら学者なんていわなくて、教授っていうじゃないですか。 この人達を総称して、学者っていうですかね? でも、テレビとかでは、古代物理学者とか、なんたらかんたら学者とかで、紹介されているじゃないですか。 この辺の定義をおしえてもらえてもらえないですか? また、学者になるための一般的プロセスをおしえてください。 あと、物理学者っていう職業はあるのですかね? よろしくお願いします。

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。

  • 物理シミュレーションをする時、どのくらいプログラミングの知識があればいいのか?

    物理学で自然現象をパソコンでシミュレーションするとき、プログラム言語はどのようなものを使うのでしょうか?よく知られたC言語やJava等は使わないのでしょうか?専門的なプログラム言語がいろいろあるのでしょうか? 今後パソコンで物理シミュレーションを行うことになったとき、プログラムに関してはどのくらいの知識があればいいのでしょうか? 基本的な本を見るとBasicやFortranを使ってシミュレーションの説明をしているものがありますが、このような基本的な言語も使えるようになったほうがよいのでしょうか? C言語やJava、VBなど一般的によく知られたプログラミング言語も覚えたほうがよいのでしょうか?

  • 工学部と理学部での物性物理の違いについて

    初めまして。自分は工学部の電子工学科で半導体の研究室に所属しています。 今年大学院を受験しようと思っていますが、 専攻を選ぶのに迷っているので質問させていただきます。 自分は物事を物理的に考えるのが好きで、 大学院では物性関係(まだ具体的な内容は決まってません) の研究をしたいと思っています。 そこでネットで色んな大学の研究室を調べてみたんですが、 工学部にも理学部にも物性をやってる研究室があって、 違いが良くわからずに困っています。 どなたかその辺の違いを教えていただけないでしょうか? よろしくお願いします。

  • 簡単なC言語を利用したシステム

    私は今年大学4年で卒業研究をするのですが、なかなか良いテーマが決まりません。私の研究室ではプログラミング言語を用いて研究することが必須なのですが、私はプログラミングがとても苦手で、C言語の基本ぐらいしか分かりません。そこで、簡単なC言語を用いて何かのシステムを構築するような研究をしたいと思っているのですが、どんな研究ができるでしょうか?もちろん、これからもC言語についてはまだまだ勉強していくつもりです。回答よろしくお願いします!

  • Compaq Visual Fortran 6 がインストールできません…

    Compaq Visual Fortran 6をWindowsXPにインストールしようと格闘してます。 でもあと2週間以内には使える様な状態にせねばならず私の1人の力ではムリなので、どうか皆さん助けてください!m(_ _)m エラーの概要についてですが、 まず、Typicalを選択して"Compaq Visual Fortran 6"というフォルダーにインストールするように選択すると 96%完了したら以下のメッセージが出てきます 《Setup was unable to create the program folder named "Compaq Visual Fortran 6". Please create a folder named "Compaq Visual Fortran 6" in the Start menu Programs folder and retry the installation. If the problem persist, contact Compaq Company. Corp.》 とでます。 そこでスタートメニューに"Compaq Visual Fortran 6"と言う名のフォルダを作って再インストールしても結果は同じです・・・。 一体どうしたらいいのでしょうか? ちなみにパソコンはFujitsuのFMV-BIBL NB18CでOSは XPのHome Edition Version 2002でService Pack 2というものです。 どうかよろしくお願いします。

専門家に質問してみよう