menu
[資料] エスケープシーケンス
作業内容
  1. プログラミング環境
  2. 演習用PCにプログラミング環境を構築する
  3. プログラミングの実際
  4. 補足 逆アセンブル

プログラミング環境

GUIとCLI

 プログラミング環境にはそのユーザーインタフェース(User Interface) の違いから、GUI(Graphical User Interface)CLI(Command Line Interface)による2つの方法に分けることができます。GUIとは、情報をアイコンやボタンなどグラフィックスを利用して分かりやすく表示して、それをマウスで簡単に操作できるようにしたインタフェースです。CLIは、表示も操作もはコマンドと呼ばれる予め用意された文字列の命令をターミナルソフト(Windowsではコマンドプロンプト)から入力することで操作します。それぞれのインタフェースにおけるプログラミング環境の特徴を以下にまとめました。
CLI(Command Line Interface)
  • [使用する開発ツール]
    • Cコンパイラとテキストエディタ
  • [特  徴]
    • コマンドを駆使することで、複雑な処理も簡単に操作することができます。
    • はじめにコマンドを覚えなければならないため、慣れるまでにある程度の時間が必要です。
    • GUIを使って操作している多くの処理も、元はCLI用のコマンドとして作られています。そのため、コマンドを利用することでコンピュータ内部でどのように処理が進められているかを知ることができ、ソフトウエアの勉強にもなります。
GUI(Graphical User Interface)
  • [使用する開発ツール]
    • エディタ、コンパイラ、デバッグなどを含む統合開発環境(IDE:Integrated Development Enviroment)
  • [特 徴]
    • マウスを使って簡単に操作することができます。
    • IDEにはエディタ機能、コンパイルなどのビルド機能、デバッグ機能など非常に多くの機能がありますが、それらを使いこなすためにはプログラミング学習とは別に多くの学習時間が必要になります。
    • IDEには大規模なソフトウエアを構築するための様々な補助機能が充実していますが、その多くはプログラミングの初学者にとって必ずしも必要なものではありません。
 プログタミングの初学者を対象とする本演習ではCLI環境で学習をスタートさせます。後半では、統合開発環境IDEによるプログラミングを知るために、Microsoft Visual Studioを使ったプログラミングについても触れていきます。

開発ツールについて

 WindowsのCLI環境で必要な代表的な開発ツールの一覧を以下に示します。MS Visual StudioはIDEですが、これに含まれるCコンパイラのみをCLIから呼び出して利用することが可能です。テキストエディタには実に多くの種類がありますが、特にプログラム開発向けに特化もしくは考慮されているものをここでは選択しています。  
※MS Visual Studioには複数の種類がありますが、無償のcommunity エディションを選択したとしても、Cコンパイラ自体に違いはありません。

演習用PCにプログラミング環境を構築する

前提条件

  1. 対象OS: Windows 7以降
  2. 言語処理プログラム
  3. Microsoft Visual Studio 2013に含まれるMicorosft Cコンパイラなど言語処理プログラムを利用するため、VSがインストール済みであること
  4. エディタ
  5. テキストエディタサクラエディタがインストール済みであること

作業フォルダの作成

 C言語のソースコードファイルやコンパイルによって生成されるオブジェクトファイル、実行形式ファイルを保存しておくフォルダを用意しましょう。フォルダ「マイドキュメント」の下のフォルダ「情報処理演習」の中に、新規フォルダ「Cprog 」を作成してください。
新規フォルダ作成

プログラミング環境設定のためのバッチファイルの作成

 WindowsにおけるCLIをコマンドプロンプトと呼びます。コマンドプロンプトからエディタやコンパイラを簡単なコマンドで呼び出すことができるように、バッチファイル(batch file)と呼ばれるファイルを作成しておきます。下記の内容をテキストエディタで入力し、ファイル名を「vscmd.bat」としてフォルダCprogの中に保存してください。
echo off
echo C言語の演習を始めましょう
title = %USERNAME% %date%
path %PATH%;C:\Program Files (x86)\sakura
doskey ed=sakura $*
doskey cc=cl $*
%windir%\system32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
echo on
バッチファイルの解説
  1. 1行目: コマンドの画面表示をオフにする
  2. 2行目: 画面に メッセージ「C言語の演習を始めましょう」を表示する
  3. 3行目: コマンドプロンプトのタイトルにユーザ名と日付を表示する
  4. 4行目: サクラエディタにパスを通す
  5. 5行目: サクラエディをコマンド"ed [ファイル名]"で起動できるようにする
  6. 6行目: コンパイルをコマンド"cc ソースコード・ファイル名"で処理できるようにする
  7. 7行目:コマンドプロンプトからVSに含まれる言語処理プログラムを操作できるようにする
  8. Visual Studio 2015 の場合は、
    %windir%\system32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"

batファイル「vscmd.bat」の動作確認

 バッチファイル「vscmd.bat」をダブルクリックして起動します。下図のようにコマンドプロンプトが表示されれば完成です。もし、エラーメッセージが表示された場合には、もう一度見直して修正をします。(以降の図に表示されているパスは演習室でのものとは異なります。自身の環境に合わせて読み替えてください。)
ソースコードの作成

プログラミングの実際

ファイル名を指定してエディタを起動する

 コマンドプロンプトから"ed HelloWorld.c"と入力し、テキストエディタ「サクラエディタ」を起動します。

ソースコードの入力

 下記のソースコードを入力しましょう。ファイル名には既に"HelloWorld.c"が設定されているの、入力が完了したら[上書き保存]を選択します。
ソースコードの作成

コンパイルする

 ソースコードファイルHelloWorld.cをコンパイルして機械語に翻訳しましょう。コマンドラインから"cc HelloWorld.c"と入力し、Enterキーを押します。 ソースコードに間違いがなけば、下記のようにオブジェクトファイルHelloWorld.objと、実行形式ファイルHelloWorld.exeが生成されます。もし、ソースコードに間違いがあれば、コマンドプロンプト上にエラーメッセージが表示されます。間違いのある箇所とその内容を指摘しています。ソースコードを修正して、リコンパイルしましょう。
コンパイル

実行する

 コマンドプロンプトから"HelloWorld"と入力して、Enterキーを押します。予想通りの結果が得られたでしょうか。もし、違っていたらソースコードを見直して修正します。
実行

補足 逆アセンブルと機械語

 完成したプログラムがどのよな機械語に翻訳されたのか、確認してみましょう。
ダンプ
>dumpbin /rawdata HelloWorld.exe

逆アセンブル
>dumpbin /disasm Hellworld.exe > HelloWorld.asm
逆アセンブルした結果を.asmファイルに書き出しました。このファイルはテキストエディタを使ってその中身を確認することができます。