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 |
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ệ |
|
Ả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 |
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ảnのQuố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 われてきて, また,ANSIやISO/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]- ^P.HAYES 1978,p. 38.
- ^Around 80% of the world's actively used code is none other than COBOL
- ^20 Things You Might Not Know About COBOL (as the Language Turns 50)(Darryl Taft)
- ^Platform Migration(CRATOS; Andrew Wickett) p.9 "COBOL Facts"
- ^ソフトウェア 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 )”
- ^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
- ^Xã hội を chi えるCOBOL, 50 năm の bộ み - ra đời 50 đầy năm, xã hội を chi えつづけるCOBOL:ITpro
- ^abcCOBOL ra đời から60 năm --これからも sinh き続ける lý do - ZDNet
- ^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.
- ^まだまだ thời hạn nghĩa vụ quân sự: プログラミング ngôn ngữ の COBOLが ra đời 50 đầy năm - ITmedia
- ^COBOLコンソーシアム
- ^COBOL ra đời 50 đầy năm kỷ niệm セミナー xã hội を chi える “ことば”. これまでも, そしてこれからも
- ^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
- ^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 )
- ^COBOLコンソーシアム - COBOL đệ 5 thứ quy cách tân cơ năng giới thiệu ~TRIM tổ 込 quan số ~
- ^Đệ 4 thứ COBOL quy cách COBOL2002 の ご giới thiệu
- ^ISO/IEC 1989:2014 - Information technology -- Programming languages, their environments and system software interfaces -- Programming language COBOL
- ^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)
- ^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]- P.HAYES, JOHN (1978),Computer Architecture and Organization,ISBN0-07-027363-4
Quan liền nhân vật
[Biên tập]- グレース・ホッパー- COBOL の khai phát giả. Tục に “COBOL の mẫu” と hô ばれる. また, “コンピューターおばあちゃん”の ái xưng が dùng いられることがある.
Quan liền hạng mục
[Biên tập]- FORTRAN
- COBOL/S-Nhật Bản điện khí( NEC ) の phiếm dùng cơ (ACOS) dùng COBOL.
- PL/I
Phần ngoài リンク
[Biên tập]- COBOLコンソーシアム
- Xã hội を chi えるCOBOL, 50 năm の bộ み - ngày kinh コンピュータ
- GnuCOBOL (formerly OpenCOBOL)フリーソフトウェア ( Free Software = tự do なソフトウェア ) として の COBOL ngôn ngữ 処 lý hệ
- COBOL Working Group
- Craig Hale: "COBOL wants to find out just how popular it really is" ( Techrader 2022 năm 12 nguyệt yết tái ký sự )