SML# - Tutorial/006 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/005]] | [[ 次ページ |Tutorial/007]] ]
----
今度は,Cプログラムを作成し,コンパイルし実行してみよう.
もし,現在(5)のMLプログラムの作成そ終了したところであれば,shell
バッファに以下のコマンドを入力しフォルダを切り替えよう.
C:\SMLSharpAndC\sml>cd ../c
cd ../c

C:\SMLSharpAndC\c>
さらに,Meadowで以下のコマンドを実行し,Meadowのデフォルトフォルダを
C\SMLSharpAndC\Cに変更しておくと便利である.
M-x cd
この後,ミニバッファに現れる現在のデフォルトフォルダ
C:\SMLSHarpAndC\smlを編集し,C:\SMLSharpAndC\cに変更しEnterを入力すれ
ばよい.

! Cソースファイルの作成と起動
SML#コンパイラと異なり,Cコンパイラでは(現在のところ)対話型の処
理はサポートされていない.Cプログラムは,以下のサイクルを実行すること
になる.
# ソースファイルの作成
# Cコンパイラ(gcc)でソースファイルをコンパイル
# 作成された実行形式ファイル(a.exe)を実行
では,まず,以下の内容のソースファイルをC:\SMLSharpAndC\C\test.cに作成
してみよう.
#include <stdio.h>
main() {
   printf("Hi, there!\n");
}
これをコンパイルするには,以下のコマンドを実行すればよい.
c:\SMLSharpAndC\c>gcc test.c
gcc test.c
この結果'''a.exe''という実行形式ファイル(コマンド)が作られるので,そ
れを以下のように起動すれば,test.cのプログラムを実行することができる.
c:\SMLSharpAndC\c>a.exe
a.exe
Hi, there!

c:\SMLSharpAndC\c>

!Cプログラミングの基本原理
まず,test.cの内容を吟味してみよう.
この構成要素の意味は以下の通りである.
* '''#include <stdio.h>''' --- I/Oライブラリ使用宣言
* '''main() {''' --- このコードがmainという特別の名前のプログラムであることの宣言
* '''printf("Hi, there\n");''' --- "Hi, there!"という文字定数に続き改行文字を印字する実行文.
* '''}''' --- ひとまとまりのプログラム(ここではmainというプログラムの本体)の終了の区切り記号.
この中の実行プログラムコードは'''printf("Hi, there\n");'''の部分である.
これは,printfというライブラリプログラムを呼び出す一つの実行文である.
このライブラリプログラムは与えられた文字列を端末に印字する.

Cプログラミングの基本は,何かの動作をする実行文を順番に書いていくこと
である.実行文は''';'''(セミコロン)で終了する.各実行文の中には,定
数や演算子を含んだ式が現れるが,実行文自体は式ではなく,値は持たない.
複数の実行文は''''{'''と'''}'''で囲みひとまとまりの実行単位とすること
ができる.Cプログラムは,実行文のまとまりを,繰り返し実行や,条件に応
じた実行などの制御文で組み合わせで構成される.それらの実行単位に名前を
付け,コンパイル可能なプログラムとする.

このような構造を持つCのプログラミングの基本的な考え方は,メモリー状態
が目的とした状態になるまで,文を(繰り返し)実行する,というものである.

----
[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/005]] | [[ 次ページ |Tutorial/007]] ]