No.9
- 回答日時:
使う必要になってから勉強したので良いとは思いますが、1つ勉強しておくというならC言語をプログラムを見て大体なにが書かれているか分かる程度に知っておけば良いかな。
あとはクラスという概念(オブジェクト指向の言語で出てくる)を知っておけば理解の助けになると思います。No.8ベストアンサー
- 回答日時:
本当に何をしたいかですね。
Fortranはライブラリ資産が多く残っているので読む程度の知識は必要でしょうが、それでバリバリ書くのは今の時代にそぐわないでしょう。
僕も制御やっていたのでCとアセンブラには慣れてますし、Fortranで情報処理の試験を受けた時代の人間ですが、今はデータ処理はExcelですし、ちょっと複雑ならExcel Macroです。そういう点では覚えるならVisual Basicが良いです。
数式が多いときは、Mathematicaですし、複雑な処理系ならMatlab Simulinkです。
今はPCが速いので、頑張って自分の得意と思っている言語でプログラミングするより、その場にある高級言語使って、パッと解く方が簡単です。環境構築が面倒臭いのですし。
出来ればグラフィック処理が充実しているのが良いです。MathematicaもMatlabもどちらも良く似たフリーソフトがあるので、学生ならそれらでも良いと思います。そういう点においてExcelは良いソフトです。VB付ですから。
その上で、もうちょっと高度や高速にしたい欲求があればCでプログラミングするという手順と思います。
ただ一つ習得すると、プログラミングのコツを覚えるので、他の言語の習得はだんだん楽になりますよ。英語やドイツ語、中国語を習得するよりはるかに簡単です。
No.7
- 回答日時:
過去の科学計算プログラムの多くがFORTRANで書かれています。
有名なのはローレンスリバモア研究所で造られたリバモアループ、スーパーコンピュータのベンチマークに使うプログラムです。
また、数値計算ライブラリとして有名なLINPACKもFORTRANで書かれています(最近は多言語から参照できるように書き換えられたものもあるようです)。
ですから、こういった数値計算関連の書籍を参照する場合、FPRTRANの知識はある程度必要です。
No.6
- 回答日時:
大規模な数値計算を行う場合はFORTOANが有利かも知れません。
それは、実績のある数値計算用のライブラリが豊富だからです。
http://www.eie.yz.yamagata-u.ac.jp/~kkondo/progr …
実験系と言う事で有れば、測定器での計測とソフトウエアの連携が必要となるのでMATLABが有効でしょう。
http://www.mathworks.com/tagteam/57762_LN431_Han …
MATLABと同様のソフトでフリーのものも有ります。
No.5
- 回答日時:
どんな実験なのかにもよるでしょうが、
特に処理速度が必要でないなら、C系の記述が難しい言語は避けたほうがよいでしょう。
言語の記述に振り回されて、肝心の理論の追求に没頭できなくなります。
Fortranでも良いですし、その系統のBasicもなかなか有能ですよ。
No.4
- 回答日時:
一方でシステムの設計屋でもあるのだけれど、僕の個人的な印象からすればCもしくアセンブラといったところをお勧めしますね。
確かにFortranもあるにはあるければ、実際の現場では余り使われていませんね現在では。80年代から90年代に掛けてなら確かにPascal、PL/1、PL/Hなんてものもあったけれど何れもFortranやCobolから派生した言語ですし、元祖からすれば不満の残る言語でした。
FortranもCobolも共にパッケージやマクロといった資産が豊富にありますが、それもCと同様に使う側次第でどうにでもなります。
文系の僕にでも扱えるのですから、どうせならアセンブラからCに行ってはいかがですか?
No.3
- 回答日時:
実験や制御などでは、
アセンブラ
C言語
などが多く使われています。
データ解析や数値計算、物理のシミュレーションには、
Fortran
でしょうか。
Fortranはそもそも科学計算をするために生まれた言語です。
言語の仕様、作りが数値計算に特化されている言語といっていいでしょうか。
なので、Fortranは、
実験装置などを制御したり、実験装置からコンピュータへ実験データを取り込んだりするのには向いていません。
標準的な命令語には、そのようなコマンドがありません。
なのですが、実験データの解析には、Fortranは使えます。
Fortranのもつ最大の強みは、先人たちによって様々な、膨大なプログラムが作られており、それを誰でもすぐに利用できる点です。これは他のプログラミング言語にはない、Fortranだけが最大の利点です。
Fortranの特徴や歴史については、
http://ja.wikipedia.org/wiki/FORTRAN
C言語は
http://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E
アセンブラは
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB …
個人的には、C言語がもっとも拡張性が高く、汎用性が高く、
しかも、
Javaをはじめに、様々な言語がこの文法構造を参考にして作られているので、
C言語を知っていれば、すぐに他の言語も覚えられるという利点があるのですけれど、
C言語の文法を覚えるのは、大変です。
その習得には、涙と努力が必要です。
《ポインタ》で多くの人がつまずき、これ以上、前に進むことができません。そして、C言語は分からない、と言います。
No.2
- 回答日時:
Webベースのアプリケーションや、Webベースで機能するサービス、加えてJavaや.NETのような物理的なシステムを抽象化するプラットフォームの台頭によって、現在のアプリケーション開発は環境によってアプローチが大きく異なり、それに伴って様々なプログラミング言語が使われるようになっています。
ネイティブの実行ファイルを対象としたアプリケーション開発であれば、古くから使われているC言語やC++言語が今でも主流です。しかしながら、Webアプリケーション開発ではPerlやPHP、Ruby、Pythonなどの組み込み可能なスクリプト言語が人気です。Ajaxを代表としたブラウザ内で動作するクライアントベースのWebアプリケーションであればJavaScriptが駆使されることになります。
仮想システムを対象としたアプリケーション開発には、仮想システム専用の言語が使われます。Javaアプリケーション開発であれば主にJava言語が使われ、.NETアプリケーション開発であればC#言語やVisual Basic.NETなどが主流です。しかし、ここ最近になってこれらの仮想システム上で標準ライブラリにアクセス可能なRubyやPythonなどのスクリプト言語も実装されるようになり、さらに選択肢は広がっています。
加えて、それぞれのプログラミング言語ごとに魅力的なフレームワークが競って開発されています。利用するフレームワークによって利用するプログラミング言語を切り替えたいという場合があるでしょう。質の高いフレームワークを利用することができれば、短時間で完成度の高いアプリケーションを構築できるようになります。
選択肢が増えることは悪いことではありません。しかし、開発者にとっては数多くのプログラミング言語を学習しなければ、最先端のアプリケーション開発環境を使いこなすことができないという状況になりつつあります。加えて、新人開発者や学生にとっては覚えなければならないプログラミング言語が沢山待ち構えていることになります。新人教育を担当される方であれば、どの言語を教えれば良いのか迷うことでしょう。
本稿では、アプリケーション開発の現場で実用されているプログラミング言語をピックアップし、それらの言語の特徴や、テキストを表示するまでの簡単なサンプルをご紹介します。これからプログラミング言語を勉強しようと考えている学生や新人開発者の方はもちろんですが、すでにプログラミング言語をいくつか覚え、新しい別の言語を学習しようと考えている方にも参考にしていただけると思います。
C
「C言語」は、古くから本格的なアプリケーション開発用の言語として使われていたプロフェッショナル向けのプログラミング言語で、現代でも変わることなく多くの専門家たちの間で実用されています。アプリケーションの実行基盤が多様化したことによって、全盛期ほどの影響力はないものの、現在使われている他の多くのプログラミング言語の文法にも影響を与えているため、教育からビジネスまで幅広く使われているプログラミング言語です。
高水準言語でありながら、ポインタによるメモリアドレスの演算などが可能であり、ハードウェアに近い処理も可能となっています。Visual C++など、一部の処理系ではC言語のソースコード内にアセンブリ言語を記述するインライン・アセンブラもサポートしています。このことからも、C言語がマシン語レベルの処理と相性が良いことがうかがえます。OSやデバイスドライバなど、ハードウェアに密着したソフトウェアを書くことにも適しています。
プロの開発者を目指すならば、早い段階で習得しておくべきプログラミング言語です。Web開発の専門家を目指すのであれば必ずしも必須ではないかもしれませんが、多くのプログラミング言語がC言語の影響を受けているため、C言語を学習することで他のプログラミング言語の理解を深めることができます。
学習レベル初心者~
実行方式コンパイル型
開発対象ネイティブ・アプリケーション(実行可能ファイル)
適用分野アプリケーション開発、ドライバ・OS開発
サンプル01
#include<stdio.h>
int main(void) {
printf("Kitty on your lap");
return 0;
}
C言語で画面にテキストを表示するプログラムを作ると「サンプル01」のようになります。最初の行は「stdio.h」というファイルをソースファイル上にテキストレベルで組み込む(インクルードする)ことを意味しています。こうした命令はプリプロセッサ・ディレクティブと呼ばれ、コンパイルされる前にテキストレベルで展開されます。このようなソースのテキスト処理はC言語の大きな特徴です。
「stdio.h」のようなファイルはヘッダファイルと呼ばれ、C言語の標準関数を宣言しています。画面にテキストを表示するためにはprintf関数を使う必要があり、最初の行はprintf関数を使うために必要です。
C言語では、プログラムの流れは全て関数の中に書かなければなりません。プログラムはmain関数から始まります。
画面に文字列を表示するといった機能も、全て関数によって提供されています。printf関数は、言語の構文として定められているものではなく、あらかじめ処理系に標準機能として組み込まれている再利用可能なプログラムの部品です。
C++
「C++言語」は、C言語を発展させたプログラミング言語です。基本的にはC言語と互換性があり、C言語のソースをC++言語としてコンパイルすることが可能です。基本的な文法も、すべてC言語を継承し、オブジェクト指向を実現するための拡張が行われています。
オブジェクト指向の導入によって、C++言語は大規模アプリケーション開発、組織開発、ソフトウェアの再利用を強化しています。オブジェクト指向開発は、C言語でもある程度実現することが可能ですが、そのためには関数や構造体を十分に抽象化する高度な設計力が必要となります。正しい設計が必要なことはオブジェクト指向型言語でも変わりませんが、C言語に比べ、文法レベルでオブジェクト指向設計をサポートすることでC++言語はより大規模な開発や組織開発に適しています。
しかしC++言語は、他のオブジェクト指向型言語と比べても複雑な仕様となっています。多重継承やテンプレートといった機能を駆使したライブラリは、熟練の技術者でも時に頭を悩ますものです。初心者が使いこなすことは難しく、オブジェクト指向に対する十分な知識と経験が必要となるでしょう。学習のタイミングとしては、少なくともC言語と、多少の開発経験を経てからがよいでしょう。
学習レベル中級~上級
実行方式コンパイル型
開発対象ネイティブ・アプリケーション(実行可能ファイル)
適用分野アプリケーション開発、ドライバ・OS開発
サンプル02
#include <iostream>
int main() {
std::cout << "Kitty on your lap";
return 0;
}
C++言語もmain関数から開始されるという点はC言語と同じです。しかし、C++言語では「stdio.h」ヘッダファイルの代わりに「iostream」をインクルードしています。printf関数など、C言語の標準関数をC++言語で使うことも可能ですが、通常はC++用に作られた標準ライブラリを使って出力します。
「std」という識別子は標準ライブラリが所属する名前空間を表します。名前空間とは、一連の識別子をパッケージ化する目的で使われ、ライブラリの目的や開発組織ごとに分けられます。coutはstd名前空間内にあるグローバルな変数で、標準出力を表すオブジェクトです。このオブジェクトは、シフト演算子<<をオーバーロードしているため、右オペランドに指定した値を標準出力に表示します。
なお、現在ではC言語の純粋なコンパイラが使われるということは珍しく、多くの処理系はC言語とC++言語を同じコンパイラでサポートします。多くの場合は、オプションやソースコードの拡張子などでC言語とC++言語のコンパイルを切り替えます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
VBScriptで引数を省略したい場合
-
COBOLでのNOT = の AND条件
-
UNITY Float型の接尾辞fって
-
COBOLで文字タイプを数字...
-
vbaとc言語の関連性について
-
VCとVC++
-
C言語とhtmlの違いを どな...
-
家計簿ソフトの作成
-
ゲームは何文字のプログラムで...
-
グローバル変数の初期化のタイ...
-
Excel VBAで文字化けする (英語...
-
UWSCはどのプログラミング言語?
-
Delphiでプログラム中の表示部...
-
.Net Framework APIがあればMFC...
-
verilogの勉強ってどうやってし...
-
近年誕生したプログラミング言語
-
素人です。『旧:オークション...
-
C# Exception.StackTraceの言語...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今ってプログラミング言語は何...
-
C言語、C+、C++、C#の違い
-
プログラミング言語について
-
COBOLでのNOT = の AND条件
-
近年誕生したプログラミング言語
-
UNITY Float型の接尾辞fって
-
C言語とhtmlの違いを どな...
-
vbaとc言語の関連性について
-
C++における継続行
-
プログラムに書かれる"%"記号の...
-
COBOLで文字タイプを数字...
-
VBSでDim、Private、Publicの違い
-
TO_CHARで小数点以下がある場合...
-
VBSとWSHは読み方が違うだけで...
-
Excel VBAで文字化けする (英語...
-
VCとVC++
-
HTMLとC++で、どんなホームペー...
-
C++ ってなんて読む?
-
UWSCはどのプログラミング言語?
-
会計システムをつくるために必...
おすすめ情報