プログラミング (コンピュータ)
'''プログラミング'''('''''')とは、プログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である。プログラミングをする人をプログラマという。プログラミングを行うためには、対象領域に関する知識、アルゴリズム、論理学などの様々な専門知識が要求される。ほとんどのプログラミングは、プログラミング言語を用いてソースコードを記述することで行われる。これを'''コーディング'''という。
ある程度複雑なプログラムを作成する場合、一度コーディングを行っただけでは、プログラムが意図したとおりに動作することはまずない。これは、プログラムの入力ミスや、プログラム構造の論理的な誤りになどによるものである。これをバグと呼ぶ。
そこで、プログラムが意図したとおりに動作するか、検証作業を行う必要がある。これをテストという。テストによりバグが見つかれば、それを修正する必要がある。この修正作業をデバッグという。
また、ある程度の期間使われるプログラムでは、使用しているうちに、プログラムの性能や機能に新しい要求が発生したり、プログラムの設定を変更する必要がでてきたり、テストにより発見できなかったバグが見つかることがある。このような事態に対応するため、プログラムを保守していく作業が必要になる。
プログラムが、作者以外の人によって利用される場合には、プログラムの利用方法や機能について質問を受けることがある。プログラムを、意図したとおり稼働させてゆくためには、これらの問い合わせに対応する必要もある。
一般に、職業としてプログラミングを行う場合、これらの作業が工程として含まれる。大規模なプログラミングでは、これらの作業を分業することも多い。
このような業務は、ソフトウェア工学という学問のソフトウェア開発工程の分野として扱われる。
プログラムを書くことはアートなのか、クラフトなのか、工学なのかという議論がある。よいプログラミングには、それら3つの要素すべてが必要とされ、最終的に効率的で保守しやすいソフトウェアを生み出すことを目的とする(何が効率的で、何が保守しやすいかという判断も様々である)。
【動画】オリアンティ / アコーディング・トゥ・ユー

