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等)
© Copyright 2024 ExpyDoc