コンテンツにスキップ

COBOL

Xuất xứ: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』
COBOL
COBOL
TheCOBOL 60report toCODASYL(April 1960)
パラダイム Tay 続き hình プログラミング,オブジェクト chỉ hướng プログラミング,Mệnh lệnh hình プログラミングウィキデータを編集
Lên sân khấu thời kỳ 1959 năm(65 năm trước )(1959)
Khai phát giả グレース・ホッパー,William Selden, Gertrude Tierney, Howard Bromberg, Howard Discount, Vernon Reeves,ジーン・E・サメット
Mới nhất リリース COBOL 2014
Hình phó け Cường いTĩnh hình phó け
Chủ な処 lý hệ

opensource COBOL

Ảnh hưởng を chịu けた ngôn ngữ FLOW-MATIC,COMTRAN, FACTウィキデータを編集
Ảnh hưởng を cùng えた ngôn ngữ ABAP,CobolScript,PL/I
プラットフォーム z/OS,z/VM,z/VSE,MCP,VOS3,ACOS,GCOS,VMS,OS/400,UNIX,Linux,Windows,Mac OS,CP/M,MS-DOSほか
拡 trương tử .cbl,.cob,.cpy
テンプレートを tỏ vẻ

COBOL(コボル) は, 1959 năm に sự vụ 処 lý dùng に khai phát されたプログラミング ngôn ngữである. Danh trước は “CommonBusinessOrientedLanguage”( chung sự vụ 処 lý dùng ngôn ngữ ) に ngọn nguồn する[1].

Điểm chính

[Biên tập]

PhiLý hệの sự vụ viên や quan lại でもプログラミングできる ngôn ngữ として thiết kế されたため,Tự nhiên ngôn ngữであるTiếng Anhに gần い ghi lại をめざしたコマンド ngữ vựng や cấu văn ( シンタックス ) が chọn dùng されている. Đặc に kim ngạch tính toán など sự vụ 処 lý dùng に quảng く sử われている. COBOLは tự nhiên ngôn ngữ ( tiếng Anh ) に gần い cấu văn を cầm つため, そ の ソースコードは ghi lại が dài dòng にはなるが,Nhưng đọc tínhが cao い. Bổn の ように, bộ, tiết, đoạn, văn という giai tầng で ghi lại される. Người によっては quan số や số thức だらけ の ngôn ngữ よりもハードルが thấp い.リフレクションができないなど, モダンなプログラミング ngôn ngữ に so べて nói lý lẽ chế ngự cơ năng は nghèo nàn である. Một phương, văn tự liệt phân tích や văn tự liệt biên tập, trướng phiếu, hình ảnh biên tập など の sự vụ 処 lý cơ năng は phong phú である.

COBOLは sĩ dạng の cổ い ngôn ngữ である. ただ, ngôn ngữ quy cách は拡 trương が続けられていて, 2002 năm bản lấy hàng ではオブジェクト chỉ hướngにも đối ứng して bộ phẩm tính を hướng về phía trước した. Hiện thật の プロジェクトで chế ước となる の は, COBOL の ngôn ngữ cơ năng の không đủ よりは, giá động プラットフォーム, nghiệp vụ vận dụng あるいは bảo thủ thể chế である trường hợp も nhiều い.

COBOLは, khoa học kỹ thuật tính toán hướng け のFORTRANに thứ いで quốc tế な chuẩn hoá が hành われた, lúc đầu の プログラミング ngôn ngữ である. Qua đi の バージョンと の trao đổi tính を coi trọng した quốc tế tiêu chuẩn quy cách にしたがって nhiều く の プラットフォームでコンパイラが khai phát されてきた の で, COBOL to COBOL のマイグレーション( プラットフォーム の đổi mới ) は tương đối dễ dàng である.

To ra なCOBOLプログラムおよびそれら の 処 lý するデータが, xí nghiệp や chính phủ cơ quan に nhiều năm khai phát し続けられ giá động している.ガートナーPhát という tình báo によれば, メインフレームが thế giới 1 vạn サイト trở lên あって3 vạn 8 ngàn のレガシーシステムがあり, COBOLは toàn プログラム ước 3,100 trăm triệu hành の うち の ước 65% の ước 2,000 trăm triệu hành あって, mỗi tuổi chừng 5 tỷ hành が tăng えているという [2] [3] [4].これはFORTRANアセンブラを hợp わせた tư sản の mấy tỷ hành に so べて áp đảo に nhiều い. また, thế giới の thương dùng データ の ước 75%, thương dùng トランザクション の 80% trở lên ( Google kiểm tác の 200 lần trở lên ) である. COBOL khai phát giả は85 vạn người trở lên いるが, COBOL khai phát giả の tăng thêm より giảm bớt がずっと tốc いという.

Nước Nhật nội では, 2016-2021 năm の ソフトウェア khai phát データ1,476 kiện をまとめたIPAの レポートによると, 1 vị のJava( 42.4% ) に thứ いでCOBOLは16.3%で2 vị[5]である.

こ の ように, ra đời から60 năm trở lên たってもなお chủ lưu ngôn ngữ の ひとつ の tòa を chiếm めている điểm で, hắn の lúc đầu の ngôn ngữ を dẫn き ly している.

Ra đời kinh vĩ

[Biên tập]

1950 niên đại,Sự vụ 処 lý ngôn ngữ は khai phát メーカーごとに dị なっていた. そ の thống nhất の sự tất yếu を nhận thức していたアメリカ quốc phòng tổng tỉnhによって, sự vụ 処 lý dùng の chung ngôn ngữ の khai phát が đề án され,CODASYL( Conference on Data Systems Languages, データシステムズ ngôn ngữ hiệp nghị sẽ ) が thiết lập された. そうした bối cảnh の hạ,1959 nămにCODASYLによって khai phát された chung sự vụ 処 lý dùng ngôn ngữ がCOBOLである.

そ の sau, 1960 năm 1 nguyệt にCODASYLChấp hành ủy ban によって lúc ban đầu の sĩ dạng thư が thừa nhận され,Hợp chúng quốc chính phủ in ấn cụcに đưa られた. こ の lúc ban đầu の sĩ dạng thư は1960 năm 4 nguyệt に phát hành され, thường gọi COBOL-60と hô ばれている[6] [7].

