Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

Joy-Befehle: Schnellreferenz für rein funktionale Stack-Programmierung

Joy ist eine rein funktionale Programmiersprache, die Manfred von Thun an der La Trobe University in Melbourne (Australien) entwickelte und 2001 veröffentlichte. Während klassische funktionale Sprachen Funktionen auf Argumente anwenden, basiert Joy auf der Komposition von Funktionen: Ein Programm ist eine Folge von Wörtern, die einen Stack in einen neuen Stack überführen. Es gibt keine Variablen und keine Parameterlisten — Programme werden als Daten behandelt, die sich zur Laufzeit kombinieren lassen.

Grundprinzip: Stack und Quotations

Wie der UPN-Rechner dc und die klassische Stack-Sprache Forth arbeitet Joy mit einem Datenstack: Literale werden gepusht, Operatoren holen ihre Argumente vom Stack. Der Unterschied zu Forth ist die funktionale Reinheit — Joy kennt keine Seiteneffekte im Kern, alles ist Funktionskomposition. Quotations, in eckige Klammern gesetzt, machen Programmstücke zu Daten:

2 3 +          # Stack: 5
[ dup * ]      # Quotation: Quadrat-Funktion als Datenobjekt
5 [ succ ] i   # i führt die Quotation aus → 6

Wichtige Wörter und Kombinatoren

  • Stack-Wörter: dup, pop, swap, rot, cons, concat, id (Identität)
  • Arithmetik: +, -, *, /, succ, pred, size, sum, first, rest
  • Kombinatoren: i (Quotation ausführen), dip (Quotation unter einem Wert ausführen), map, filter, foldl, foldr, ifte (if-then-else), while, times

Kontrollfluss entsteht allein durch Kombinatoren auf Quotations — ohne Schleifenvariablen. Diese pointfreie, funktionale Stack-Programmierung beeinflusste moderne Concatenative-Sprachen wie Factor direkt.

CICS-Befehle: Schnellreferenz für den IBM-Transaktionsmonitor

CICS (Customer Information Control System) ist ein Transaktionsmonitor von IBM für Großrechner unter z/OS und z/VSE. Er verwaltet Tausende gleichzeitiger Online-Transaktionen aus Terminal-, Browser- und API-Zugriffen und entstand 1968/69 aus dem Vorgänger MTCS (Multi-Terminal Communication System).

Transaktionsorientierte Programmierung

Anwendungen laufen als Transaktionen: Kurze, atomare Verarbeitungseinheiten, die von CICS terminiert, überwacht und im Fehlerfall zurückgerollt werden. Der Programmcode wird meist in COBOL, PL/I oder Assembler geschrieben und spricht CICS über eingebettete EXEC CICS-Anweisungen an:

EXEC CICS READ FILE('KUNDEN')
     INTO(KUNDENSATZ) RIDFLD(KUNDENNUMMER)
     RESP(ANTWORT)
END-EXEC

Wichtige Befehlsgruppen

  • Datei- und Datenzugriff — READ, WRITE, DELETE, STARTBR/READNEXT (Browsen) auf VSAM-Dateien
  • Terminal-Kommunikation — SEND/RECEIVE mit BMS-Maps (Basic Mapping Support) für maskenbasierte Bildschirme
  • Transaktionssteuerung — SYNCPOINT (festes Commit), RETURN mit TRANSID für pseudokonversationelle Abläufe
  • Programmverwaltung — LINK, XCTL, LOAD und der COMMAREA/DFHCOMMAREA-Datenaustausch zwischen Programmen
  • Web-Services — WEB-Befehle und JSON/XML-Unterstützung moderner CICS-Transaction-Server

Warum CICS wichtig bleibt

Ein Großteil der weltweiten Finanz-, Versicherungs- und Bestellsysteme läuft bis heute auf CICS; die Transaktionszahlen pro Sekunde sind auch im Vergleich zu Cloud-Plattformen beachtlich. Ähnlich transaktionsorientiert arbeitet die Sprache MUMPS (M), die ihre integrierte Datenbank direkt in die Sprache einbettet.

Verwandte Einträge: JCL-Befehle, COBOL-Befehle und PL/I-Befehle.

MUMPS-Befehle: Schnellreferenz für die M-Sprache

MUMPS (Massachusetts General Hospital Utility Multi-Programming System, kurz M) ist eine imperative höhere Programmiersprache mit integrierter transaktionsorientierter Schlüssel-Wert-Datenbank. Neil Pappalardo entwarf sie 1966 am Massachusetts General Hospital als Ersatz für Assembler in der Medizininformatik; die Sprache ist seit 1977 ANSI- und ISO-standardisiert.

Kernkonzept: Globale Variablen

Das Besondere an MUMPS sind die globalen Variablen (Globals): persistent gespeicherte, hierarchische Schlüssel-Wert-Bäume, die direkt in der Datenbank liegen und wie normale Variablen angesprochen werden. Ein ^-Zeichen kennzeichnet eine Global-Referenz:

SET ^Patient(1001,"Name")="Müller"
SET ^Patient(1001,"Diagnose")="A411"

Wichtige Befehle

  • SET / KILL — Werte zuweisen bzw. löschen
  • WRITE / READ — Ausgabe bzw. Eingabe
  • DO / GOTO — Unterroutine aufrufen bzw. springen
  • IF / ELSE / FOR — Kontrollstrukturen
  • QUIT — Unterroutine verlassen, HALT — Programm beenden
  • NEW — lokale Variablen beim Unterprogramm-Aufruf schützen

Systemfunktionen beginnen mit $, etwa $PIECE (Stringsegment), $LENGTH (Länge) oder $ORDER (nächster Schlüssel in einer Global).

Einsatzgebiete

