【 C# 】 初心者による初心者のためのプログラミング用語の解説

   2015/12/03   icon-clock-o読了時間:約19分13秒

C#を始めてから、私がつまづき転がった数々の謎の言葉。
何の呪文かと思うくらい訳が解らない聞いたこともない単語。
そんなC#を取り巻く用語について解説いたします。

はじめに

まずC♯の特徴や、プログラミングの手順を文章でご紹介しています。
その文章の中で出てくる単語をそれぞれの項で解説しております。
更に詳しい説明が必要な単語については別ページで解説しているのでリンク先をご覧ください。

目次

C#って一体なに?
 ∟オブジェクト指向
 ∟.NET Framework
 ∟アプリケーション
 ∟GUI(グラフィカルユーザーインターフェース)
 ∟Windows フォームアプリケーション
 ∟Webアプリケーション

Visual Studio Expressで今日から始めるプログラミング
 ∟お試し用のコード例

プログラムの作成手順

デバッグの手間と回避

コードとコンパイルとビルドのお話
 ∟デバッグとビルドの違い

セットアップファイルの作成(=発行)

ご注意

出来るだけ間違った内容をお知らせしないように気をつけてはいますが、
なんといっても私自身が初心者なもので、おかしなところもあるかもしれません。
しかし初心者だからこそ、今までプログラミングに縁の無かった方にも
なんとか意味が伝わるように説明することができるのではないかと。
プロフェッショナルな方が丁寧に解説してくださっているサイトさんがWeb上に沢山ありますし、
確かな知識をお求めなら勿論そちらをご覧いただいた方が良いのは間違いありません。
私もそういったサイトさんに現在進行形でお世話になっているのですが
その解説文に出てくる単語自体が解らない orz
全体が解らないから自分の理解が正しいのかも解らない・・・
なんてことがあったので、出来る限りそういったことの無いよう、
ほんとのほんとに初心者さんでもおおよそのところを理解していただけるように工夫して
基本の単語についてお伝えしたいと思います。
長くなりますが宜しければお付き合いください。

C#って一体なに?

C#とは、Microsoftが開発・発表したオブジェクト指向プログラミング言語です。
C#を含む現在使用されているプログラミング言語のほとんどが
オブジェクト指向に基づいたプログラミングが可能な言語=オブジェクト指向プログラミング言語です。
更にC#は.NET Frameworkという動作環境を生かしてアプリケーション開発ができるように
デザインされた言語であり、Windows フォームアプリケーションなどのGUIも、Webアプリケーションも作れます。

オブジェクト指向

プログラミングという大海に漕ぎ出した初心者さんがまず最初に出会うであろう荒波。手ごわい。
でもとても大切な概念なので頑張って理解したいところです。
これは長いお話になるので別ページにて⇒オブジェクト指向って一体なんなんだろう(編集中)

.NET Framework

.NET Frameworkの中には以下の機能が含まれています。
1:共通言語ランタイム(CLR:Common Language Runtime)
2:基本クラス・ライブラリ(BCL:Base Class Library)
3:その他の各種ライブラリ/フレームワーク
これはアプリケーションプログラムを開発、動作(実行)するための環境です。
コンピュータと私たちの間を取り持ってくれる通訳であり、
お約束の記述を呼び出すための辞書機能であり、
作ったプログラムを実行するための仮想マシンでもあります。
これも詳しく言うと長くなるので別のページにて⇒.NET Framework 今昔物語

アプリケーション

正確にはアプリケーションソフトウェア、アプリケーションプログラムなどですが
単純にアプリと呼ばれることが多いですね。
携帯やスマホで動作するアプリが一般化したので皆さん聞いたことはあるかもしれません。
ユーザーが実行したい作業を行える機能を備えたソフトウェア(プログラムの集合体)のことを指します。
実行したい作業が「文書作成」ならアプリケーションは「ワープロソフト(Wordなど)」、
「表計算」なら「表計算ソフト(Excelなど)」、
「ネットの閲覧」なら「ブラウザ(IEやFirefoxなど)」となります。