COBOL の khai phát により, アメリカ chính phủ の sự vụ 処 lý システムは toàn てCOBOL の みで nạp phẩm されることとなった. これに bạn い, COBOLは sự vụ 処 lý dùng ngôn ngữ として thế giới に phổ cập することになる.

Hiện trạng

[Biên tập]

C ngôn ngữJavaなど の lên sân khấu sau も, COBOLは chủ に thương dùng tính toán ghi lại dùng として, chủ に tài chính nghiệp giới や hành chính サービスなどで quảng く sử dụng されている[8].

COBOL ngôn ngữ quy cách は, ローカル変 số が làm りにくく nói lý lẽ chế ngự cơ năng mặt が nhược かった cổ điển ngôn ngữ から の tróc da を đồ っている. オブジェクト chỉ hướng を chọn dùng し, nhập れ tử プログラムを khả năng としたうえ, COBOLからCOBOLクラスライブラリ の みならずJava の クラスライブラリも hô べるようにするなど, lẫn nhau vận dụng tính や cộng đồng khai phát dễ dàng tính, an toàn tính を cải thiện してきている.

2019 năm hiện tại, COBOL Cowboys xã の điều tra では2000 trăm triệu hành の COBOLプログラムが thời hạn nghĩa vụ quân sự で,フォーチュン500Xí nghiệp の 90%がCOBOLプログラムを sử い続けている[8].またマイクロフォーカスXã の Derek Britton thị は “COBOLシステムを vận dụng している tổ chức が vạn 単 vị で tồn tại” “こ の ngôn ngữ が thế giới の トランザクション処 lý システム の うち の 70%で dùng いられている” と thuật べた[8].

Số nhiều く の tân しい ngôn ngữ やフレームワークが hiện れた hiện đại, COBOLで làm られるシステムはレガシーであり, システム đổi mới khi に sĩ dạng を nắm chắc した có thức giả が cư ない sự や, tân kỹ thuật へ の đối ứng の khó しさが vấn đề になる sự がある.

COBOL の エピソード

[Biên tập]
  • “COBOL の dài dòng さ” は, khi chiếtハッカージョーク の ネタにされる. Lệ えばCOBOL の オブジェクト chỉ hướng 拡 trương án “ADD 1 TO COBOL GIVING COBOL” (C++の もじり ) などである.
  • Cấu tạo hóa プログラミングを đề xướng した máy tính khoa học giảエドガー・ダイクストラは, các loại ngôn ngữ の thiếu điểm を cử げた trung でCOBOLについて “COBOLを sử っていると người は vô năng になってしまう. COBOL の giáo dục は phạm tội とみなすべきである.” と thuật べた[9].これが thư かれた の は, xí nghiệp ではCOBOLで tân nhân giáo dục がされ,Cấu tạo hóa プログラミングも biết らずにGO TO văn だらけ の thật lớn なスパゲティプログラムを bình thường に thư いていてレビューと chướng hại tu chỉnh が đại 変だった1975 năm である.
  • 2009 nămNgày 18 tháng 9 は “COBOL ra đời 50 đầy năm” とされ,マイクロフォーカスが50 đầy năm を chúc うサイトを lập ち thượng げた. これはCOBOLという tên が quyết định された1959 năm ngày 18 tháng 9 を, COBOL の ra đời ngày としたも の である[10].また, quốc nội chủ yếu COBOLベンダーが thiết lập したPhi 営 lợi đoàn thểであるCOBOLコンソーシアム[11]は, lúc ban đầu の công な sĩ dạng thư であるCOBOL-60が phát hành された1960 năm 4 nguyệt をCOBOL ra đời thời đại とし, 2010 năm ngày 16 tháng 4 にCOBOL ra đời 50 đầy năm kỷ niệm セミナーを hành っている[12].
  • 2009 năm11 nguyệt, マイクロフォーカス の スチュアート・マギルは, “Giá động trung の COBOLプログラムは toàn thế giới で2,400 trăm triệu hành で, trong năm 30 trăm triệu hành が thêm vào されている. Toàn thế giới の COBOLプログラマは200 vạn người.フォーチュン500の 90% の xí nghiệp はCOBOLプログラムを sử dụng trung.” と の thú chỉ の phát ngôn をした[13].
  • Nhật BảnQuốc gia tư cáchであるCơ bản tình báo kỹ thuật giả thí nghiệm( 2000 niên độ までは đệ nhị loại tình báo 処 lý kỹ thuật giả thí nghiệm と hô ばれていた ) の sau giờ ngọ thí nghiệm では2019 niên độ まではCOBOLに quan する nội dung が ra đề mục されていた ( ただし tự do tuyển 択 chế であり cần thiết vấn đề ではない ) が, 2020 niên độ thí nghiệm より廃 ngăn となった. Đại わりにPythonが thêm vào されたが, さらに2023 niên độ からはプログラミング ngôn ngữ の ra đề mục はすべて廃 ngăn になり, phổ biến ・ bản chất なプログラミング tự hỏi lực を hỏi う nghĩ tựa ngôn ngữ による ra đề mục となる dư định[14].

COBOL の ngôn ngữ sĩ dạng

[Biên tập]

Năm linh を biểu すageという変 số の trị を, nhất định の năm số を biểu すyearsという変 số の trị の phân だけ tăng やす tay 続きは, lệ えば bình thường の プログラミング ngôn ngữ では

age=age+years;(C ngôn ngữなどではage+=years;の ように lược nhớ できる )

と thư かれる. COBOLでも cùng dạng にCOMPUTE văn によって

COMPUTEAGE=AGE+YEARS.

と ghi lại することもできるが,

ADDYEARSTOAGE.( tiếng Anh でそ の まま “Năm số を năm linh に thêm える” )

という biểu hiện も khả năng である.

こ の ように, toán học やアルゴリズム の tri thức を phong phú にもっていなくても, toàn て hiện tại hình, ngữ đuôi 変 hóa なし, など, cấu văn thượng の ước thúc sự さえ覚えて, tiếng Anh による mạch lạc chỉnh nhiên とした ghi lại ができれば, COBOL の プログラムを thư けるように khảo えられている. つまり sự vụ 処 lý の tay thuận を từng cái tế かく tiếng Anh で thư き hạ せば sự vụ 処 lý が điện tính hóa できるということである. さらにプログラム の コードそ の も の がプログラム の cơ năng を thuyết minh する sĩ tổ みになっている の で, そ の まま đọc み hạ したときに phân かりやすい.

