COBOL

Bardziej legacy to się nie da

Bartek „Koziołek” Kuczyński / @koziolek

O czym nie będzie

Kurs COBOLA

Zaawansowane zastosowania

Jak praktycznie migrować

O czym będzie

Krótka historia COBOLA

Składnia

COBOL dziś

O czym pamiętać

Warszawa M20
Pabieda M21
Kampus

Krampus (ger)

Boogeymen (eng)

Namahage (jap)

Cuco (esp)

COBOL (101)

Skąd ten COBOL?

Babcia COBOL

Grace Hopper

CODASYL - 1959-1987

ANSI

CODASYL

Conference on Data Systems Language

ANSI

American National Standards Institute

Ale po co?

MANIAC-I

Na krawędzi wojny

Ivy Mike – listopad 1952

Bomba H – sierpień 1953

Sputnik – 1957

DSL

Domain Specific Language

Po co nam DSLe?

Ułatwiają komunikację

„Definiują” świat

Standaryzują otoczenie

Zalety

Eksperci can into code

Weryfikacja domenowa

Lepsza komunikacja

Łatwe w nauce (bo ograniczone)

Wady

Ograniczone

Kosztowne (IDE, narzędzia, ludzie)

Wydajność

Niekompatybilność między sobą

I tu wchodzi COBOL

Cały na biało

COBOL

Common Business Oriented Language

Kto?

Departament Obrony → CODASYL

CODASYL → Joe Wegstein

Joe Wegstein

ALGOL 58 i ALGOL 60

Co?

COBOL'60/61/65 → brak standardu

Brak standardu → wiele implementacji

Grace Hopper

FLOW-MATIC

Dlaczego?

Standaryzacja komunikacji

Write Once, Run Everywhere

Troll Face

Rozwiązanie tymczasowe

DoD wymusza użycie

kdt

Grace Hopper

Słowa lepsze od symboli

Składnia

Ponad 300 słów kluczowych

Język zbliżony do naturalnego

Różnorodność

### Struktura programu ``` IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. AUTHOR. KOZIOLEK. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. PARA-1. DISPLAY "Hello world!". EXIT PROGRAM. END PROGRAM HELLO-WORLD. ```

Struktura

  • PROGRAM
  • DIVISION
  • SECTION
  • PARAGRAPH
  • SENTENCE
  • STATEMENT
  • CHARACTER

Typy

Type by example

Typy cd

Numeryczne – 9

Znakowe – A

Alfanumeryczne – X

Domniemane numeryczne – V

Znaki – S

Z założenia numeryczne – P

### Rekordy ``` DATA DIVISION. WORKING-STORAGE SECTION. 01 Student. 02 StudentId PIC 9(6). 02 StudentName. 05 FirstName PIC A(15). 05 LastName PIC A(15). 02 Gender. 88 GR-MAN VALUE 'M'. 88 GR-WOM VALUE 'W'. ```

Statyczna alokacja pamięci

Własne funkcje

nope

COBOL '68

Standaryzacja

COBOL '74

Wsparcie systemu plików

COBOL '85

Pewne unowocześnienie składni

COBOL 2002

Object Oriented COBOL

tia…

Odczyt i zapis danych

Line by line

Ma to sens

Java COBOLem XXI wieku?

Duża społeczność

Standaryzacja i JCP

Kompatybilność wsteczna

JVM

Q&A

Bonus