「プログラミング」カテゴリーアーカイブ

【基本情報・応用情報】
・プログラミング作法、コーディング基準を習得し、応用する。
・プログラム言語の文法の表記法を習得し、応用する。

【ITパスポート】
・プログラム言語とプログラミングの役割を理解する。

プログラミング(概要)

情報処理技術者試験での学習内容

【基本情報・応用情報】
・プログラミング作法、コーディング基準を習得し、応用する。
・プログラム言語の文法の表記法を習得し、応用する。

【ITパスポート】
・プログラム言語とプログラミングの役割を理解する。

(1)プログラミング

1.プログラミング作法とコーディング基準 ITパスポート 基本情報 応用情報

プログラミング作法とコーディング基準の目的、効果、種類を理解する。また、プログラミング作法とコーディング基準を守らない場合に起こる弊害を理解する。

用語例:字下げ(インデンテーション)、ネストの深さ、命名基準、仕様禁止命令、プログラムの機能性・効率性・使用性・保守性の向上

2.プログラム構造 基本情報 応用情報

プログラムの信頼性、保守性の観点からプログラム構造を理解する。

用語例:モジュール分割、独立性、メインルーチン、サブルーチン、DLL

3.データ型 基本情報 応用情報

プログラム言語で使用される代表的なデータ型を理解する。

用語例:整数型、実数型、論理型、文字型、抽象データ型、構造型

4.Webプログラミング 基本情報 応用情報

WebサーバとWebクライアントの仕組みを理解し、Webサーバ、Webクライアントにおけるプログラムの役割と作成方法、Webアプリケーションプログラムを開発する環境を理解する。

用語例:サーバサイドプログラミング、リッチクライアント、Ajax、Apache、JSP(Java Server Pages)、HTML5技術(canvas、WebSocket、Geolocation APIほか)

(2)文法の表記法 基本情報 応用情報

プログラム言語の構文を定義するために、BNF等のメタ言語を使用することを理解する。

用語例:EBNF(拡張バッカス記法:Extended Backus Naur Form)

 

プログラミング作法とコーディング基準

この記事での学習内容 ITパスポート 基本情報 応用情報

プログラミング作法とコーディング基準の目的、効果、種類を理解する。また、プログラミング作法とコーディング基準を守らない場合に起こる弊害を理解する。

用語例:字下げ(インデンテーション)、ネストの深さ、命名基準、仕様禁止命令、プログラムの機能性・効率性・使用性・保守性の向上

プログラミング

プログラミングは、コンピュータを使って実行する作業手順を、前もって作っておく作業です。プログラムとは、コンピュータ用の作業手順書を、コンピュータに分かることが出書き出したもの、といえます。

人間が何かの仕事をこなすときは、まず段取りを考えて計画を立て、それに従って実際に仕事を進めます。これと同じように、コンピュータに仕事をさせるための段取りを書いたものがプログラムであり、プログラムを作成する作業がプログラミングです。コンピュータはプログラムに従って運用を行います。

プログラミング作法とコーディング基準の目的・効果

プログラミング作法は、プログラムを読む人にとって適切であろうと、一般的に指示された流儀のことです。対して、コーディング基準とは、チームや組織が定めたプログラムの書き方の基準です。いずれもプログラムの保守性を改善することが目的であり、読む人の労力や読み間違いを減らす効果があります。

同じ処理をするプログラムであっても、書き方の流儀や個人差が発生してしまいます。例えば、C言語で「変数aに1を加算する」という処理でも、以下のように異なる書き方が可能です。

  •  a++
  •  a = a + 1

専門家の間では、前者のほうが簡潔で、読み間違いが少ないとして支持されている、というのがプログラミング作法の例です。

また、コーディング基準は以下のような事項に関して定められることが多いです。

インデンテーション文の書き出し位置のインデンテーション(字下げ)の指針。
ネスト(入れ子)データ構造や制御構造の階層状態。ネストの深さを規制。
命名基準変数やモジュールの名前の付け方の指針。
使用禁止命令使用を推奨しない命令。(Goto文の禁止など)

インデンテーション

インデンテーション(字下げ)とは、プログラムの文の書き出し位置を、何文字分か右の方へ下げることです。これは、一般的なビジネス文書でも当てはまる事柄で、文章を読む時の人間の視線が左から右、上から下と流れることを踏まえたものです。

プログラムのインデンテーションは、例えば次のようにします。

  1. データ構造のネストを字下げで表す。
  2. 反復や選択などの制御構造のネストを字下げで表す。
  3. ラベルよりそれ以外の部分を字下げする。
  4. 字下げは半角文字4文字分ずつとする。
インデンテーションの例

label1:
    i=0;
    repeat
        a=b+c;
        ~~

このような字下げは、処理には関係ない表現なので、人間にとっての読みやすさを目的として、コーディング基準で規定するのが一般的です。

ネスト