こういった đặc tính を, まだ nhân công biết có thể, tự nhiên ngôn ngữ 処 lý の nghiên cứu が thiển い thời kỳ に theo đuổi してCOBOLを thiết kế した の は, ý nghĩa thâm く, sản nghiệp にも hiệu quả があった. ただ, ソフトウェアが đại quy mô hóa し lẫn nhau に lạc み hợp うように tiếp 続されてきた hiện đại, động từ や tiền trí từ を minh kỳ するかどうかという mệnh lệnh ghi lại の thứ nguyên だけでは coi điểm が không đủ である. モジュール tính, 処 lý の cường lực さを hàm めて nhưng đọc tính と tính bảo thủ を tổng hợp bình 価しなおすと, trường hợp によってはまたちがう kết quả も sinh じてくる.

Tự nhiên ngôn ngữ chỉ hướng な thư き phương が ưu れているといっても, phức tạp な số thức, quan số を tráp う khoa học kỹ thuật tính toán giới hạn における chế ngự ・ tính toán には hướng いていない.Phương trình bậc hai thứcA X2+ B X + C = 0 の giải ( の phiến phương ) を cầu める tay 続きは, COBOLでもCOMPUTE văn を dùng いて ngắn gọn に thư こうとすれば,

COMPUTEX=(-B+(B**2-4*A*C)**0.5)/(2*A).

と một văn で tế む. ただし, số thức を cực lực sử わない thư き phương にこだわれば,

MULTIPLYBBYBGIVINGB-SQUARED.( BをB lần し, B-SQUAREDに đại nhập )
MULTIPLY4BYAGIVINGFOUR-A.( Aを4 lần し, FOUR-Aに đại nhập )
MULTIPLYFOUR-ABYCGIVINGFOUR-A-C.( CをFOUR-A lần し, FOUR-A-Cに đại nhập )
SUBTRACTFOUR-A-CFROMB-SQUAREDGIVINGD.( B-SQUAREDからFOUR-A-Cを dẫn き, Dに đại nhập )
MOVEFUNCTIONSQRT(D)TOROOT-D.( D の chính の căn bậc hai を, ROOT-Dに đại nhập )
SUBTRACTBFROMROOT-DGIVINGNUMERATOR.( ROOT-DからBを dẫn き, NUMERATORに đại nhập )
MULTIPLY2BYAGIVINGTWO-A.( Aを2 lần し, TWO-Aに đại nhập )
DIVIDENUMERATORBYTWO-AGIVINGX.( NUMERATORをTWO-Aで cắt り, Xに đại nhập )

と tính toán tử 1 cái あたり1 văn に bành れ thượng がって, thấy thông しが minh らかに ác くなる. もっとも, これほど phục tạp な thức をこ の ように từng cái thư くプログラマはおよそ hiện đại には tồn tại しない.

COBOLでは cùng じ処 lý を thư く の に, thiếu なくとも “COMPUTE ~” と thư く tất yếu もあり, hắn tiết に thuật べるようにいろいろなDIVISION の ghi lại も tất yếu となるなど, モダンな ngôn ngữ より trường くなりがちである. また, パズル の ように xảo diệu な chế ngự cơ năng がさほど nhiều màu に bị わっているわけではない. Eclipseなど のThống hợp khai phát hoàn cảnhでCOBOLも sử えるようになったが, Java の ような tiểu viên độ なモジュールに quan してもインタフェースを minh xác に ghi lại するスタイル の ngôn ngữ よりも, そこでされるサポートは thiếu ない.

こ の ようなことから, COBOLに tập thục している người がモダンな ngôn ngữ で の プログラミング năng lực が cao いとは hạn らない. それでも, thế giới に súc tích され xã hội を động かしているCOBOL tư sản を bảo thủ ・ đổi mới するという sứ mệnh は quan trọng である. Hắn ngôn ngữ も tập thục している kỹ thuật giả であっても, ngôn ngữ の thiếu điểm を nhiều giai tầng な chung モジュール tác thành やツール tác thành などでカバーしながら, xã hội cơ bàn を chi えるCOBOL quan liền プロジェクトで hoạt động している.

COBOL の ngữ pháp の điểm chính

[Biên tập]

Chủ にANSI COBOL 1985 の ngữ pháp について thuật べる.

Vật lưu niệm pháp

[Biên tập]

COBOL の ngữ pháp は tiếng Anh の biểu hiện に gần い. たとえば, ある số trị hình 変 số W-NOに đối し số trị 100, anh tự hình 変 số W-CHARに văn tự liệt 'ABC'を đại nhập する trường hợp は, dưới の ような vật lưu niệm をする.

MOVE100TOW-NO.( またはCOMPUTEW-NO=100.)
MOVE'ABC'TOW-CHAR.

こ の ように, COBOL の ngữ pháp はTự nhiên ngôn ngữ( tiếng Anh ) に cùng loại した văn chương なも の であることから, そ のNhưng đọc tính( ドキュメント tính ) の mặt で ưu れていると ngôn われている. ただし, toán học の định lý を lệ にとれば, それを tự nhiên ngôn ngữ に thẳng したところで lý giải が dễ dàng になるわけではないため, これは phủ định phái にはCOBOL の dài dòng tính と bắt えられる bộ phận でもある.

プログラム の thư thức

[Biên tập]

Điển hình なCOBOL の nguyên thủy ( ソース ) プログラムは, FORTRANと cùng dạng にカラム cố định hình thức で ghi lại する.

1~6カラム mục “Liên tiếp phiên hiệu”
Các hành を phân biệt するために, 6 hằng の シーケンシャル phiên hiệu を ghi lại することができる.
7カラム mục “Đánh dấu lĩnh vực”
そ の hành の đánh dấu を ghi lại する. Lệ えば, アスタリスクを ghi lại すると, そ の hành は chú nhớ hành となる.
8~11カラム mục “A lĩnh vực”
12~72カラム mục “B lĩnh vực”
A lĩnh vực およびB lĩnh vực に, コードを ghi lại する. ピリオドおよびそ の sau に続くスペースを ghi lại してコード の hành mạt を kỳ す.

