COBOL: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
PKKOT (dyskusja | edycje)
Rozwinięcie artykułu
PKKOT (dyskusja | edycje)
Dodatkowe akapity
Linia 1:
'''COBOL''' (akronim od ang. ''common business-oriented language'') wysokopoziomowy język programowania stworzony i używany do tworzenia aplikacji biznesowych. COBOL jest językiem imperatywnym, proceduralnym, oraz od 2002 roku, [[Object-oriented programming|obiektowy]]<nowiki/>m.
 
Język ten w znaczymy stopniu nadal używany jest w aplikacjach systemów typu mainframe, wymagających przetwarzania danych na wielką skalę, zarówno w trybie wsadowych jak i online. Typowymi obszarami zastosowania są bankowość, ubezpieczenia, służba zdrowia, transport, jak również systemy rządowe i militarne.<ref name=":1">{{Cytuj|autor=Michael Coughlan|tytuł=Beginning COBOL for Programmers}}</ref>   
 
W ostatnich latach zauważalny jest stopniowy spadek znaczenia COBOL’a w tworzeniu nowych aplikacji. Większość wykonywanych prac programistycznych związania jest z utrzymaniem i rozwojem aplikacji istniejących.<ref>{{Cytuj|autor=Robert L. Mitchell|tytuł=Cobol: Not Dead Yet|data=}}</ref> Z uwagi na jego powoli malejącą popularność oraz coraz mniejszą podaż programistów COBOL, część programów migrowana jest na nowe platformy, przepisywana na bardziej nowoczesne języki bądź zastępowana nowymi pakietami oprogramowania. Niemniej, COBOL nadal odgrywa znaczącą rolę w obszarze aplikacji biznesowych na świecie.
Linia 16:
 
== Historia ==
W późnych latach 50tych, użytkownicy i wytwórcy komputerów zaczęli niepokoić się rosnącymi kosztami tworzenia oprogramowania. Przeprowadzona w 1959 roku ankieta wykazała, że przy jakiejkolwiek instalacji procesowania danych koszt programowania wynosi przeciętnie US$800,000 oraz, przeciętne przetłumaczenie istniejącego oprogramowania, które umożliwiłoby uruchomienie kodu na nowym sprzęcie kosztowałoby kolejne $600,000.<ref name=":0" /> Ta sama ankieta zasugerowała, że jeśli wykorzystany zostałby język zorientowany biznesowo, konwersja byłaby zarówno tańsza jak I szybsza. Program stworzenia takiego języka został w 1959 roku zorganizowany i zasponsorowany przez [[Departament Obrony Stanów Zjednoczonych]].<ref name=":1" />
Prace nad COBOL-em zostały rozpoczęte w [[1959]] roku na spotkaniu ''Short Range Committee'' w [[Pentagon|Pentagonie]], zorganizowanym przez [[Charles Phillips|Charlesa Phillipsa]] z amerykańskiego departamentu obrony. Komitet miał na celu doraźnie (''short range'') określić wspólny język programowania dla środowisk przemysłowych. W skład komitetu wchodziło:
 
Pierwsza definicja COBOL’a stworzona została w 1960 roku przez komitet [[CODASYL]] (ang. Conference on Data Systems Languages). Za rozwój kolejnych standardów odpowiedzialny był [[American National Standards Committee]] (ANSI), który to wyprodukował kolejno trzy standardy: ANS 68, ANS 74 oraz ANS 85. Odpowiedzialność za rozwój następnych standardów spoczęła na ISO. ISO 2002, pierwszy standard wyprodukowany przez to ciało zdefiniowała pierwszą zorientowaną obiektowo wersję COBOL’a.<ref name=":1" />
* sześciu przedstawicieli przemysłu
** [[Burroughs]]
** [[IBM]]
** [[Minneapolis-Honeywell]]
** [[Radio Corporation of America|RCA]]
** [[Sperry Rand]]
** [[Sylvania Electric Products]]
* trzy agendy rządu [[Stany Zjednoczone|USA]]
** [[United States Air Force|Siły Powietrzne Stanów Zjednoczonych]]
** [[David Taylor Model Basin]]
** [[National Institute of Standards and Technology|National Bureau of Standards]] (Narodowy Urząd Standaryzacji)
 
Poszczególne standardy wprowadziły następujące udoskonalenia do języka
Planowane komitety średniego i dalekiego zasięgu albo nie działały albo nie zostały nawet utworzone. Ostatecznie uformował się podkomitet złożony z sześciu osób:
* COBOL ANS 68 – rozwiązał problem niekompatybilności pomiędzy różnymi wersjami COBOL’a
* COBOL ANS 74 – wprowadził komendę CALL oraz możliwość użycia zewnętrznych podprogramów
* COBOL ANS 85 – wprowadził programowanie strukturalne oraz wewnętrzne podprogramy
* COBOL ISO 2002 – wprowadził programowanie zorientowane obiektowo
* COBOL 2014
 
== Właściwości ==
* [[William Selden]] i [[Gertrude Tierney]] z IBM
* [[Howard Bromberg]] i [[Howard Discount]] z RCA
* [[Vernon Reeves]] i [[Jean E. Sammet]] z Sylvania Electric Products
 
=== Składnia ===
Po dalszych pracach w styczniu [[1960]] roku specyfikacja języka została ogłoszona drukiem przez rząd USA i nazwana COBOL-60. Prace nad COBOL-em trwały około 6 miesięcy, jest on używany od ponad 40 lat.
COBOL posiada składnię podobną do języka angielskiego. Używana jest ona do opisywania niemal wszystkiego w programie. Na przykład, warunek może zostać wyrażony: <syntaxhighlight lang="cobol">
x IS GREATER THAN y
</syntaxhighlight>lub bardziej zwięźle:  <syntaxhighlight lang="cobol">
x GREATER y lub x>y
</syntaxhighlight>Bardziej złożone warunki mogą być “skrócone” poprzez usunięcie powtarzalnych wyrażeń I zmiennych, np.:<syntaxhighlight lang="cobol">
a>b AND a>c OR a=d
</syntaxhighlight>Może zostać skrócone do:<syntaxhighlight lang="cobol">
 a > b AND c OR = d
</syntaxhighlight>W konsekwencji rozbudowanej składni COBOL posiada ponad 300 słów kluczowych (zarezerwowanych). 
 
Każdy program w COBOL’u zawiera cztery podstawowe elementy leksykalne: słowa, literały, symbole (ang. ''picture character-strings'', zobacz [[COBOL#PICTURE clause|PICTURE clause]]) oraz separatory. Słowa zawierać mogą słowa zarezerwowane oraz identyfikatory zdefiniowane przez użytkownika. Mogą mieć długość do 31 znaków oraz zawierać litery, cyfry, myślniki i podkreślenia. Literały to cyfry (np. <code>12</code>) oraz ciągi znaków (np. <code>'Hello!'</code>).<ref>{{Cytuj|autor=|tytuł=ISO/IEC JTC 1/SC 22/WG 4 2014, § 8.3.1.2.|data=}}</ref> Separatory zawierają spacje, przecinki oraz średniki.
 
Podstawowym elementem strukturyzującym program w COBOL’u jest dywizja. W każdym programie wyróżniamy 4 dywizje: ''identification'', ''environment'', ''data'' oraz ''procedure''. Dywizja ''identification'' określna nazwę oraz element źródłowy. W dywizji tej wyspecyfikowane są również klasy i interfejsy. Dywizja ''environment'' określa wszystkie elementy programu, które zależą od systemu, na którym działają, takie jak pliki I zestawy znaków. Dywizja ''data'' służy do deklaracji [[Zmienna|zmiennych]] i parametrów. Dywizja ''procedure'' zawiera polecenia. Każda dywizja jest podzielona na sekcje, które składają się z paragrafów.<ref name=":1" />
 
== Zalety i wady ==
Linia 76 ⟶ 82:
* [[Grace Hopper]]
* [[Algek]]
* [[COBOL#PICTURE clause|PICTURE clause]]
 
{{Przypisy}}