言語の優れた機能を調査するのに時間を費やすのが好きです.たとえすぐにそれらを使う機会がなくても.と同じくらい重要になります。では、Cobol から学べる優れた機能は何でしょうか?
16 に答える
出力形式は変数宣言の一部です。とてもビジネス志向です。
COBOL では、変数宣言は、次の項目を含む DATA DIVISION 内の行で構成されます。
* A level number. * A data-name or identifier. * A Picture clause.
開始値は、VALUE 句と呼ばれる PICTURE 句の拡張によって、変数に割り当てることができます。
いくつかの例:
01 GrossPay PIC 9(5)V99 VALUE ZEROS. 01 NetPay PIC 9(5)V99 VALUE ZEROS. 01 CustomerName PIC X(20) VALUE SPACES. 01 CustDiscount PIC V99 VALUE .25.
MOVE CORRESPONDING
C# に 2 つのクラスがあり、いくつかのフィールドが共通しているとします。たとえば、クラス A には名前、年齢、性別、およびその他のフィールドがあり、クラス B には同じ 3 つのフィールドに加えて、独自のフィールドがあります。フィールドをコピーする唯一の方法は次のとおりです。
a.Name = b.Name;
a.Age = b.Age;
a.Sex = b.Sex;
COBOL では、次のように記述します。
MOVE CORRESPONDING A TO B
1)。簡単に学べる。2)。構文はより英語に似ているため、初心者でもプログラムのロジックを簡単に理解できます。
変数を宣言するときにも興味深い機能があります...変数の宣言の場所で、変数の可能な値を宣言し、ブール値でラベル付けすることもできます。使用できます
IF [boolean_label]
それ以外の
IF [variable] IS [value]
これは、値が特に意味のない場合 (つまり、マジック ナンバーやマジック文字列) に特に便利です... これらのマジック値は、変数の宣言にのみ表示され、その意味が適切にラベル付けされます。
次のようにして、変数をこれらの値のいずれかに設定することもできます。
SET [boolean_label] TO TRUE
Sun(現在のOracle)の人々はおそらく私に腹を立てるでしょうが、FORTRANとCOBOLは、どこでも言語を実行できる1回の書き込みの最初の試みでした。IBMは、COBOLの試みをほとんど無効にする拡張機能をCOBOL言語に追加しました。
COBOLおよびFORTRAN以前は、コンピューター言語はマシン固有でした。コンピューターは非常に高価だったため、コンピューターをアップグレードするたびにコードを書き直す方が安価でした。IBMは、1950年代後半に、一貫性のあるコンピューターアーキテクチャーを作成して維持することで、顧客のお金を節約できる(そしてコンピューターシステムの市場を拡大できる)ことに気づきました。そのため、IBMは360シリーズのコンピューターを開発しました。
同様に、顧客は、新しいマシンごとにソフトウェアを書き換えるのに費用がかかりすぎることに気づきました。IBMはFORTRANの始まりを開発し、GraceHopperと連邦政府はCOBOLの開発を推進しました。これが、IBMがこれらすべての独自の拡張機能をCOBOLに追加した理由を説明しています。連邦政府の関与は、COBOLがそのような冗長な言語である理由も説明しています。
COBOLは、出力のフォーマットに最適です。次のような出力フィールド。
合計支払いPIC$$$、$$$。99
値のすぐ隣に$を出力します。最大99,999.99ドルで印刷されます。値がたったの$150の場合、$150.00と出力されます。また、通常、その量を単語に変換するCOBOL関数があります-「100ドル50ドル、セントなし」
レコードを再定義して、複数のレコード タイプのテキスト ファイルを処理できるようにすることもできます。
01 my-address-record.
02 my-record-type pic x.
02 my-street pic x(20).
02 my-city pic x(20).
02 my-state pic x(2).
02 my-zip pic x(5).
02 filler pic x(3).
01 my-comments-record redefines my-address-record.
02 filler pic x.
02 my-comments pic x(50).
01 my-automobiles redefines my-address-record.
02 filler pic x.
02 year pic 9(4).
02 make pic x(20).
02 model pic x(20).
02 filler pic x(6).
--code--
if my-record-type = 'a'
... process address
else if my-record-type = 'b'
... process comments
else if my-record-type = 'c'
... process automobiles.
もう1つの利点...メインフレームでプログラミングしている場合、COBOLが利用可能になることをほぼ確信できます...他の言語には当てはまりません。メインフレームのCのようなものです。