Gần nhất の COBOLコンパイラには, hành の trường さが cố định である tất yếu がなく, liên tiếp phiên hiệu の không cần な tự do hình thức をサポートするも の がある.

COBOLプログラム の cơ bản cấu tạo

[Biên tập]

COBOL の プログラムは, thứ の 4つ の DIVISIONをこ の thuận phiên で ghi lại する の が cơ bản となっている.

  • IDENTIFICATION DIVISION…… Thấy ra し bộ
  • ENVIRONMENT DIVISION…… Hoàn cảnh bộ
  • DATA DIVISION……データ bộ
  • PROCEDURE DIVISION…… Tay 続き bộ

IDENTIFICATION DIVISION

[Biên tập]

“PROGRAM-ID” ( プログラム phân biệt danh ) を ghi lại する.

“AUTHOR” ( tác thành giả danh ), “DATE-WRITTEN” ( tác thành ngày ) chờ の ngữ pháp もあったが廃 yếu tố となった.

ENVIRONMENT DIVISION

[Biên tập]

プログラムが thật hành されるコンピュータ の hoàn cảnh を ghi lại する. “ENVIRONMENT DIVISION” は, “CONFIGURATION SECTION” ( hoàn cảnh tiết ) と “INPUT-OUTPUT SECTION” ( I-O tiết ) に đại đừng される.

DATA DIVISION

[Biên tập]

プログラムで sử dụng する変 số cập びデータ cũng びにそ の hình について ghi lại する. プログラムで sử dụng する変 số cập びデータ の すべては, DATA DIVISIONで định nghĩa しなければならない.

“DATA DIVISION” は, “FILE SECTION” と “WORKING-STORAGE SECTION” に đại đừng される. データ の hình の tuyên ngôn は, PICTURE(PIC) câu によって hành う.

Hô ばれたプログラムが hô んだプログラムから dẫn số でデータを chịu け lấy る trường hợp は, それら の bao hàm cấu tạo や cơ bản hạng mục の hình を hô ばれたプログラム の “LINKAGE SECTION” で tuyên ngôn する.

COBOLにおけるデータ の phân loại
[Biên tập]

COBOL の データは, thứ の 3つに phân loại される.

  • 変 số (Variables)
  • Định số (Literals)
  • Biểu ý định số (Figurative Constants) - あらかじめ tên が định められている riêng の ý vị を cầm つ định số ( biểu ý định số ) を lợi dụng できる. こ の định số の thật thể は, thật hành されるシステムよってそ の ý vị が có hiệu になるように thật hiện される. たとえば, HIGH-VALUES, LOW-VALUESがある.
COBOL の tráp うデータ の đặc trưng とメンテナンス
[Biên tập]

COBOL の đại biểu な変 số hình ( hạng loại ) に, thứ の も の がある.

  • Con số hạng mục (numeric item) - lệ: 99999 または 9(5)
  • Anh con số hạng mục ( Alpha numeric item) - lệ: XXXXX または X(5)
  • Anh tự hạng mục ( Alpha betic item) - lệ: AAAAA または A(5)
  • Con số biên tập hạng mục (numeric edited item) - lệ: ZZZ,ZZ9
  • Anh con số biên tập hạng mục ( Alpha numeric edited item) - lệ: AXX/XX/XX

COBOLでは cố định trường の レコード ( sào り phản しデータ単 vị ) の trung に cố định trường でデータ hạng mục を hàm むという sử い phương が nhiều い. たとえば,

00076543SHOUYURAMEN 20121013
00076544SHIORAMEN 20111231

などである. データには bao hàm quan hệ の giai tầng があり, lĩnh vực lại định nghĩa cơ năng により cùng じメモリ lĩnh vực を gì thông りか の cấu thành で giải 釈できる.

Hắn の nhiều く の ngôn ngữ ( VB, C, Javaなど ) では, đổi nghề までが sào り phản しデータ単 vị で, そ の trung の hạng mục は nhưng 変 trường でコンマやタブなど の khu thiết り ký hiệu で khu thiết るという sử い phương が nhiều い. たとえばCSVHình thức

76543,SHOUYURAMEN,20121013
76544,SHIORAMEN,20111231

がある. Gần nhất の COBOLコンパイラには, CSV hình thức の nhập xuất lực をサポートするも の もある.

COBOLでは cơ bản hạng mục を cũng べて tập đoàn hạng mục を làm る. レベル phiên hiệu を dùng いて giai tầng cấu tạo を làm る. OCCURS câu により nhiều lần nguyên phối liệt を làm る. これらによる cố định trường や nhưng 変 trường の “レコード”( C ngôn ngữ など のCấu tạo thểに tương đương ) の レイアウトを định nghĩa する. なお, “レコード” という hình はCOBOLによって sơ めて dẫn vào された khái niệm である.

COBOL の giai tầng データ の bao hàm quan hệ は, giai tầng の thâm さを biểu すレベル phiên hiệu "01" から "49" を các データ ghi lại に phó けることで ghi lại される.

こうした giai tầng や lĩnh vực lại định nghĩa など の データ cấu tạo をもつファイルやレコード の định nghĩa と処 lý は, COBOL の đắc ý とするところで,JavaNgôn ngữ および従 tới の Java の クラスライブラリによってはなかなかうまく tái hiện できない.

COBOLでは, gì trăm triệu yên という đại きな kim ngạch の tính toán や, số lẻ dưới gì hằng まで chính xác に lãi gộp tính toán をしても1 yên の khác biệt も ra ない chính xác な số nhỏ tính toán が đắc ý である.Cố định số lẻ sốPhương thức で số nguyên とスケール ( hằng ) を tráp える số trị hạng mục は thông thường lớn nhất 18 hằng ( trung gian kết quả はそれ trở lên ) あり, đặc に bên trong 10 tiến hạng mục など の2 tiến hóa 10 tiến sốを dùng いれば, メモリを tiết kiệm しつつ tính năng も bảo đảm できる. メインフレームではこれをサポートする chuyên dùng の CPU mệnh lệnh まで thiết けられ, cao tốc hóa が đồ られた.

こ の アプローチは, 10 tiến 2 tiến 変 đổi に bạn う khác biệt が tránh けられないDi động số lẻSố によって thật số を xấp xỉ trị で biểu hiện しようとする hắn の ngôn ngữ の phát tưởng とは đối chiếu である.FORTRANには di động số lẻ số はあっても bên trong 10 tiến hạng mục などはなかった.Javaでは tùy ý hằng の số nguyên, số nhỏ を tráp えるBigInteger, BigDecimalというクラスが cung cấp されているが, văn tự xứng liệt で処 lý しているために kim ngạch tính toán, lợi tức tính toán をCOBOLほど thiếu ないCPUステップでは hành えていない.

COBOLでは vô danh の 変 số chờ として "FILLER" という tên を ghi lại することができる. Vô danh hạng mục の "FILLER" は, COBOLにおける変 số chờ の lĩnh vực の định nghĩa は cố định trường となるため, そ の ような cố định trường bên trong lĩnh vực で の dư bị な lĩnh vực の bảo đảm という ý vị hợp いも có している. たとえば

00010001PRODUCT-REC.
00020003PRODUCT-NOPIC 9(8).
00030003...
00040003PRODUCT-NAMEPIC X(20).
00050003FILLERPIC X(500).

で dư bị hạng mục 500バイトを hàm む chế phẩm レコードPRODUCT-RECを định nghĩa して hắn の システムとデータを trao đổi しはじめる. Thời đại が kinh ってこ の レコードに thêm vào hạng mục AD-START-DATE ( quảng cáo bắt đầu ngày ) が phát sinh したら, FILLERを tước ってそ の tân hạng mục に uyển てることで, trao nhận データ の レコード trường を変 càng しなくて tế む.

00010001PRODUCT-REC.
00020003PRODUCT-NOPIC 9(8).
00030003...
00040003PRODUCT-NAMEPIC X(20).
00050003AD-START-DATEPIC 9(8).
00060003FILLERPIC X(492).

FILLERによって, cố định trường レコードファイル の vận dụng が yên hoạt になった. ただ, こ の lệ で500バイトを sử い thiết れば, やはりレコード trường の 変 càng が tất yếu になる. だからといってむやみに trường いFILLERを nhập れると, dung lượng な hiệu suất thấp hèn を chiêu く の でバランスが tất yếu である.

Chế phẩm が nhiều くなってPRODUCT-NO ( chế phẩm phiên hiệu ) を8 hằng から12 hằng に拡 trương しようとすると, sau 続 の hạng mục đàn の bắt đầu phiên mà が thuận sào りにずれてしまう の で変 càng の ảnh hưởng が đại きい.

COBOLが tráp うデータベース の lĩnh vực định nghĩa も, nhiều く の trường hợp cùng dạng に cố định trường の hạng mục からなるレコードという khảo えで hành われてきた.

システムが thật tế に nhập lực したデータがプログラムが dụng ý した hằng số を1 hằng でも siêu えたとき, SIZE ERRORとしてエラー処 lý を hành う の が bình thường である. オプションにより thượng を thiết り lạc として続 hành も khả năng. Hằng số が không đủ したときにデータ の ミスでなければ, プログラムとそ の データを trao nhận するシステム の プログラムで một 斉に hằng số を tăng やす tu chỉnh をしなければならない. データ の 変 đổi も tất yếu となる.

こ の ように hằng số やバイト số の 変 càng は đại 変なため, COBOLプログラマやSEは thường に hằng số やバイト số の giả thiết や変 càng を ý thức し, プログラム の sử dụng される の が gì mười năm でもそ の gian になるべく hằng dật れが khởi こらないように mục を xứng って tác nghiệp している.

Trở lên の ような đặc trưng は, cố định trường レコードやそ の trung の văn tự liệt や số trị を dễ dàng にかつ nghiêm mật に tráp えるというCOBOL の đại きな trường sở にともなう, bảo thủ, cơ năng thêm vào していく thượng で の đại きな đoản sở である.

Bổ túc
[Biên tập]
  • COBOL の データ hình の tuyên ngôn で, COBOL85 trước kia から nhưng 変 trường の データ tuyên ngôn も khả năng になっている.
  • COBOL の sĩ dạng 拡 trương により, ポインタ thao tác も khả năng になっており, thật trang しているCOBOLコンパイラも số nhiều, khai phát されている.
  • DBMSと の liền huề により, データベースを thao tác する trường hợp, DBMS sườn でレコード の định nghĩa, ビュー の định nghĩa などを hành う. そ の ため, レコード の フィールド変 càng などがあっても, ビューなどで変 càng đối tượng の フィールドを tham chiếu するアプリケーション bên ngoài は, tu chỉnh や lại コンパイルは tất yếu ない.
  • RDBMSと の liền huề では, nhưng 変 trường データ, BLOBなど, nhiều dạng なデータ hình の tráp いも khả năng となっている. ただし, COBOL sườn の chịu け độ し の 変 số の tuyên ngôn は, COBOLコンパイラにより, COBOL の nhưng 変 trường データ hình を sử うも の と, COBOLでは có hiệu trường を cầm つ cố định trường データ hình を sử うも の など, khai phát nguyên による thật trang の vi いがある.
  • Giai tầng hình, ネットワーク hình データベースをCODASYLが quốc tế chuẩn hoá した cấu tạo hình データベース の NDLに chuẩn 拠した chôn 込み hình DMLを, IBM, phú sĩ thông, ngày lập など の メインフレーム の COBOLでは thật trang している.
  • Tiêu chuẩn SQLに chuẩn 拠した chôn 込み hình SQLを, IBM, phú sĩ thông, ngày lập など の メインフレーム の COBOLでは thật trang している.

PROCEDURE DIVISION

[Biên tập]

Thật hành されるプログラム の nội, thật tế の 処 lý bộ phận の コードを ghi lại する. Dẫn số を chịu け lấy る trường hợp は, “PROCEDURE DIVISION USING dẫn vài tên [, dẫn vài tên……]” という thư き phương をする.

Thượng nhớ 3つ の DIVISIONを ghi lại したあとやっと “PROCEDURE DIVISION” で thật hành tay thuận の コードを ghi lại する ngữ pháp であるため, COBOLは “Trước trí きが trường い” ngôn ngữ ともいえる.

COBOL の dư ước ngữの số は to ra で, văn tự số の trường いも の が nhiều い.

コード の thật lệ

[Biên tập]

Thật lệ 1 (Hello world)

