1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

変数をどのように扱うか?:COBOLでチェックインタープリタ

Last updated at Posted at 2015-04-29

#変数をどのように扱うか?
##課題:具体的な変数名のままだと汎用的なチェックインタープリタにならない
例えば、次のようなIF文によるチェック条件があったとします。「従業員レコード.住所.郵便番号」の部分が変数名です。

字句解析と構文解析は、チェックインタープリタの対象外にしたので、この様な変数をチェックインタープリタにどんな形で与えて、どのように扱えばよいか?

例:
IF 従業員レコード.住所.郵便番号 = "100-****"
THEN
 メッセージ出力 "住所は東京都千代田区"
END-IF

従業員レコード.住所.郵便番号は、従業員レコードの6桁目から8桁に相当する。
しかし、チェックインタープリタは「従業員ファイル」だけでなく、どんなファイルでも扱えるように、もっと汎用的にしたい。

##従業員レコードを抽象化してみる
従業員レコードを抽象化して考えると、単なる入力レコード(一本の紐、String)で、この「入力レコードの6桁目から8桁」というのが、チェックインタープリタで扱う変数となる。

チェックインタープリタの外部仕様として、入力は3つで出力は1つと定義する(厳密には入力は4つで、その1つはチェック条件ファイルなので、カウントには入れない)。

抽象化後:
IF IN1.6-8 = "100-****"
THEN
 PUT OUT.1 "住所は東京都千代田区"
END-IF

IMG_20150425_0001_NEW.jpg

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?