GUI(グラフィカルユーザーインターフェース)

ユーザーがマウスを使ってグラフィカルに、つまり視覚的に扱える操作性のこと。
Windows OSや Mac OSもGUIです。
たとえばWindows OSが起動すると、デスクトップにアイコンが並び、
アイコンをクリックするとプログラムのウインドウが起動し、
ボタンを押したり、メニュー項目を選んだりすることによって動作します。
ユーザーにとっては見たままを理解して簡単に操作できるというメリットがあるので
現在のプログラムはGUIが主流となっています。

Windows フォームアプリケーション(Windows Formsアプリケーション)

GUIを基本として、ウインドウ内で動作するアプリケーション。
Windows GUI アプリケーションとも呼ばれます。
この窓がウインドウ。
フォームウインドウ
よく見かけるものであり、これから作るC♯プログラムの基本形となるであろうもの。
Visual Studio(一つ下の項目を参照)さえあれば、こういった基本のフォームはささっと作れます。
つまり、Visual Studioを初めて扱ったその日から、窓枠を作ることは誰にだって出来ます。
いかに窓の外の世界を華麗に処理し、窓の中に映し出すかが
プログラマーとしての腕の見せ所なのでしょう、きっと。

Webアプリケーション

Web上で動作するアプリケーション(プログラム)のこと。
皆さんご存知のYahoo!、Googleなどの検索サイトや
Amazon、楽天、2ちゃんねる、ツイッター、モバゲーなどもWebアプリ。
もちろん今見ていただいているこのブログもWebアプリです。
ネットへの接続が不可欠であり、リアルタイムで情報やプログラムの変更が反映される点が
Webアプリケーションの特色といえます。
今現在お仕事でプログラミングをされている方は
こういったWebアプリケーションに携わる方も多いのではないでしょうか。

Visual Studio Expressで今日から始めるプログラミング

Visual Studioロゴ
Microsoftが提供してくれているVisual Studioの無料版(Visual Studio Express)をインストールすれば
今すぐにでもあなたもプログラミングを始めることができます。

Visual Studio Expressのダウンロードは
Visual Studio Expressのページ
Visual Studio のダウンロードページ
のどちらかからダウンロードしてください。
※お使いのPC環境などによっては最新のVisual Studio Express 2013がインストールできないこともあります。
 その場合は旧バージョンのVisual Studio 2010 Expressをダウンロードしてください。

もちろんVisual Studioでなくても、なんだったらメモ帳でもコードは書けます。
でもVisual Studioがあれば、『今は覚えなくてもまあなんとかなること』や
『お約束だから予め入れておく要素』、『コーディングを助けるヘルプメニュー』なんかを
自分の代わりに記述したり、解かりやすく表示してくれたりします。
何が何だか分からない状態で始めたとしても、
Visual Studioと、お試しコードを公表してくれているサイトさんがあれば
割合簡単にプログラムを作ることができます。

何はともあれ最初は簡単なコードを書いてプログラムを作ってみましょう(=・ω・=)ノ
自分の記述したコードがプログラムとしてきちんと動いた時の喜びこそが
今後もその言語とお付き合いを続けていこうと思う原動力になるはずです。

お試し用のコード例

せっかくなので私もちょっとしたお試しコードを置いておきます。
ものすごく簡単なプログラムの作り方⇒【 C# 】 はじめてのプログラミング ” Hello World! ”
ちょっと簡単なプログラムの作り方⇒【 C# 】 猫をなでるだけのプログラム(編集中)
それぞれのコードや用語について、私なりにではありますが解説を付けてあるので
そちらも合わせてご覧ください。

プログラムの作成手順

プログラムを作ろう!と思い立った時の一般的(と私が思っている)作成手順をご説明します。
プログラム作成手順のフローチャート
なんとなくこんな感じ、という流れは伝わりましたでしょうか。
次の項目からは上の手順の中からデバッグ、ビルド、セットアップについて詳細をご説明します。

デバッグの手間と回避