[Biên tập]
000100IDENTIFICATIONDIVISION.
000200PROGRAM-ID.HELLO.
000300PROCEDUREDIVISION.
000400DISPLAY'HELLO, WORLD!'.
000500STOPRUN.

Xuất lực

HELLO, WORLD!

こ の lệ では DISPLAY mệnh lệnh を sử って văn tự liệt をコンソールまたは tiêu chuẩn xuất lực に xuất lực している.

COBOLはレコードレイアウト の quyết まったファイル の 処 lý に sử われることが nhiều い. そ の trường hợp はふつう, ファイル tiết ( FILE SECTION ) にレコードとそれを cấu thành するデータ đàn の định nghĩa を thư く. そして, thật hành bộ ( PROCEDURE DIVISION ) の READ văn, WRITE văn などでそ の レコードを đọc み thư きする.

Thật lệ 2 (Hello world)

[Biên tập]

Tác nghiệp lĩnh vực tiết ( WORKING-STORAGE SECTION ) にデータを định nghĩa した lệ.

000100IDENTIFICATIONDIVISION.
000200PROGRAM-ID.HELLO.
000300DATADIVISION.
000400WORKING-STORAGESECTION.
00050001HELLO1PIC X(15).
00060001HELLO2.
00070003FILLERPIC X(06)VALUE'HELLO,'.
00080003FILLERPIC X(01)VALUESPACE.
00090003FILLERPIC X(06)VALUE'WORLD!'.
00100003FILLERPIC X(01)VALUESPACE.
00110003FILLERPIC 9(01)VALUE2.
001200PROCEDUREDIVISION.
001300MOVE'HELLO, WORLD! 1'TOHELLO1.
001400DISPLAYHELLO1.
001500DISPLAYHELLO2.
001600STOPRUN.

Xuất lực

HELLO, WORLD! 1
HELLO, WORLD! 2

Thật lệ 3 (Fizz Buzz)

[Biên tập]
000100IDENTIFICATIONDIVISION.
000200PROGRAM-ID.FIZZBUZZ.
000300DATADIVISION.
000400WORKING-STORAGESECTION.
00050001IPIC 9(3).
000600PROCEDUREDIVISION.
000700PERFORMVARYINGIFROM1BY1UNTILI>100
000800EVALUATEFUNCTIONMOD(I3)=ZERO
000900ALSOFUNCTIONMOD(I5)=ZERO
001000WHENTRUEALSOTRUE
001100DISPLAY'FIZZBUZZ'
001200WHENTRUEALSOFALSE
001300DISPLAY'FIZZ'
001400WHENFALSEALSOTRUE
001500DISPLAY'BUZZ'
001600WHENOTHER
001700DISPLAYI(3-FUNCTIONINTEGER(FUNCTIONLOG10(I)):)
001800END-EVALUATE
001900END-PERFORM.
002000STOPRUN.

Xuất lực

1
2
FIZZ
4
BUZZ
FIZZ
7
8
FIZZ
BUZZ
11
( trung lược )
FIZZBUZZ
91
92
FIZZ
94
BUZZ
FIZZ
97
98
FIZZ
BUZZ

COBOLではThặng dưを cầu める tế に,Thương・ thặng dư それぞれを cách nạp する変 số を định nghĩa した thượng でDIVIDE văn を dùng いることが nhiều いが, thương は không cần で thặng dư の みが biết りたい trường hợp や, それを変 số に cách nạp しておく tất yếu が vô い trường hợp は, tổ み込み quan số のMODを dùng いても lương い.

また, COBOL の con số hạng mục は định nghĩa された hằng số よりも thiếu ない hằng số の trị が cách nạp された trường hợp,ゼロパディングした trạng thái で tráp うため, こ の まま tỏ vẻ させると001, 002,…, 098と lúc đầu に0が bổ われて tỏ vẻ されてしまう.NHằng で định nghĩa された con số hạng mục に, chính の số nguyênnが cách nạp された trường hợp, そ の nhất thượng vị hằng の vị trí は tả からN− ⌊log10nカラム mục であるから, thượng nhớ の ようにDISPLAYI(3-FUNCTIONINTEGER(FUNCTIONLOG10(I)):)と ghi lại することで, パディングされた0を trừ いた bộ phận だけを tỏ vẻ させることが ra tới る.

なお, 0,Phụ の số,Số nhỏを tráp う trường hợp は, hạ nhớ の ように con số biên tập hạng mục によるゼロサプレスとTRIM tổ み込み quan số[15]を tổ み hợp わせることでパディングされた0を trừ いて tỏ vẻ させることが ra tới る.

000100IDENTIFICATIONDIVISION.
000200PROGRAM-ID.FIZZBUZZ.
000300DATADIVISION.
000400WORKING-STORAGESECTION.
00050001IPIC S9(3).
00060001HENSHU-IKIPIC X(4).
00070001HENSHU-NUMREDEFINESHENSHU-IKIPIC ---9.
000800PROCEDUREDIVISION.
000900PERFORMVARYINGIFROM-100BY1UNTILI>100
001000EVALUATEFUNCTIONMOD(I3)=ZERO
001100ALSOFUNCTIONMOD(I5)=ZERO
001200WHENTRUEALSOTRUE
001300DISPLAY'FIZZBUZZ'
001400WHENTRUEALSOFALSE
001500DISPLAY'FIZZ'
001600WHENFALSEALSOTRUE
001700DISPLAY'BUZZ'
001800WHENOTHER
001900COMPUTEHENSHU-NUM=I
002000DISPLAYFUNCTIONTRIM(HENSHU-IKI)
002100END-EVALUATE
002200END-PERFORM.
002300STOPRUN.

COBOL の con số biên tập hạng mục によるゼロサプレスは, 単 thuần に0を chỗ trống に trí き đổi えるだけであるから, lúc đầu に chỗ trống が sinh じる ( = số nguyên bộ phận が hữu gửi せになる ). ゼロサプレスを hành い càng に lúc đầu の chỗ trống も trừ bỏ したい ( = tả gửi せにしたい ) trường hợp は, TRIM tổ み込み quan số を dùng いることで lúc đầu の chỗ trống を trừ bỏ ra tới る.

Thật lệ 4 (Fizz Buzz)

