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

Sather-Befehle: Schnellreferenz für Berkeleys objektorientierte Sprache

Sather ist eine objektorientierte Systemsprache, die ab 1990 am International Computer Science Institute (ICSI) der University of California in Berkeley unter der Leitung von Steve Omohundro entstand. Sie verbindet die Ideen von Eiffel (Design by Contract, starke Typisierung) mit Effizienz-Anspruch und wurde später von der GNU-Projekt-Gemeinschaft weiterentwickelt. Sather ist einfach, effizient, sicher und nicht-proprietär — mit Garbage Collection, Mehrfachvererbung, generischen (parametrisierten) Klassen und Iterator-Abstraktion.

Grundgerüst

class HELLO is
  main is
    #OUT + "Hallo, Welt!
";
  end;
end;

Wichtige Sprachmittel

  • class ... is ... end: Klassen mit Unterklassen über class X < Y (Mehrfachvererbung möglich).
  • ITER: Iterator-Methoden für saubere Schleifen-Abstraktion (z.B. über Sammlungen).
  • bound routines: an ein Objekt gebundene Prozeduren (Methoden).
  • ROUTINE-Typen: Prozeduren als Werte, inkl. Closures.
  • Design by Contract: Vorbedingungen (pre), Nachbedingungen (post) und Invarianten — aus Eiffel übernommen.
  • #OUT: Standard-Ausgabe (Stream), wie in vielen OO-Sprachen der 90er üblich.

Werkzeuge

sacomp                 # GNU-Sather-Compiler (Hauptbefehl)
sacomp -main HELLO -o hello hello.sa   # Programm mit main-Routine übersetzen
sacomp -v               # verbose (Schritte ausgeben)
sacomp -c               # nur kompilieren (kein Linken)
sather -make            # Makefile-basierter Build (ältere Distributionen)
Makefile mit sather.module   # typisches Projekt-Setup

Praxis-Tipps

  • Die aktuelle GNU-Version ist Sather 1.2.3 (2020er-Pakete existieren z.B. für Fedora).
  • Sather unterscheidet Subtyping (Interface-Konformität) von Subclassing (Implementierungs-Wiederverwendung) — flexiblere Hierarchien ohne Typsicherheits-Verlust.
  • Der Quelltext-Datei-Endung ist .sa (z.B. hello.sa).

Verwandte Grundlagen: Eiffel-Befehle, Oberon-Befehle, Modula-3-Befehle und Modula-2-Befehle.

Chapel-Befehle: Schnellreferenz für den chpl-Compiler

Chapel (Cascade High Productivity Language) ist eine parallele Programmiersprache, die Cray im Rahmen des DARPA-HPCS-Programms entwickelte. Sie ist für produktive Parallelverarbeitung im großen Maßstab gedacht: vom Laptop über Cluster bis zum Supercomputer, inzwischen auch auf GPUs. Nebenläufigkeit und verteilte Speicher sind fest in die Sprache eingebaut, nicht als Bibliotheken nachgerüstet.

Erste Schritte

Der Compiler heißt chpl. Er übersetzt Chapel-Quellcode über ein LLVM- oder C-Backend in ein ausführbares Programm.

chpl hello.chpl -o hello
./hello
chpl --fast hello.chpl -o hello

--fast aktiviert die aggressiven Optimierungen (vergleichbar -O3) und deaktiviert Laufzeit-Checks. chpl --version zeigt die Compiler-Version, chpl --print-commands die ausgeführten Tool-Aufrufe.

Praxis-Tipps

  • Multi-Locale: Bei verteilter Ausführung erzeugt chpl zwei Binaries — einen Launcher (hello) und das eigentliche Programm (hello_real). Der Launcher reicht den Job an den Scheduler (z.B. Slurm) weiter.
  • Parallel-Konstrukte: forall (datenparallel), coforall (taskparallel), begin, sync und atomic sind Sprachbestandteile; locale und domain steuern die Verteilung.
  • Mason: Der Paketmanager für Chapel heißt Mason — mason new, mason build, mason run und mason test betreuen Projekte.
  • Umgebung: CHPL_HOME zeigt auf die Installation, CHPL_COMM wählt das Kommunikations-Backend (z.B. gasnet oder ofi).

Verwandte Grundlagen: BCPL-Befehle (historische Wurzel der C-Sprachfamilie, auf der das C-Backend aufbaut), Ballerina-Befehle (Nebenläufigkeit ebenfalls im Sprachkern), Go-Befehle (parallele Sprachwelt mit Goroutinen).

Ballerina-Befehle: Schnellreferenz für das bal-Toolkit

Ballerina ist eine quelloffene Programmiersprache (Apache-2.0), die WSO2 für Cloud-Anwendungen und Integration entwickelt. Ihr Markenzeichen: Netzwerk-Interaktionen (HTTP, gRPC, GraphQL, WebSocket, Message Queues, Datenbanken) sind als Sprachelemente eingebaut, nicht als externe Bibliotheken. Das Toolkit kommt als einzelnes Kommandozeilen-Werkzeug bal.

Erste Schritte

Ein einzelnes Programm lässt sich direkt ausführen, ein Projekt wird über bal new angelegt.

bal run hello.bal
bal new mein-projekt
cd mein-projekt
bal build
bal run

bal help listet alle Aktionen des Tools: bal new (Projekt anlegen), bal add (Modul ergänzen), bal build (Paket bauen), bal run (ausführen), bal test (Tests), bal clean (Build-Artefakte entfernen), bal format (Code formatieren) und bal doc (Dokumentation erzeugen).