デバッグとはプログラムの中にある誤り(バグ)を発見・除去・修正すること
私たちが記述したプログラムコードの段階でミスがあれば、
プログラムを実行してもバグによるエラーが吐き出されるばかりで
コンピュータは命令を聞いてくれずにそっぽを向きます。

「 ; 」「 = 」「 (半角スペース) 」などを駆使してC♯のコードを記述するのですが
一つ記号や文字が抜けたり、英字の大文字小文字、半角全角を間違えただけでも
プログラムはちゃんと動かないのです。
Visual Studioにはデバッグの支援機能も色々あり、
コードを記述した時点で単純な文法ミスであれば気づいて教えてくれるので楽ができます。
ちなみにデバッグを行ってくれるツールを『デバッガ』と呼びます

バグで躓いてデバッグに取られる時間を出来る限り減らすためには
コードを書く段階から気をつけるに越したことはありません。

★基本に忠実かつ綺麗なコードを書くように心がける
 ごちゃっとした汚いコードで適当にその場をしのぐと、
 デバッグの段階で自分にそれは跳ね返り、後々まで尾を引くらしいですよ。悪夢ですね。

★段取りはきちんと
 家を建てた後で水道管を引き忘れた事に気づくような事態は避けましょう。

★偉大なる先人たちの失敗と成功を学ぶ
 少しコーディングに慣れてきたら、他の人がWeb上に載せてくれているコードもじっくり読んでみましょう。
 同じ動作を目的としたコードでも、人によって方法やクセが違うことが分かり、
 自分の目指すところがどこなのか分かるかもしれません。
 それに、自分が躓いているところは、いつか他の誰かが通った道かもしれません。
 周りに先輩がいるなら一緒に見てもらったり
 サポート掲示板などで親切な人に相談してみたりするといいかもしれません。

そしてたまには気分転換
 どこがバグか分からないまま無為にコードを見つめ続けるなんて精神衛生上よろしくない気がします。
 疲れた時は遠くを見ましょう。足元に可愛い愛犬や愛猫が居るなら撫でましょう。
 何もかもを破壊したくなったなら破壊(仮)しましょう。
 そんな時のための Destroy the Web 。
 ダウンロードおよび使い方については
 Destroy the Webでページを破壊(仮)してストレス解消 をご覧ください。
 試しにこのブログの記事でもご遠慮なく破壊(仮)してみてください。
  

コードとコンパイルとビルドのお話

私たちが話す人間の言葉はコンピュータには通じません。
逆にコンピュータが話す言葉は私たちには理解できません。
これはお互いが使っている言語が、住んでいる国どころか
次元が違う性質の言語であるためです。
電流のONとOFF、0と1だけで会話されても私たちには何のことやら。
しかし私たち人間の命令をどうにかしてコンピュータに伝えないと動いてもくれないし
逆にコンピュータからのお返事が来ないとプログラムが動作したか、
どんなデータのやり取りがあったかも私たちには伝わりません。

そこで、
【1】私たちがC#を使って記述したプログラムコードを通訳(.NET Framework)を介して翻訳(コンパイル)して
【2】コンピュータが理解できる形(共通言語)にしてコンピュータに伝え、
【3】共通言語を受け取ったコンピュータが普段使っている言語に変換・理解・実行する

以上の流れでプログラムが実行されます。
逆にコンピュータからのお返事も、コンピュータ言語⇒共通言語⇒人間の言語といったように
変換されて私たちの見慣れたウインドウや数字やテキストとして表示されます。

【1】私たちが記述したプログラムコード=ソースコード、ソースファイル
【2】コンピュータが理解できる形=マネージコード(中間言語)、
                 共通言語、中間形式、オブジェクトコード、実行ファイル

【3】コンピュータが普段使っている言語=ネイティブコード、0と1の羅列、機械語

【1】~【3】のコードの翻訳(コンパイル)の流れや、
通訳(.NET Framework)との繋がり(リンク)を形成して
最終的には実行可能なプログラムファイルを作成すること、
および作成されたプログラムファイルそのものを『 ビルド 』といいます。

ビルドしないとプログラムは動きません。