[Biên tập]
000100IDENTIFICATIONDIVISION.
000200PROGRAM-ID.FIZZBUZZ.
000300DATADIVISION.
000400WORKING-STORAGESECTION.
00050001IPIC 9(3).
00060001HENSHU-IKIPIC X(8).
00070001HENSHU-NUMREDEFINESHENSHU-IKIPIC B(5)ZZ9.
000800PROCEDUREDIVISION.
000900PERFORMVARYINGIFROM1BY1UNTILI>100
001000MOVESPACETOHENSHU-IKI
001100IFFUNCTIONMOD(I3)=ZERO
001200MOVE'FIZZ'TOHENSHU-IKI(1:4)
001300END-IF
001400IFFUNCTIONMOD(I5)=ZERO
001500MOVE'BUZZ'TOHENSHU-IKI(5:4)
001600END-IF
001700IFHENSHU-IKI=SPACE
001800COMPUTEHENSHU-NUM=I
001900END-IF
002000DISPLAYFUNCTIONTRIM(HENSHU-IKI)
002100END-PERFORM.
002200STOPRUN.

Xuất lực kết quả は thật lệ 3と cùng じであるが, văn tự liệt 'FIZZ', 'BUZZ'を đại nhập する vị trí を dư め quyết めておき, cuối cùng にTRIM tổ み込み quan số を dùng いて tả gửi せにすることで, 3 の bội số かつ5 の bội số ( すなわち15 の bội số ) か không か の phán định を vô くしている.

Chuẩn hoá

[Biên tập]

CODASYLによって chuẩn hoá が hành われてきて, また,ANSIISO/IEC JTC 1SC22/WG4などによっても chuẩn hoá されていた. 1992 năm 1 nguyệt にCODASYL の COBOL ủy ban とANSI の COBOL ủy ban は một quyển hóa された.

Mễ quốc quy cách Quốc tế quy cách Nhật Bản quy cách Chủ な sửa lại điểm など
Đệ 1 thứ quy cách 1968 năm chế định 1972 năm chế định 1972 năm chế định Lúc ban đầu の quy cách
Đệ 2 thứ quy cách 1974 năm chế định 1978 năm chế định 1980 năm chế định Tương đối ・ kiểm tác ファイル
Đệ 3 thứ quy cách 1985 năm chế định 1985 năm chế định 1988 năm chế định Cấu tạo hóa プログラミング
Đệ 3 thứ thêm 1 quy cách 1989 năm thêm chế định 1992 năm thêm chế định 1992 năm chế định Tổ 込 quan số
Đệ 3 thứ thêm 2 quy cách 1993 năm thêm chế định 1994 năm thêm chế định Vô し Lầm り đính chính
Đệ 4 thứ quy cách 2003 năm chế định 2002 năm chế định 2011 năm chế định オブジェクト chỉ hướng, マルチバイト văn tự[16]
Đệ 5 thứ quy cách 2014 năm chế định TRIM tổ 込 quan số, động trường cơ bản hạng mục

なお, quốc tế quy cách は ISO/IEC 1989[17],Nhật Bản quy cách は JIS X3002[18]( cũ JIS C 6205[19]) である.

CODASYL COBOL の ngôn ngữ sĩ dạng の 変 dời

[Biên tập]

CODASYLでは thường khi ngôn ngữ sĩ dạng の sửa định をおこなっており, そ の thành quả を1~5 năm ごとにとりまとめてCOBOL の sĩ dạng thư を phát hành していた.

  • COBOL-60
    • Lúc ban đầu の bản
  • COBOL-61
    • Tay 続き bộ の cấu thành の 変 càng, 4つ の bộ が ra tiễn う
  • 拡 trương COBOL-61 ( 1963 năm )
    • ( thêm vào ) ソート cơ năng
    • ( thêm vào ) báo cáo thư tác thành cơ năng
    • ( thêm vào ) số học văn で の số nhiều の đáp え
    • ( thêm vào ) CORRESPONDING cơ năng
  • COBOL-65
    • Đệ 1 thứ quy cách の nguyên になる.
    • ( thêm vào ) đại ký ức ファイル の 処 lý cơ năng
    • ( thêm vào ) chỉ tiêu による thêm tự phó け, biểu dẫn き
    • ( 廃 ngăn ) lầm り chẩn bệnh メッセージへ の yêu cầu
    • ( 廃 ngăn ) cần thiết cơ năng と tuyển 択 cơ năng の phân chia
  • COBOL-68
    • こ の năm から khai phát báo cáo (JOD) hình thức になる.
    • ( thêm vào ) プログラム gian liên lạc cơ năng
    • ( thêm vào ) ánh giống đoan mạt 処 lý dùng の SUSPEND văn
    • ( thêm vào ) cắt り tính の dư りを cầu める cơ năng
    • ( thêm vào ) chú 釈 hành
    • ( thêm vào ) chung chung されたCOPY cơ năng
    • ( thêm vào ) nói lý lẽ なページあふれ điều kiện の chỉ định と kiểm ra
    • ( thêm vào ) lược ngữ による nhớ pháp
    • ( 変 càng ) EXAMINE văn の cơ năng 拡 trương
    • ( 廃 ngăn ) PICTURE câu と lặp lại する biên tập câu
    • ( 廃 ngăn ) NOTE văn, REMARKS đoạn
    • ( 廃 ngăn ) DEFINE văn
    • ( 廃 ngăn ) một bộ の lược nhớ pháp
  • COBOL-69
    • ( thêm vào ) thông tín cơ năng
    • ( thêm vào ) phiên 訳 in ấn におけるページ đưa り
    • ( thêm vào ) thật thịnh hành の ngày phó と thời khắc の hô び ra し
    • ( 変 càng ) văn tự liệt thao tác cơ năng
      • ( thêm vào ) STRING văn
      • ( thêm vào ) UNSTRING văn
      • ( thêm vào ) INSPECT văn
      • ( 廃 ngăn ) EXAMINE văn
    • ( thêm vào ) SIGN câu
    • ( 廃 ngăn ) データ bộ の định số tiết
  • COBOL-70
    • Đệ 2 thứ quy cách の nguyên になる.
    • ( thêm vào ) デバッグ cơ năng
    • ( thêm vào ) MERGE văn
    • ( thêm vào ) データ lúc đầu hóa の ため の INITIALIZE văn
    • ( 変 càng ) báo cáo thư tác thành cơ năng の toàn diện な sửa định
    • ( 廃 ngăn ) RANGE câu
  • COBOL-73
    • ( thêm vào ) WRITE văn によるページ đưa り
    • ( thêm vào ) LINAGE câu
    • ( 変 càng ) INSPECT văn の cơ năng 拡 trương
    • ( 変 càng ) trực tiếp ký ức trang bị アクセス cơ năng を tương đối biên thành と hướng dẫn tra cứu biên thành に tổ み thế え
    • ( 変 càng ) đăng lục tập cơ năng
    • ( 変 càng ) lại thật hành cơ năng
    • ( 変 càng ) độc lập hạng mục ghi lại と liên tiếp hạng mục ghi lại の tương đối vị trí の tự do hóa
  • COBOL-76
    • ( thêm vào ) データベース cơ năng
    • ( thêm vào ) ビット liệt thao tác
    • ( 変 càng ) ファイル định nghĩa phương pháp の sửa sang lại
    • ( 廃 ngăn ) độc lập hạng mục ( レベル phiên hiệu 77 )
    • ( 廃 ngăn ) ALTER
  • COBOL-78
    • Đệ 3 thứ quy cách の nguyên になる.
    • ( thêm vào ) cấu tạo hóa プログラミング cơ năng
      • EVALUATE văn
      • PERFORM văn の cơ năng 拡 trương
      • Danh trước の có hiệu phạm 囲 の quy định の chỉnh đốn và sắp đặt
    • ( 変 càng ) プログラム gian liên lạc cơ năng
    • ( 変 càng ) データベース cơ năng
  • COBOL-81
    • ( thêm vào ) di động số lẻ
    • ( thêm vào ) số học thức による thêm tự
    • ( 変 càng ) chữ khải pháp の đặt lại ( tự do thư thức の dẫn vào )
    • ( 廃 ngăn ) デバッグ cơ năng ( デバッグ hành bên ngoài )
    • ( 廃 ngăn ) ENTER văn
    • ( 廃 ngăn ) CORRESPONDING cơ năng
  • COBOL-84 ( 25 đầy năm kỷ niệm bản )
    • Đệ 3 thứ quy cách ( bổ truy ) の nguyên になる.
    • ( thêm vào ) tổ み込み quan số
    • ( thêm vào ) データ kiểm chứng (VALIDATE) cơ năng
    • ( thêm vào ) hành の một bộ phận に chú 釈を thư く phương pháp
    • ( 廃 ngăn ) RERUN cơ năng
  • COBOL-88
    • ( thêm vào ) biểu SORT cơ năng
    • ( thêm vào ) định số の liên kết
    • ( thêm vào ) hình ảnh chế ngự cơ năng
    • ( thêm vào ) いくつか の tổ み込み quan số
    • ( 廃 ngăn ) phân chia hóa cơ năng
    • ( 変 càng ) ngữ の trường さを60 tự dưới までとする.
  • COBOL-93 ( cuối cùng bản )
    • ( thêm vào ) マルチオクテット処 lý
    • ( thêm vào ) ファイル の bài hắn xài chung chế ngự
    • ( thêm vào ) いくつか の tổ み込み quan số
    • ( 変 càng ) ngữ の trường さを30 tự dưới までにもどす.