データ構造や制御構造の階層状態をネスト(入れ子)といいます。ネストが深すぎると人間は把握することが難しくなります。

例えば、コーディング基準でネストの深さを4までに規制します。それを越えようとする場合は、一部を他のモジュール呼び出しや関数参照にしてネストが深くなるのを回避します。

命名基準

命名基準とは、変数、モジュール、関数、ラベルなどの名前の付け方の指針です。以下に、命名基準の例を示します。

  1. 元になっている業務や学術の用語と一致する名前を用いる。
  2. 配列の索引には、i,j,kを用いる。
  3. カウンタにはn,mを用いる。
  4. 長さを表す変数には、l,mを用いる。
  5. ポインタ変数には、p,qを用いる。
  6. 合計には、sを用いる。
  7. 一時的な変数には、t,wを用いる。

使用禁止命令

使用禁止命令とは、仕様が推奨されていない命令や文のことです。

例えば、goto文を禁止して、代わりに反復や選択の文で代替するほうが、読み手には読みやすくなります。

プログラム構造

この記事での学習内容 基本情報 応用情報

プログラムの信頼性、保守性の観点からプログラム構造を理解する。

用語例:モジュール分割、独立性、メインルーチン、サブルーチン、DLL

プログラム構造

一つのプログラムは、いくつかの要素で構成されます。複数の要素で構成されるプログラムの形を、プログラム構造といいます。

モジュール

一つのプログラムを構成する要素を「モジュール」といいます。モジュールは、メインルーチン、サブルーチン、コンパイル単位などを総称する一般的な用語です。

モジュール構成にすることで、次のような効果が生まれます。

  • 人間の行っている作業の分解単位にモジュールを対応させることによって、わかりやすくなります。例えば、ATMを例に取ると、預入モジュール、引出しモジュール、残高照会モジュールといった対応をさせます。
  • 共通部分を「共通モジュール」とすることによって、プログラム全体の規模を減らすことが出来ます。
  • 分割統治法といって、モジュール単位に分割することで、モジュールごとの設計や試験、保守に集中することが出来ます。

メインルーチン

いくつかのモジュールで構成されるプログラムにおいて、最初に起動されるモジュールをメインルーチンといいます。「ルーチン」とは、「決められた仕事」という意味の言葉です。

メインルーチンの内容は、全体の処理の流れの概要を表す役割をはたすことが多いです。

サブルーチン

サブルーチンは、メインルーチンや他のサブルーチンから呼び出されるモジュールです。サブルーチンは2ヶ所以上から利用する共通ルーチンにすることが出来ます。また、別のプログラムで再利用することも出来ます。

Webプログラミング

この記事での学習内容 基本情報 応用情報

WebサーバとWebクライアントの仕組みを理解し、Webサーバ、Webクライアントにおけるプログラムの役割と作成方法、Webアプリケーションプログラムを開発する環境を理解する。

用語例:サーバサイドプログラミング、リッチクライアント、Ajax、Apache、JSP(Java Server Pages)、HTML5技術(canvas、WebSocket、Geolocation APIほか)

Webプログラミング

Webプログラミングは、WWW(ワールドワイドウェブ)を閲覧する一環として利用するプログラムのプログラミング作業です。HTMLなどのマークアップ言語の機能や部品を用いたり、プログラム言語で書かれたモジュールを呼び出したりする形でプログラミングします。

初期のWWWは、資料を世界的に共用するという、静的な表現の役割をはたすものでしたが、次第に旅行業やインターネット通販などの動的な処理をすることが出来て、現在に至っています。

Webプログラミングには、閲覧者側のクライアントコンピュータ側で動作するプログラムを作ることと、提供者側のWebサーバ側で動作するプログラムを作ることがあります。

具体的な例としては、各種の会員制Webサイトや通販サイト、インターネットバンキングなどがあります。また、スマートフォンのアプリもある種のWebプログラムと言えるでしょう。

Webプログラミングにおけるサーバの役割

Webプログラミングにおける、サーバの役割は次のようなものがあります。

  • クライアントコンピュータへ送信するコンテンツの量を減らすために、大規模な処理はサーバ側で担当する。
  • プログラム言語で書かれたモジュールをアクセスする部分をサーバ側に置く。
  • サーバ側にあるファイルやデータベースにアクセスする部分をサーバ側に置く。

その他、サーバ側のプログラムは、アクセスが集中した場合の負荷や、セキュリティなどを意識して設計・プログラミングします。

Webプログラミングにおけるクライアントの役割

Webプログラミングにおける、クライアントの役割は次のとおりです。

  • HTMLなどのマークアップ言語や、小さな部品を用いてプログラミングします。
  • 閲覧者との対話の部分を担当します。

クライアント側のプログラムは、閲覧用に提供する文章や画像のを用いて、閲覧者にとって分かりやすくて手間の掛からない操作性になるように設計・プログラミングします。