言い換えれば、ビルドで作られた実行可能ファイルは、翻訳(コンパイル)の結果
CPUの種類に依存しないコード=マネージコード(中間言語)になっています。
マネージコードを実行するには、共通言語ランタイムと呼ばれるソフトウェアが必要であり、
Windows用の共通言語ランタイムは .NET Framework の中に含まれています。
.NET Frameworkのページにおいて ご自分のパソコンの中から
「 これ要らないファイルなんじゃないの? 」と思って.NET Frameworkをを削除してしまうと
動作しないプログラムが出てくる
 とご説明したのはこのためです。

ビルド(build)は日本語で言えば「築く」、「組み立てる」、「仕上げる」など。
家屋の建築で言えば、基礎を作り、土台を繋ぎ、柱を繋ぎ、梁を渡し、床を組み、
屋根と外壁を仕上げ、それぞれの工程の『ビルド』を経て
ようやく『家』というプログラムは完成し、『住む』という動作が実行可能になります。

この工事工程のように、いくつものコードを書いて組み合わせ、望む動作を実行させるのがプログラミングです。
各段階で『ビルド』を行って、それぞれに不具合が無いかを確認しながら工程を進めていきます。
後は外壁を塗るだけという段階で「基礎に問題がある。建て直し!」なんてことになったら大変です。
一つの工程を終えるごとに、その部分に問題はないかをビルドして確認しましょう。
ビルドしたらエラーが出てしまった場合には不具合の修正を行った後でまたもう一度ビルドします。
この作業を『リビルド』と言い、普通はリビルドを繰り返しながらプログラミングを進めます。

デバッグとビルドの違い

この辺りまで読んでいただいた方の中には
「ちょっと待って、バグの修正に関わるデバッグとビルドの違いが分からなくなってきた」
となった方もいるかもしれません。私も思いました。

ざっくり言うと、デバッグはテスト走行で、ビルドは完成形としてまとめることです。
デバッグの段階であれば、ブレークポイントという一時停止点を自分で決めて
「とりあえずここまででエラーは無いかな?」と確認することが出来ます。
逆にビルドした場合は、一通りプログラムを動かした後でバグ(エラー)があれば表示されます。
たまにデバッグの段階ではエラーは出なかったのに
ビルド後にはエラーが出るといった場合もあるようです。
そんな時は更にエラー内容を確認して修正、リビルドを行います。

Visual StudioではF5を押すとデバッガが動き始め
デバッグ(バグの発見・修正)が始まります。
デバッグとビルドは別物ですが、デバッグの際に『プログラムを動作させる必要がある
=ビルドを行って実行ファイルを作っておく必要がある』ため、
必要に応じてVisual Studioは自動的にビルドを行ってからデバッグを始めます。
自分の知らない内にビルドされているので、Visual Studioを使い始めた頃は
デバッグとビルドの関係について混乱しがちです。

セットアップファイルの作成(=発行)

完成したプログラムをこっそり自分だけで動かして楽しむならセットアップしなくても良いのですが、
他の人にも使ってもらうためには、どのコンピュータ上でもインストール可能で
きちんと動作するように、必要なものを詰めた一つのパッケージとしてまとめておかなければなりません。

ディスクの形式で一般的に販売されているソフトをDVDドライブなどに入れると
自動でインストールが始まったり、自分でインストールのスタートを選択できますよね。
ネット上のフリーソフトなどでも、『ここからインストール』や
『インストールファイルをダウンロード』といったボタンをクリックしてインストールすることがあると思います。
こういったインストール&プログラム動作が可能な
まとまった一つのパッケージがセットアップファイル、俗にインストーラと呼ばれたりします。
サーバ配布(Click Once機能を用いて発行された)アプリケーションなら新しいバージョンに自動更新もできます。

今回はひとまずここまで。
もうちょっと私が成長して、自信を持って色々とご説明できるくらいになったら
単語から意味や用例コードを引ける辞書っぽいページを作ってみようかと考えています。
でも今はこれが精一杯・・・(Byルパン三世)

 良かったら押してみてください♥

  • このエントリーをはてなブックマークに追加
  • Pocket