Praxis-Tipps

  • Nebenläufigkeit: worker-Blöcke und Strände (leichtgewichtige Threads) sind Sprachbestandteile; das check-Keyword gibt Fehler früh und lesbar weiter.
  • Service-Typen: Ein HTTP- oder GraphQL-Service ist im Code ein Objekt mit resource-Methoden — Ballerina erzeugt daraus direkt lauffähige Endpunkte.
  • Pakete: bal pack erstellt ein Paket, bal push veröffentlicht es in Ballerina Central, bal pull holt Abhängigkeiten.
  • Versionen: bal version zeigt die Distribution, bal update aktualisiert sie.

Verwandte Grundlagen: Chapel-Befehle (Nebenläufigkeit ebenfalls im Sprachkern), GraphQL-Befehle (native GraphQL-Unterstützung), MySQL-Befehle (eingebaute Datenbank-Clients).

BCPL-Befehle: Schnellreferenz für den Cintcode-Compiler

BCPL (Basic Combined Programming Language) ist eine typenlose Systemsprache, die Martin Richards 1966/67 während seiner Zeit am MIT (Project MAC) entwarf. Sie stammt von CPL (Combined Programming Language) ab und war ursprünglich zum Schreiben von Compilern gedacht. BCPL gilt als Vorläufer von C: über die Zwischenstufe B (Ken Thompson, 1969) übernahm C die Block-Syntax mit geschweiften Klammern und den //-Zeilenkommentar. Das moderne BCPL-System von Martin Richards läuft weiterhin auf Linux, macOS und Windows.

Erste Schritte

BCPL wird heute über das Cintcode-System (Cintsys) eingesetzt. Der Compiler erzeugt maschinenunabhängigen Cintcode-Zwischencode, der von einem kleinen Interpreter ausgeführt wird. Das macht BCPL extrem portabel.

cintsys64 -q -c bcpl hello TO hello
cintsys64 -q -c c hello TO hello.cin
cintsys64 -q hello

Die TO-Schreibweise stammt aus den frühen BCPL-Kommandozeilen: bcpl <Quelle> TO <Ziel> kompiliert eine Quelldatei. Die Kurzkommandos b, bc, bs, bcb, bsb, bcl und bsl kompilieren BCPL-Programme direkt zu 32-Bit-Cintcode.

Praxis-Tipps

  • Typenlos: BCPL kennt nur einen Datentyp — ein maschinenunabhängiges Wort. Vektoren und Strukturen bildet man über Zeigerarithmetik ab.
  • Einfluss: Die { }-Blockstruktur, //-Kommentare und das GET-Include (ähnlich #include) gehen auf BCPL zurück.
  • Kompakt: Der Compiler ist klein und leicht auf neue Rechner portierbar — genau das machte BCPL in den 1970ern so beliebt.

Verwandte Grundlagen: C/C++-Befehle (direkter Nachfahre über B), Chapel-Befehle (moderne Systemsprache mit C-Backend).

ReScript-Befehle: Schnellreferenz für typsicheres JavaScript

ReScript ist eine typsichere Sprache, die zu hochwertigem JavaScript kompiliert wird. Sie entstand aus BuckleScript (Hongbo Zhang, 2016), einem OCaml-Backend, und wurde im Juli 2020 zusammen mit Reason unter dem Namen ReScript neu ausgerichtet. ReScript bietet die Ausdruckskraft von OCaml – Typinferenz, Pattern Matching, unveränderliche Daten – mit einer an JavaScript angelehnten Syntax. Anders als ReasonML, das weiterhin auf der OCaml-Toolchain mit Melange aufbaut, besitzt ReScript einen eigenen Compiler und Build-Prozess.

Werkzeuge

  • rescript – Build-Tool und Compiler-Aufruf (früher bsb)
  • bsc – der eigentliche ReScript-Compiler (Single-File)
  • rewatch – Datei-Watcher für rescript build -w
  • rescript convert – migriert OCaml/Reason-Code nach ReScript

Projekt anlegen und bauen

npm init -y
npm install rescript
npx rescript init myapp        # Projektgerüst mit rescript.json anlegen
cd myapp
npx rescript build             # kompiliert .res/.resi nach JavaScript (lib/js)
npx rescript build -w          # Watch-Modus, baut bei Änderungen neu
npx rescript clean             # Build-Artefakte (lib, .bs) entfernen
npx rescript format -all       # Quellcode formatieren

Konfiguration

Die Projektdatei heißt heute rescript.json (früher bsconfig.json). Wichtige Felder: name, sources, package-specs (z. B. commonjs), jsx für React-ähnliche Syntax.

{
  "name": "myapp",
  "sources": [{ "dir": "src" }],
  "package-specs": [{ "module": "commonjs", "in-source": true }],
  "suffix": ".bs.js"
}

ReScript-Quelldateien tragen die Endung .res (Implementierung) und .resi (Signatur). Verwandt: OCaml-Befehle und PureScript-Befehle.

  1. Curry-Befehle: Schnellreferenz für funktional-logische Programmierung
  2. Clean-Befehle: Schnellreferenz für funktionale Programmierung mit Uniqueness Types
  3. Jupyter-Befehle: Schnellreferenz für Notebooks und JupyterLab
  4. IPython-Befehle: Schnellreferenz für die interaktive Python-Shell

Seite 15 von 45

  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
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