Orianthi / According To You マイケル・ジャクソンの映画、"This Is Itにフィーチャーされている女性ギタリスト! ハイリー・ストラング ft. スティーヴ・ヴァイ / オリアンティ(Highly Strung ft. Steve Vai / Orianthi) www.youtube.com www.universal-music.co.jp
プログラマの仕事
プログラミングを行う者をプログラマと呼ぶ。その仕事には以下のような作業が含まれる。プログラミング言語
プログラミング言語が異なれば、プログラミングのスタイル(プログラミングパラダイム)も異なる。どの言語を使うかの判断には、企業としてのポリシー、その用途への適合性、サードパーティのパッケージが使えるか、個人の好みなど様々な要素がある。理想的には、用途に最も適した言語を選ぶべきである。しかし、その言語を使えるプログラマが十分揃えられないとか、その言語の処理系に問題があるとか、実行時の効率が悪いといった問題から、最適な言語を選べないこともある。Allen Downey は、著書 "How To Think Like A Computer Scientist"www.greenteapress.com/thinkapjava/で次のように書いている。
言語が違えば、詳細も違って見えるが、どんな言語にも次のような基本的命令要素がある。
:'''入力''': キーボード、ファイル、その他の機器からデータを入手する。
:'''出力''': 画面にデータを表示したり、ファイルその他の機器にデータを送る。
:'''演算''': 加減算のような基本的算術操作を行う。
:'''条件付き実行''': 条件をチェックして、一連の処理を行うか否かを判断する。
:'''繰り返し''': ある処理を繰り返し実行する。通常、毎回何かが変化している。次のエントリ
【動画】Playdate With Addison
My Grandson Scott and my best friend's grandson, Addison, having a playdate together at Chumash Park, Pismo Beach, CA
プログラミングパラダイム
今日までに、プログラミングの進歩に貢献したパラダイムとして、次があげられる:プログラミングには、文字による言語を記述する方法ばかりではなく、視覚的な表現や図形的な記号を入力するビジュアルプログラミングという方法もある。次のエントリ
プログラミングの歴史
最古のプログラマブルな機械(プログラムによって動作の変化を制御できる機械)としては、1206年にアル=ジャザリが作った二足歩行ロボットがあると言われている。アル・ジャザリのロボットは、ボートに4体の演奏人形が乗ったもので、宮廷のパーティで池に浮かべて音楽を演奏したと言われている。プログラムはカムにあり、それによって小さなてこを押して、打楽器を演奏する。カムは実際には円筒にペグが突き刺された形であり、このペグの配置でプログラミングし、演奏パターンを変更した。1801年に開発されたジャカード織機がプログラマブルな機械の起源とされることが多い。この機械は、穴を開けた一連の厚紙(パンチカードの原型)を使った。穴の配列が布を織る際のパターンに対応している。従って、カードを入れ替えることで全く異なる布を織ることができた。1830年ごろには、チャールズ・バベッジがパンチカードを使った解析機関を考案した。
このような先駆者の発明をさらに進化させたのがハーマン・ホレリスであり、1896年に ''Tabulating Machine Company'' を設立した(後のIBM)。彼はホレリス式パンチカード、タビュレーティングマシン、キーパンチ機などを発明した。これらの発明が情報処理産業の基礎となったのである。1906年には、タビュレーティングマシンにプラグボードを追加することで、組み替えれば様々な仕事ができるようになった。これがプログラミングへの第一歩である。1940年代には、プラグボードによるプログラマブルな機械が各種登場していた。初期のコンピュータにもプラグボードでプログラムを組むものがあった。
フォン=ノイマン・アーキテクチャの発明により、プログラムをコンピュータのメモリに格納できるようになった。初期のプログラムは特定の機械の命令をそのまま並べて作られ、二進法で記述されることが多かった。初期のコンピュータでは、電気的配線を変更したり、トグルスイッチなどで機械語を直接コンピュータに入力することで、プログラミングが行われた。しかし、機械語の命令は人間にとって扱いにくく、代わりに機械語の命令にニーモニックとよばれる略語を割り当てた、アセンブリ言語が開発され、プログラマは命令をテキスト形式で記述できるようになった。アセンブリ言語は、コンピュータのCPUによって種類が異なるため、アセンブリ言語でかかれたプログラムは、他機種のコンピュータで利用することができなかった。また、単純な処理をアセンブリ言語で記述する場合にも、基本的な処理命令を大量に記述する必要があった。
そこで、特定のコンピュータに依存しない記述方法で、処理の内容をより抽象的に記述するためのプログラミング言語が開発された。そして、プログラミング言語によって記述されたプログラムを、コンパイラを利用して機械語に翻訳することで、実行プログラムを作成することが一般的になった。1954年、最初の高級プログラミング言語の1つであるFORTRANが開発された。これにより、演算を直接数式のように記述できるようになった(例えば、Y = X
コンピュータの能力は時と共に飛躍的な進化を遂げた。このため、より抽象化されたプログラミング言語が開発されるようになっていった。抽象化レベルの高い言語はオーバーヘッドも大きいが、コンピュータ自体の性能の進化が激しいため、多少オーバーヘッドが増えても以前よりも高性能な動作が実現された。このような抽象化レベルの高い言語の利点は、習得が容易であることと、プログラム作成時間が短縮されることである。しかしそれでも、巨大で複雑なプログラムや、高速性が何よりも重視されるプログラムでは、現在でも比較的低レベルな言語を使っている。
20世紀後半を通して、先進国ではプログラマが魅力的な職業の1つとされてきた。しかし、発展途上国の安い労働力をプログラミングに利用する傾向が強まっている。この傾向がどれだけ続くのか、それによってどのような影響があるのかは未知数である。次のエントリ
出典:フリー百科事典『ウィキペディア(Wikipedia)』
別のワードで検索!
トレンドマガジン [マグゥ]でコーディングを検索






昨日はお馴染みコーディング・・・。