Chú thích

[Biên tập]
  1. ^P.HAYES 1978,p. 38.
  2. ^Around 80% of the world's actively used code is none other than COBOL
  3. ^20 Things You Might Not Know About COBOL (as the Language Turns 50)(Darryl Taft)
  4. ^Platform Migration(CRATOS; Andrew Wickett) p.9 "COBOL Facts"
  5. ^ソフトウェア khai phát phân tích データ tập 2022(PDF)(IPA) 1.2.2 khai phát ngôn ngữ “Biểu 1-1-2 khai phát ngôn ngữ ( đệ 1 trả lời )”
  6. ^Sammet, Jean (1981).“The early history of COBOL”.In Wexelblat, Richard L..History of programming languages I.New York, NY, USA: ACM. pp. 199-243.ISBN0-12-745040-8.http://portal.acm.org/citation.cfm?id=1198367
  7. ^Xã hội を chi えるCOBOL, 50 năm の bộ み - ra đời 50 đầy năm, xã hội を chi えつづけるCOBOL:ITpro
  8. ^abcCOBOL ra đời から60 năm --これからも sinh き続ける lý do - ZDNet
  9. ^Dijkstra. “E. W. Dijkstra Archive: How do we tell truths that might hurt? (EWD498)”.University of Texas at Austin.2013 năm ngày 14 tháng 1Duyệt lãm.
  10. ^まだまだ thời hạn nghĩa vụ quân sự: プログラミング ngôn ngữ の COBOLが ra đời 50 đầy năm - ITmedia
  11. ^COBOLコンソーシアム
  12. ^COBOL ra đời 50 đầy năm kỷ niệm セミナー xã hội を chi える “ことば”. これまでも, そしてこれからも
  13. ^COBOLはクラウド thời đại も thời hạn nghĩa vụ quân sự, 09 năm は nhất も nhiều く の コードが thư かれた--- anh マイクロフォーカス CTO スチュアート・マギル thị - ITpro
  14. ^Tình báo 処 lý kỹ thuật giả thí nghiệm における ra đề mục phạm 囲・シラバス chờ の 変 càng nội dung の công biểu について ( cơ bản tình báo kỹ thuật giả thí nghiệm, tình báo セキュリティマネジメント thí nghiệm の suốt năm thí nghiệm hóa )
  15. ^COBOLコンソーシアム - COBOL đệ 5 thứ quy cách tân cơ năng giới thiệu ~TRIM tổ 込 quan số ~
  16. ^Đệ 4 thứ COBOL quy cách COBOL2002 の ご giới thiệu
  17. ^ISO/IEC 1989:2014 - Information technology -- Programming languages, their environments and system software interfaces -- Programming language COBOL
  18. ^JIS X 3002(Nhật Bản sản nghiệp tiêu chuẩn điều tra sẽ,Kinh tế sản nghiệp tỉnh)
  19. ^Nhật Bản sản nghiệp tiêu chuẩn điều tra sẽ: データベース-廃 ngăn JIS quy cách リスト C6205

Tham khảo văn hiến

[Biên tập]


Quan liền nhân vật

[Biên tập]

Quan liền hạng mục

[Biên tập]

Phần ngoài リンク

[Biên tập]