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

Alloy-Befehle: Schnellreferenz für relationale Spezifikation

Alloy ist eine deklarative Spezifikationssprache von Daniel Jackson und seiner Gruppe am MIT (Software Design Group) — ein Vertreter der „Lightweight Formal Methods". Statt vollständiger Beweise liefert der Alloy Analyzer automatisch Instanzen und Gegenbeispiele zu einem Modell, typischerweise innerhalb von Sekunden. Die Sprache baut auf relationaler Logik erster Ordnung auf und wird in Java-ähnlicher Syntax geschrieben.

Bausteine

sig User { following: set User }
fact NoSelfFollowing { all u: User | u not in u.following }
pred HasFollower[u: User] { some u.~following }
run HasFollower for 5
assert NoTransitiveClose { all u: User | no (u.following & u.following.following) }
check NoTransitiveClose for 4
  • sig deklariert einen Typ (Menge von Atomen), Felder sind Relationen.
  • fact sind immer gültige Einschränkungen des Modells.
  • pred/fun definieren wiederverwendbare Bedingungen beziehungsweise Ausdrücke.
  • assert formuliert eine Behauptung; check sucht ein Gegenbeispiel.
  • run sucht eine Instanz, in der das Prädikat gilt.

Relationale Operatoren und Quantoren

Mengen und Relationen werden kombiniert mit -> (Produkt), . (Join), +/-/& (Vereinigung, Differenz, Schnitt), ~ (Transposition), ^/* (transitive Hülle), in, =, univ, iden. Quantoren: all, some, no, lone, one; Kardinalität schreibt man als #.

Analyse

Der Analyzer übersetzt das Modell über Kodkod (einen relationalen Modell-Finder von Emina Torlak) in eine SAT-Instanz und löst sie mit Standard-SAT-Solvern. Weil die Suche auf eine Scope begrenzt ist (z. B. for 5 Atome pro Signatur), sind die Analysen vollständig automatisch — anders als beim interaktiven Beweisen mit Isabelle. Alloy eignet sich für Architektur-Analysen, Zugriffskontrollmodelle, Datenbankschemata und Sicherheitsdesigns.

Wer neben den statischen Strukturen auch zeitliches Verhalten nebenläufiger Systeme prüfen will, nutzt TLA+ mit seinem Model Checker TLC; ausführbare Prozessmodelle prüfen Promela und SPIN, mathematische Spezifikationen schreibt man in der Z-Notation.

Isabelle-Befehle: Schnellreferenz für den interaktiven Theorembeweiser

Isabelle ist ein generischer, interaktiver Theorembeweiser (Proof Assistant), mit dem sich mathematische Sätze und Programmeigenschaften maschinell überprüfen lassen. Entwickelt wurde er ab Mitte der 1980er-Jahre von Lawrence C. Paulson an der University of Cambridge, aufbauend auf Robin Milners Edinburgh-LCF-System; der Name geht auf Gérard Huets Tochter zurück. Isabelle ist in Standard ML geschrieben und hat mit Isabelle/HOL (Higher-Order Logic) eine Hauptobjektlogik, in der die meisten formalen Verifikationen stattfinden.

Strukturierte Beweise mit Isar

Seit der Version von 1999 bietet Isabelle mit Isar eine strukturierte Beweissprache, die Beweise lesbar und nachvollziehbar macht:

lemma add_comm: "a + b = b + a"
proof -
  show ?thesis by (induct a) simp_all
qed

Klassische Beweisbefehle im apply-Stil: apply (rule r), apply auto, apply simp, apply (blast intro: …), abgeschlossen mit done.

Automatisierung

  • sledgehammer ruft externe automatische Beweiser (E, Vampire, Z3, Spass) auf und rekonstruiert gefundene Beweise in Isabelle — das Herzstück für produktives Arbeiten.
  • nitpick und quickcheck suchen Gegenbeispiele beziehungsweise Testinstanzen zu Behauptungen.
  • find_theorems und find_consts durchsuchen die vorhandene Wissensbasis; value und term evaluieren Ausdrücke.

Werkzeuge

isabelle build -b HOL
isabelle jedit -l HOL theory.thy
isabelle process -T theory

Das Archive of Formal Proofs (AFP) sammelt hunderte verifizierte Theorien. Berühmte Projekte auf Isabelle-Basis: der seL4-Mikrokernel und der CompCert-C-Compiler.

Verwandte Beweisassistenten sind Coq und Lean. Wer das Verhalten nebenläufiger Systeme als ausführbares Modell prüfen will, nutzt dafür TLA+; wer Prozessmodelle maschinell prüfen will, nutzt Promela mit dem Model Checker SPIN; wer automatisch nach Gegenbeispielen sucht, den Alloy Analyzer.

Tcsh-Befehle: Schnellreferenz für die TENEX C Shell

tcsh (TENEX C Shell) ist die erweiterte Version der C-Shell, die Ken Greer Ende der 1970er Jahre an der Carnegie Mellon University entwickelte. Das t steht für TENEX, ein Betriebssystem, dessen Kommandozeilen-Features als Vorbild dienten. tcsh ist vollständig abwärtskompatibel zu csh und hat es auf vielen Systemen als Standard-Shell abgelöst (z. B. lange Zeit auf FreeBSD).

Erste Schritte

set prompt = "%m:%c3> "   # Host:Verzeichnis als Prompt
set autolist                  # Tab-Vervollständigung
set correct = all             # Rechtschreibkorrektur
Ctrl-R                        # rückwärts in der History suchen

Kernkonzepte

  • Kommandozeilen-Editing: vi- oder emacs-Modi, History-Suche per Ctrl-R
  • Programmierbare Vervollständigung: set autolist, set filec, complete für eigene Vervollständigungsregeln
  • Rechtschreibkorrektur: set correct korrigiert Befehle und Dateinamen automatisch
  • Prompt-Erweiterungen: %n (User), %m (Host), %~ (Pfad), %# (Root-Marker)
  • watch: Benachrichtigung bei Logins anderer User
  • Einzigartige History-Formen: z. B. ^alt^neu zum Ersetzen im letzten Kommando

Einordnung

tcsh kombiniert C-Shell-Syntax mit Komfort, der erst Jahre später in andere Shells einzog. Moderne Alternativen mit ähnlichem Bedienkomfort sind Fish, Zsh oder Nushell.

Ksh-Befehle: Schnellreferenz für die Korn-Shell

ksh (Korn-Shell) ist eine Unix-Shell von David Korn bei den AT&T Bell Laboratories, vorgestellt 1983. Sie vereint die Stärken der Bourne-Shell mit Komfort-Features der C-Shell und ist weitgehend POSIX-kompatibel. Die wichtigste Variante ist ksh93, die bis etwa 2012 von Korn und Glenn Fowler weiterentwickelt wurde.

Erste Schritte

ksh -c 'print "Hallo Welt"'
history
alias ll='ls -l'
typeset -i zahl=5

Kernkonzepte

  • print: Ausgabe (Alternative zu echo)
  • typeset: Variablen und Attribute setzen (z. B. typeset -i für Integer-Arithmetik)
  • [[ ]]: erweiterte Bedingungen mit Mustergleich
  • (( )): arithmetische Ausdrücke, z. B. (( sum = a + b ))
  • select: interaktive Auswahlmenüs in Skripten
  • function: Funktionen definieren, whence: Befehlspfad ermitteln
  • Coprozesse: |& für bidirektionale Kommunikation mit Hintergrundprozessen

Kommandozeilen-Editing

ksh bringt von Haus aus bearbeitbare History mit — im vi- oder emacs-Modus (set -o vi bzw. set -o emacs). Das war Mitte der 1980er Jahre ein Alleinstellungsmerkmal.

Praxis

ksh war lange die Standard-Login-Shell auf AIX und Solaris und ist bis heute POSIX-konforme Wahl für robuste Administrations-Skripte. Wer eine modernere, komfortablere interaktive Shell sucht, findet sie in der Bash oder Zsh. Die Verwandtschaft zeigt sich auch bei csh und tcsh — sie stammen aus derselben Shell-Epoche.

Csh-Befehle: Schnellreferenz für die C Shell

csh (C Shell) wurde 1978 von Bill Joy an der University of California, Berkeley, entwickelt und mit BSD Unix verbreitet. Ihre Syntax lehnt sich an die Programmiersprache C an. csh führte mehrere Komfort-Features ein, die heute selbstverständlich sind: History, Aliase und Job Control.

Erste Schritte

setenv PATH "$PATH:/usr/local/bin"
alias ll 'ls -l'
history
!!            # letztes Kommando wiederholen
!$            # letztes Argument wiederholen

Kernkonzepte

  • setenv / set: Umgebungs- bzw. lokale Variablen (set var = wert, Zugriff über $var)
  • alias: Kurzbefehle definieren
  • history: Liste der letzten Kommandos, Wiederholung über !-Kürzel
  • Job Control: jobs, fg, bg, %1 für Hintergrund-/Vordergrundprozesse
  • switch/case: C-artige Verzweigung in Skripten
  • foreach: Schleife über Listen

Einordnung

csh war als interaktive Shell sehr beliebt, ihre Skriptsprache gilt jedoch als fehleranfällig und ist nicht POSIX-konform — für Skripte empfiehlt sich bis heute die Bourne-Shell-Familie wie Bash. Die C-Shell-Linie lebt in tcsh weiter, das als direkter Nachfolger fast überall csh ersetzt hat.

  1. Brainfuck-Befehle: Die 8 Kommandos der Esoterik-Sprache
  2. Befunge-Befehle: Programmieren im 2D-Raster
  3. Whitespace-Befehle: Programmieren mit Leerzeichen
  4. GLSL-Befehle: Schnellreferenz für OpenGL-Shader

Seite 28 von 46

  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
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