Ich verbringe meine Zeit gerne damit, coole Sprachmerkmale zu erforschen, auch wenn ich sie in absehbarer Zeit nicht nutzen kann, aber ich höre immer nur schlechte Dinge über Cobol, aber ich bin sicher, dass es einige nette Features haben muss damit es so wichtig wird wie es ist. Was wären also einige gute Eigenschaften, die man von Cobol lernen könnte?
Die Fähigkeit, Formeln in weniger präziser Form zu schreiben. Zum Beispiel:
%Vor%Ist es ein Vorteil oder ein Nachteil? hängt davon ab, wie man es betrachtet ...
Wahre Festkommavariablen und Mathematik. Also, für 15 Dollar und 75 Cent war Ihre interne Darstellung die Binärziffern 1, 5, 7 und 5. Dies war eine exakte Darstellung gegenüber der Standard-Gleitkomma-Approximation. Auch alle Addition und Subtraktion an dieser Festkomma-Variable war ebenfalls Fixpunkt.
Die Report Writer-Erweiterung war sehr gut beim Generieren von Berichten und Bearbeiten von Kopf- und Fußzeilen, Seitenumbrüchen, Abschnittsumbrüchen und allem, was mit dem Generieren von Berichten zu tun hat.
Die Sort / Merge-Erweiterung war auch sehr, sehr gut. Mit der Vielzahl der zulässigen Konstrukte können Sie einfach sortieren / zusammenführen, oder Sie könnten Sortiereingabesätze verarbeiten, bevor Sie die Sortierung nach der Sortierung sortieren oder sortieren. Geben Sie beispielsweise die Eingabedatensätze direkt zum Sortieren ein, verwenden Sie dann jedoch Report Writer für die sortierten Datensätze, ohne eine zwischengeordnete sortierte Datei in Ihrem Code verwalten zu müssen. Sehr nett.
Was es gut gemacht hat, hat es sehr gut gemacht. Es ist nur so, dass die meiste Zeit, was es gut gemacht hat, nicht genau das ist, was du brauchst.
Langlebigkeit. Die Sprache, die ich 1975 zum ersten Mal gelernt habe, kann heute dazu verwendet werden, Webdienste zu konsumieren.
Außerdem gibt es bei COBOL eine Funktion, nach der die Leute jeden Tag fragen. Wenn zwei Datensätze mit Feldern mit denselben Namen vorliegen, können Sie Folgendes tun:
%Vor%und es verschiebt die Felder mit dem gleichen Namen von einem zum anderen und führt bei Bedarf Konvertierungen durch. Das Fehlen einer solchen Funktion ist eine der Hürden für Menschen, die Data Transfer Objects für die Rückgabe von Web-Services übernehmen - Sie müssen den Code schreiben, um das Obige per Hand zu schreiben, oder Code-Generierung verwenden.
Ich denke, es könnte auch ein ADD CORRESPONDING
gegeben haben, aber ich bin mir nicht sicher. Die Erinnerung beginnt nach einer Weile zu gehen ...
Das Ausgabeformat ist Teil der Variablendeklaration . Es ist sehr geschäftsorientiert.
In COBOL eine Variablendeklaration besteht aus einer Zeile in den DATA DIVISION, die Folgendes enthält Artikel:
%Vor%Ein Startwert kann a zugewiesen werden Variable mittels einer Erweiterung zu Die PICTURE-Klausel heißt VALUE Klausel.
Einige Beispiele:
%Vor%
Die Datenstrukturierungsfunktionen sind etwa so gut wie für Felder fester Länge.
ALTER ist regelrecht verrückt. Vielleicht nicht gut für den Produktionscode, aber Spaß beim Spielen. Im Grunde können Sie ändern, welche Anweisungen zur Laufzeit anderen Anweisungen folgen (GOTOs einfügen).
Angenommen, Sie hatten 2 Klassen in C #, die einige Felder gemeinsam hatten, z. B. Klasse A hat Namen, Alter und Geschlecht plus einige andere Felder ... Klasse B hat dieselben 3 Felder plus einige andere von seine eigene. Die einzige Möglichkeit, die Felder zu kopieren, wäre:
%Vor%In COBOL schreibst du einfach:
%Vor%Es ist sehr einfach zu lernen. Ich habe nur zwei COBOL-Programme in meinem Leben geschrieben (um COBOL-ISAM-Dateien in ein anderes Format zu entpacken) und ich lernte alles, was ich wissen musste, um es mit Hilfe eines Buches an einem Nachmittag zu machen.
Oh, und es wird Ihrem Gehirn die korrekte Schreibweise des Wortes "Umwelt" einprägen.
Es hat auch ein interessantes Feature, wenn man Variablen deklariert ... an der Stelle der Deklaration der Variablen können Sie auch einige mögliche Werte der Variablen deklarieren und sie mit booleans beschriften. Sie können
verwenden %Vor%statt
%Vor%Das ist besonders schön, wenn die Werte nicht besonders aussagekräftig sind (d. h. magische Zahlen oder sogar magische Strings) ... diese magischen Werte erscheinen nur in der Deklaration der Variablen und sind gut mit dem, was sie bedeuten, bezeichnet.
Sie können die Variable sogar auf einen dieser Werte setzen mit:
%Vor%Die Leute bei Sun (jetzt Oracle) werden wahrscheinlich sauer auf mich sein, aber FORTRAN und COBOL waren die ersten Versuche, einmal zu schreiben und überall Sprachen zu benutzen. IBM hat der COBOL-Sprache Erweiterungen hinzugefügt, die den Versuch für COBOL praktisch zunichte gemacht haben.
Vor COBOL und FORTRAN waren die Computersprachen maschinenspezifisch. Computer waren so teuer, dass es bei jedem Upgrade des Computers billiger war, den Code neu zu schreiben. IBM erkannte in den späten 1950er Jahren, dass die Schaffung und Aufrechterhaltung einer konsistenten Computerarchitektur Kunden Geld sparen (und den Markt für Computersysteme erhöhen würde). Aus diesem Grund hat IBM die 360-Serie von Computern entwickelt.
Auf die gleiche Weise wurde den Kunden klar, dass das Umschreiben von Software für jede neue Maschine zu teuer wurde. IBM entwickelte die Anfänge von FORTRAN, während Grace Hopper und die Bundesregierung die Entwicklung von COBOL vorantrieben. Das erklärt, warum IBM all diese proprietären Erweiterungen zu COBOL hinzugefügt hat. Die Beteiligung der Bundesregierung erklärt auch, warum COBOL eine solche ausführliche Sprache ist.
COBOL eignet sich hervorragend zum Formatieren von Ausgaben. Ein Ausgabefeld, das wie folgt aussieht:
TOTAL-PAY PIC $$$, $$$ 99
würde das $ direkt neben dem Wert ausgeben. Es würde bis zu $ 99,999,99 drucken. Wenn der Wert nur $ 150 war, würde es $ 150.00 drucken. Außerdem gibt es normalerweise eine COBOL-Funktion, die diesen Betrag in Wörter umwandelt - "Hundertfünfzig Dollar und keine Cent"
Sie können Datensätze auch neu definieren, um die Verarbeitung von Textdateien mit mehreren Datensatztypen zu ermöglichen.
%Vor%Tags und Links language-features cobol