1.1 オートマトンと状態遷移図

2.5 プログラムの構成要素
(1)文字セット
①ASCII(American Standard Code for Interchange)JISコードと同じ
②EBCDIC(Extended Binary Coded Decimal for Information Code)
1バイトの文字コードとしてはASCIIが世界標準となっているが、一部の
大型コンピュータではIBM社のEBCDICを使うものもある。
【日本語の文字コード】主に3種類。大型機では特殊なコードもある。
① JISコード(日本工業規格で標準化)
② EUC(Extended UNIX Code:主にUNIXなどで使われる)
③ Sift JIS(WindowsやMac OSなどで使われる)
(2)字句要素(lexical element)
自然言語の単語にあたる
①言語別に字句の種類、分け方、呼び方は多少変わるが、基本的には
それほど変わらない。
②言語によっては字句をトークン(token)ということもある。
識別子
: 変数名や関数名
キーワード : 決まった意味で用いる語。If, while, for など。
定数リテラル : 表記自体が、ある型の特定の値を示す。整数、浮動小
数点、文字、16進数など
文字列
: 文字列定数。通常、二重引用符(“)で囲む。
演算子
: +、*など演算子を表す特殊文字。
区切り符号 : 空白文字、タブ、改行、注釈など
注釈
: プログラムの実行には意味のない部分。字句解析で
無視する。
(3)データ型(data type)
①データの構造や演算の観点からのデータ種別。
②ユーザ定義型を定義できる言語、さらにデータ抽象化の観点から演
算子を定義できる言語もある。
③一般に手続き型の言語では、同一データ型の集まりを配列として宣
言できることが多い。
【C言語の例】
int
float
double
char
:
:
:
:
整数
浮動小数点
倍精度浮動小数点
文字型
(4)演算子(operator)
①式(expression)の演算を指定する。
②一般に優先順位がある。
【例】
一次子
単項演算子
べき乗
乗除算
加減
比較演算子
論理演算子
代入演算子
順次演算子
優先順位が高い
()
+-!
^
* / \ Mod
+ -
> < = …
and or
=
,
優先順位が低い
(5)文(statement)
①代入文や実行の流れの制御に用いられる。
②データの型宣言等も文の役割である。
【例】
単純文
複合文
条件文
繰返し文
式;
{式;式;…;}
if(式) 文 else 文
while (式)文
do 文 while(式)
for(式; 式; 式)文
選択文
switch(式)文
補助制御文 break; return 式; …
(6)関数(function)/手続き(procedure)
①プログラムの構成単位
②FORTRANでは手続きをサブルーチンという。
③Prologでは述語がこれらに相当する。
④値を返すものを関数という。
⑤再帰的呼出しができる言語がほとんど(FORTRANではできない)。
引数の受渡し
・値による受渡し(call by value)
・参照による受渡し(call by reference, call by address)
(7)コンパイル単位
①1つのコンパイル単位に変数宣言と関数/手続き宣言
②アドレス解決はコンパイル単位別。
③外部変数のアドレス解決はリンケージエディタで行う。
④通常、内部変数はスタックに置かれることが多い(FORTRANはロー
カル変数として処理)
(8)変数名や関数名の有効範囲と記憶割当て
名前の有効範囲(scope)と参照可能な時間(存続期間:extent)
Cの場合
■内部変数
①auto
関数の起動ごとにスタックに割り当てられる
②register 余裕があれば計算機のレジスタに、余裕がなければスタッ
クに。
③static
1箇所に固定して割り当てる。関数が再び起動されたとき、
以前の値が残っている。
■外部変数および関数
①extern 全プログラムで有効
②static
宣言されるファイル内で有効
最近の言語における有効範囲と記憶割当て
VB、C#など
■関数内部
内部変数(関数の起動ごとにスタックに割り当てられる
■モジュール内のみ(private)
同一モジュール内の関数のみ参照可能。
■モジュール外有効(public)
他モジュールからも参照可能
(その他)
呼出し系列の深さ方向にのみ参照可能という方式もある(ALGOL,
Lisp等)