COBOL (język programowania)

Z Encyklopedia Zarządzania
Wersja z dnia 18:49, 18 sty 2024 autorstwa Zybex (dyskusja | edycje) (cleanup bibliografii i rotten links)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

COBOL (Common Business Oriented Language Language) jest jednym z pierwszych języków wysokiego poziomu, który został stworzony głównie do pracy programistycznych w dziedzinie ekonomii i biznesu. Jest językiem imperatywnym, proceduralnym, a od roku 2002 również zorientowanym obiektowo. Z założenia COBOL powinien być językiem prostym i uniwersalnym. Aktualnie dalej jest powszechnie używany, lecz głównie do utrzymania istniejących już aplikacji, natomiast do tworzenia nowego oprogramowania wybierane są nowocześniejsze języki[1]

TL;DR

COBOL to język programowania wysokiego poziomu, stworzony głównie do pracy w dziedzinie ekonomii i biznesu. Jest używany głównie do utrzymania istniejących aplikacji, a nie do tworzenia nowego oprogramowania. Jego cechy to m.in. programowanie obiektowe, obsługa języków narodowych i sprawdzanie poprawności danych. Mimo swojej popularności, COBOL jest krytykowany za brak strukturalności i czytelności kodu.

Historia

W związku z rozwojem nowoczesnych technologii producenci oraz użytkownicy komputerów byli zaniepokojeni wzrostem kosztów tworzenia oprogramowania. Doprowadziło to do zwołania konferencji w 1959 na Uniwersytecie w Pensylwanii, podczas której zdecydowano stworzyć język zorientowany biznesowo. COBOL został zaprojektowany przez członków CODASYL, czyli grupy zrzeszającej przedstawicieli rządowych i przemysłowych organizacji. Istniała potrzeba stworzenia języka programowania wspólnego dla środowiska przemysłu, uniwersytetów oraz rządu Stanów Zjednoczonych. Komisja składała się z członków reprezentujących sześć producentów komputerów i trzy agencje rządowe. Sześciu producentów komputerów byli to Burroughs Corporation, IBM, Minneapolis - Honeywell (Honeywell Labs), RCA, Sperry Rand i Sylvania Electric Products. Trzy agencje rządowe: US Air Force, The David Taylor Modelu Basin i National Institute of Standards (obecnie National Institute of Standards and Technology). Język ten został opracowany w ciągu 6 miesięcy. Od roku 1960 American National Standards Institute (ANSI) był odpowiedzialny za opracowanie nowych standardów COBOL. [2] Standardy te zostały opracowane w 1968, 1974 i 1985 roku:

  • COBOL-68
  • COBOL-74
  • COBOL-85

Standard COBOL 2002 zawiera wsparcie dla programowania obiektowego oraz inne nowoczesne funkcje językowe.

Zastosowanie

Jest stosowany w krytycznych obszarach działalności gospodarczych, w rachunkowości oraz w działaniach takich jak: kontrola zapasów, śledzenie sprzedaży detalicznej, zarządzanie kontaktami, prowizjami, lista płac i innymi. Jest przeznaczony na rozwój działalności gospodarczej, zazwyczaj zorientowanych plików, aplikacji, natomiast nie jest przeznaczony do pisania programowców systemowych, takich jak systemy operacyjne. Ponad 95% danych finansowo-ubezpieczeniowych jest przetwarzanych w COBOL. Język COBOL jest używany na całym świecie przez agencje rządowe i wojskowych, przedsiębiorstwach handlowych, jak również producentów systemów operacyjnych takich jak IBM, Microsoft.

Cechy języka COBOL

COBOL jest językiem samodokumentującym. Jednym z celów projektu COBOL było umożliwienie innym osobom, nie programistom, takim jak np. zarząd, możliwość przeczytania i zrozumienia kodu zapisanego w języku COBOL. W rezultacie, COBOL zawiera angielskie elementy konstrukcyjne, jak czasowniki, klauzule, zdania, sekcje i działy. Największą wadą języka jest zbyt rozbudowana składnia. Inne cechy to:

  • Funkcje definiowane przez użytkownika
  • Programowanie obiektowe (od standardu COBOL 2002)
  • Obsługa języków narodowych - Unicode
  • Symbole walut
  • Alokacja pamięci dynamicznej (wskaźniki)
  • Sprawdzanie poprawności danych
  • Binarne i typy danych zmiennoprzecinkowych
  • Typy danych zdefiniowane przez użytkownika
  • Konwencja wywołań do innych języków np. C
  • XML generowania i analizowania

Każdy program składa się z czterech działów, każdy o określonej funkcji logicznej:

  • IDENTIFICATION DIVISION - określa podstawowe informacje, takie jak ID programu lub definicje klas i interfejsów
  • ENVIRONMENT DIVISION - zawiera informacje o plikach, które program może wczytywać lub do których powinien zapisać wynik
  • DATA DIVISION - w tej sekcji definiuje się zmienne i struktury, które będą używane w programie
  • PROCEDURE DIVISION - zawiera wszystkie instrukcje i polecenia do wykonania

Przykładowy program

00100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400 ENVIRONMENT DIVISION.
000500 CONFIGURATION SECTION.
000600 SOURCE-COMPUTER. RM-COBOL.
000700 OBJECT-COMPUTER. RM-COBOL.
000800
000900 DATA DIVISION.
001000 FILE SECTION.
001100
101200 PROCEDURE DIVISION.
101300
101400 MAIN-LOGIC SECTION.
101500 DISPLAY "Hello world!"
101600 STOP RUN

Prosty program wyświetlający Hello world!

Krytyka języka

COBOL nie jest językiem strukturalnym, co przyczyniło się do jego krytyki. Używanie instrukcji skoku bezwarunkowego GO TO często powoduje, że kod programu nie jest przejrzysty i czytelny. Brak zrozumienia kodu przez programistów może prowadzić do powstawania błędów i nieścisłości w działaniu programów[3]


COBOL (język programowania)artykuły polecane
CobolPythonC++C (język programowania)UMLJavaPascal (język programowania)SmallTalk (język programowania)XML

Przypisy

  1. Budlong M. (2002)
  2. Bemer B. (1971)
  3. Dijkstra E. (1968), s. 147-148

Bibliografia

  • Budlong M. (2002), COBOL, Helion, Gliwice
  • Cosentino V., Cabot J., Albert P., Bauquel P., Perronnet J. (2013), Extracting Business Rules from COBOL: A Model-Based Framework, Working Conference on Reverse Engineering, Koblenz
  • McCracken D., Golden D. (1988), A Simplified Guide to Structured COBOL Programming, Wiley
  • Philippakis A., Kazmier L. (1987), Advanced COBOL, McGraw-Hill Book Company, Nowy Jork
  • Szaniawska M. (1979), Programowanie komputerów II: COBOL, Państwowe Wydawnictwo Ekonomiczne, Warszawa

Autor: Magdalena Pietrzyk, Arkadiusz Bugajski