MUMPS steckt in der US-Veteranenverwaltung (VistA/VA-EMR), in Krankenhausinformationssystemen (Meditech, Epic) und in freien Implementierungen wie GT.M (Greystone Technology M) und YottaDB. Das Abkürzungssystem ist standardisiert: jede Standard-Anweisung hat genau eine zugelassene Kurzform.

Verwandte Einträge: ABAP-Befehle, COBOL-Befehle und JCL-Befehle.

JCL-Befehle: Schnellreferenz für die IBM-Stapelverarbeitung

JCL (Job Control Language) ist die Steuersprache der IBM-Großrechner (z/OS), mit der Stapelverarbeitungsaufträge (Jobs) beschrieben werden. JCL sagt dem Betriebssystem, welche Programme laufen, welche Dateien sie brauchen und wie die Ausgabe behandelt wird — sie ist keine Programmiersprache im engeren Sinn, sondern eine Kontrollsprache.

Die drei Grundanweisungen

Jeder JCL-Job besteht aus mindestens drei Anweisungen, die in Spalte 1 beginnen:

//MEINJOB   JOB  (BESTELL),'BESTELLVERARBEITUNG',CLASS=A
//SCHRITT1  EXEC PGM=IEBGENER
//EINGABE   DD   DSN=MEIN.BESTAND,DISP=SHR
//AUSGABE   DD   SYSOUT=*
//SYSPRINT  DD   SYSOUT=*
  • JOB — markiert den Jobbeginn, vergibt den Jobnamen und Steuerparameter (Class, Priorität)
  • EXEC — führt ein Programm (PGM=) oder eine Prozedur (PROC=) aus
  • DD — beschreibt Datendefinitionen: Eingabe-/Ausgabedateien (DSN=), DISP= für den Dateizustand, SYSOUT= für Druckausgabe

Wichtige Konzepte

  • JES2/JES3 — Job-Eingabe-Subsysteme, die Jobs annehmen, einreihen und ausführen
  • Prozeduren — mehrfach verwendbare Anweisungsblöcke, instream (//X PROC) oder katalogisiert
  • GDG — Generation Data Groups: versionsverwaltete Dateigruppen
  • Utilities — Standardwerkzeuge wie IEBGENER (Kopieren), IEBCOPY (Bibliotheken) oder SORT/MERGE
  • IEFBR14 — leerer Job, klassisch zum Anlegen/Löschen von Dateien

JCL kennt keine Schleifen oder Verzweigungen im Sprachsinn; die Ablaufsteuerung übernehmen COND=-Parameter und Returncodes der Schritte.

Verwandte Einträge: CICS-Befehle, ABAP-Befehle und COBOL-Befehle.

TLA+-Befehle: Schnellreferenz für formale Spezifikation nebenläufiger Systeme

TLA+ (Temporal Logic of Actions) ist eine formale Spezifikationssprache von Leslie Lamport für nebenläufige und verteilte Systeme. Ein System wird als Menge von Zuständen und Aktionen beschrieben; die temporale Logik erfasst, welche Verhaltensabläufe möglich sind. Lamport entwickelte TLA+ in den frühen 1990er-Jahren und dokumentierte es im Buch „Specifying Systems" (Addison-Wesley, 2002).

Grundmuster einer Spezifikation

---- MODULE Counter ----
EXTENDS Naturals
VARIABLE x
Init == x = 0
Next == x' = x + 1
Spec == Init / [][Next]_x
====

Ein Apostroph (x') bezeichnet den Wert der Variablen im nächsten Zustand. [][Next]_x erlaubt Stuttering-Schritte, bei denen sich nichts ändert — wichtig für die Komposition von Systemen.

Operatoren

  • Logik: / (und), / (oder), ~ (nicht), ⇒ (impliziert), A (für alle), E (es existiert).
  • Temporal: []P (immer P — Sicherheit), <>P (schließlich P — Lebendigkeit), P ~> Q (P führt zu Q), WF_/SF_ (schwache/starke Fairness).
  • System: ENABLED A, UNCHANGED x, [A]_v (Aktion mit Stuttering).

Sicherheit, Lebendigkeit, Verfeinerung

Eine Invariante []Inv drückt eine Sicherheitseigenschaft aus; Lebendigkeitseigenschaften sagen, dass etwas irgendwann eintritt. Mit Verfeinerungs-Abbildungen (Refinement Mappings) zeigt man, dass eine Implementierung eine abstrakte Spezifikation korrekt umsetzt.

Werkzeuge

  • TLC, der Model Checker, durchsucht endliche Modelle systematisch nach verletzten Invarianten und Deadlocks.
  • TLAPS, das TLA+ Proof System, beweist Eigenschaften maschinengeprüft wie ein Proof Assistant — verwandt mit Isabelle.
  • PlusCal (2009) ist eine algorithmenähnliche Sprache, die zu TLA+ kompiliert.
  • Die Toolbox ist die integrierte Entwicklungsumgebung mit Editor, TLC und TLAPS.

TLA+ wird unter anderem bei Amazon Web Services zur Verifikation kritischer Systemkomponenten eingesetzt. Während TLA+ zeitliches Verhalten modelliert, beschreiben Promela mit dem Model Checker SPIN ausführbare Prozessmodelle und Alloy statische Strukturen relational; Zustand und Operationen mengentheoretisch beschreibt die Z-Notation.

  1. Alloy-Befehle: Schnellreferenz für relationale Spezifikation
  2. Isabelle-Befehle: Schnellreferenz für den interaktiven Theorembeweiser
  3. Tcsh-Befehle: Schnellreferenz für die TENEX C Shell
  4. Ksh-Befehle: Schnellreferenz für die Korn-Shell

Seite 26 von 45

  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz