Mica ist eine systemnahe Programmiersprache mit klarer, strukturierter Syntax und ausdrücklicher Kontrolle über die Maschine. Die verbindlichen Fachbegriffe des Compilers — Schlüsselwörter, Fehlermeldungen und Bezeichner — sind englisch. Dieses Glossar nennt zu jedem zentralen Begriff die gebräuchliche deutsche Entsprechung und erklärt ihn in einem Satz, damit deutschsprachige Texte über Mica einheitlich und präzise bleiben.
Es ist ein lebendiges Dokument und erscheint zunächst auf Deutsch; weitere Sprachfassungen können folgen.
Ein Hinweis zu mehrdeutigen Übersetzungen. Das englische obligation heißt hier Verpflichtung — nicht „Obligation“, das im Deutschen eine Anleihe aus dem Finanzwesen bezeichnet. Wo ein englischer Begriff im Deutschen leicht in die Irre führt, ist die treffende Entsprechung unten vermerkt.
1 · Sprache und Typsystem
| Englisch (Mica) | Deutsch | Erläuterung |
|---|---|---|
| compiler | der Compiler (Übersetzer) | Übersetzt Mica-Quelltext bis hinunter zu nativem Maschinencode. |
| systems programming language | systemnahe Programmiersprache | Eine Sprache mit direkter, sichtbarer Kontrolle über Speicher und Maschine. |
| statement | die Anweisung | Ein ausführbarer Schritt des Programms (z. B. Zuweisung, Schleife). |
| expression | der Ausdruck | Eine Berechnung, die einen Wert liefert. |
| declaration | die Deklaration | Die Einführung eines Namens (Konstante, Variable, Typ, Funktion). |
| record | der Verbund (record) | Ein zusammengesetzter Typ aus benannten Feldern. |
| field | das Feld (eines Verbunds) | Ein benannter Bestandteil eines Verbunds. |
| array | das Feld / die Reihung | Eine indizierte Sammlung gleichartiger Elemente fester Größe. |
| set | die Menge (Mengentyp) | Eine mathematische Menge über einem Ordinaltyp; Mitgliedschaft statt Bitmaske. |
| enumeration | die Aufzählung (Aufzählungstyp) | Ein eigener Typ mit benannten, geordneten Werten. |
| subrange | der Teilbereich(styp) | Ein Typ, dessen Werte auf ein Intervall beschränkt sind. |
| generic / type parameter | das Generikum / der Typparameter | Eine Prozedur oder Funktion, die über einen Typ parametrisiert ist. |
| capability constraint | die Fähigkeitsbeschränkung | Die Anforderung, die ein Typparameter erfüllen muss, benannt durch Fähigkeitswörter (geordnet, numerisch, Gleichheit, …). |
| ordinal type | der Ordinaltyp | Ein Typ mit endlicher, geordneter, abzählbarer Wertemenge. |
| domain (of a type) | der Wertebereich | Die Menge der gültigen Werte eines Typs, mit unterer und oberer Grenze. |
| lower / upper bound | die untere / obere Grenze | Der kleinste bzw. größte Wert eines Wertebereichs. |
| pointer | der Zeiger | Verweist auf einen Wert an einer Speicheradresse. |
| to dereference | dereferenzieren | Den Wert lesen oder schreiben, auf den ein Zeiger verweist. |
| address-of | die Adressbildung | Die Adresse einer Variablen ermitteln. |
| nil | das nil-Literal (Nullzeiger) | Ein zuweisbarer, vergleichbarer Zeigerwert, der „auf nichts“ verweist. |
| short-circuit evaluation | die Kurzschlussauswertung | Die rechte Seite von and/or wird nur ausgewertet, wenn nötig. |
| checked arithmetic | die geprüfte Arithmetik | Ein Modus, der Ganzzahl-Überlauf zur Laufzeit erkennt und meldet. |
| overflow | der Überlauf | Ein Rechenergebnis außerhalb des darstellbaren Bereichs. |
| signed / unsigned | vorzeichenbehaftet / vorzeichenlos | Ganzzahltypen mit bzw. ohne Vorzeichen. |
| floating-point | die Gleitkommazahl | Reelle Zahlen nach IEEE 754. |
| boolean | der Wahrheitswert (boolesch) | Der Typ mit den Werten falsch und wahr. |
| string | die Zeichenkette | Eine Folge von Zeichen; in Mica standardmäßig UTF-32. |
| code point | der Codepunkt | Ein einzelnes Unicode-Zeichen (32 Bit). |
2 · Speichersicherheit und Heap
Dies ist das Herzstück von Mica 5.0.0: Die Sicherheit der Heap-Speicherverwaltung wird zur Übersetzungszeit durch Flussanalyse bewiesen — ohne automatische Speicherbereinigung, ohne Ausleihprüfer und ohne Lebensdauer-Annotationen.
| Englisch (Mica) | Deutsch | Erläuterung |
|---|---|---|
| heap | der Heap (Haldenspeicher) | Der Speicher für dynamisch angeforderte Werte mit freier Lebensdauer. |
| allocation | die Allokation (Speicherreservierung) | Das Anfordern einer Speicherzelle auf dem Heap (new). |
| to free / release | freigeben | Eine Speicherzelle wieder verfügbar machen (dispose). |
| obligation | die Verpflichtung | Jede Allokation erzeugt eine Verpflichtung, die auf jedem Pfad erfüllt werden muss. |
| to discharge (an obligation) | erfüllen / einlösen | Eine Verpflichtung einlösen — durch dispose, durch Bindung an einen Eigentümer oder durch Rückgabe. |
| contract | der Vertrag (Speichervertrag) | Die Regel, dass jede Verpflichtung auf jedem Pfad eingelöst sein muss; sonst lässt sich das Programm nicht übersetzen. |
| owner | der Eigentümer | Jede Allokation hat zu jedem Zeitpunkt genau einen Eigentümer; dessen Lebensende gibt den Speicher frei. |
| ownership | die Eigentümerschaft | Die Zuständigkeit für die Freigabe einer Speicherzelle. |
| owner-bound | eigentümergebunden | Eine Allokation, deren Freigabe an das Lebensende ihres Eigentümers gebunden ist. |
| lifetime | die Lebensdauer | Die Zeitspanne, in der eine Speicherzelle gültig benutzt werden darf. |
| lifetime class | die Lebensdauerklasse | Eine von vier Einstufungen jeder Allokationsstelle (siehe folgende vier Zeilen). |
| transferred | übertragen | Die Verpflichtung verlässt die Funktion über den Rückgabewert; der Aufrufer trägt sie weiter. |
| manual-verified | manuell verifiziert | Ein dispose löst die Verpflichtung auf jedem geprüften Pfad ein — nachweislich leckfrei. |
| manual-unverified | manuell unverifiziert | Der Zeiger entzieht sich der Analyse; die Verpflichtung wird benannt, aber nicht erzwungen. |
| region | die Region | Ein Arena-Speicher je Eigentümer: linear belegt, beim Verlassen des Eigentümers in einem Zug freigegeben. |
| region allocator | der Regionen-Allokator | Der Allokator, der eine Region umsetzt: belegt durch Vorrücken innerhalb der Region und gibt beim Lebensende des Eigentümers die ganze Region auf einmal frei. |
| region-based memory management | regionenbasierte Speicherverwaltung | Speicher in Blöcken anfordern und gesammelt freigeben statt Zelle für Zelle. |
| obligation analysis | die Verpflichtungsanalyse | Die Datenflussanalyse, die jede Allokationsstelle einstuft und Lecks beweist. |
| garbage collection | die automatische Speicherbereinigung (Garbage Collection) | Laufzeitverfahren, das unerreichbaren Speicher selbsttätig einsammelt — von Mica bewusst nicht verwendet. |
| borrow checker | der Ausleihprüfer (Borrow-Checker) | Rusts typbasierte Lebensdauerprüfung — von Mica durch Flussanalyse ersetzt. |
| memory leak | das Speicherleck | Speicher, der reserviert, aber nie freigegeben wird. |
| silent leak | das stille Speicherleck | Ein unbemerktes Leck; in Mica ist ein vollständig verfolgtes Leck nicht ausdrückbar. |
| use-after-free | die Nutzung nach Freigabe | Der fehlerhafte Zugriff auf bereits freigegebenen Speicher. |
| double-free | die doppelte Freigabe | Das fehlerhafte zweifache Freigeben derselben Zelle. |
| dangling pointer | der hängende Zeiger | Ein Zeiger auf Speicher, der nicht mehr gültig ist. |
| defer | defer (zurückstellen) | Eine Anweisung beim Verlassen der Funktion ausführen — ein Aufräum-Wächter. |
| escape | das Entweichen (Escape) | Ein Zeiger verlässt den verfolgbaren Bereich der Analyse. |
| provenance | die Herkunft (eines Zeigers) | Ob ein Zeiger Mica-eigen oder fremd (aus C) ist; das dispose eines fremden Zeigers ist ein Übersetzungsfehler. |
| memory narration | die Speichererzählung | Der Bericht des Compilers je Allokation: Eigentümer, bewiesene Lebensdauerklasse und gewählter Allokator. |
| allocator | der Allokator (Speicherzuteiler) | Die Komponente, die Heap-Speicher tatsächlich bereitstellt. |
| bump allocator / arena | der Bump-Allokator / die Arena | Belegt durch bloßes Vorrücken eines Zeigers; gibt gesammelt frei. |
| fixed arena | die feste Arena | Ein statisch budgetierter Speicherbereich ohne Betriebssystem-Heap — für eingebettete Ziele. |
| plug-in | das Plug-in | Ein austauschbarer Allokator hinter einer festen Schnittstelle. |
| compile-time / runtime | die Übersetzungszeit / die Laufzeit | Während der Übersetzung bzw. während der Programmausführung. |
3 · Übersetzungspipeline
| Englisch (Mica) | Deutsch | Erläuterung |
|---|---|---|
| scanner / lexer | der Scanner (lexikalische Analyse) | Zerlegt den Quelltext in Token. |
| token | das Token | Die kleinste bedeutungstragende Einheit des Quelltexts. |
| parser | der Parser (Syntaxanalyse) | Baut aus den Token den Syntaxbaum auf. |
| recursive descent | der rekursive Abstieg | Ein gut lesbares Parserverfahren entlang der Grammatik. |
| abstract syntax tree (AST) | der abstrakte Syntaxbaum (AST) | Die Baumdarstellung des Programms nach dem Parsen. |
| semantic analysis | die semantische Analyse | Prüft Namen, Typen und Regeln; faltet Konstanten. |
| pass | der Durchlauf (Phase) | Ein abgegrenzter Analyse- oder Transformationsschritt. |
| constant folding | die Konstantenfaltung | Auswertung konstanter Ausdrücke bereits zur Übersetzungszeit. |
| lowering | das Lowering (Absenkung) | Überführung in eine maschinennähere Darstellung. |
| intermediate representation (IR) | die Zwischendarstellung | Eine flache Form zwischen Syntaxbaum und Maschinencode. |
| three-address code | der Drei-Adress-Code | Eine IR-Form mit höchstens drei Operanden je Operation. |
| Spectra | Spectra | Micas Zwischensprache: eine typisierte Drei-Adress-Zwischendarstellung. |
| monomorphization | die Monomorphisierung | Wie Generika übersetzt werden: je unterschiedlicher Menge von Typargumenten wird eine konkrete Spezialisierung erzeugt. |
| string fusion | die Zeichenketten-Fusion | Eine verkettete Konkatenation (s1 + s2 + s3), abgesenkt zu einer einzigen dimensionierten Allokation, ohne Zwischenwerte. |
| activation record / stack frame | der Aktivierungssatz (Stapelrahmen) | Der Speicherrahmen eines Funktionsaufrufs. |
| static link | der statische Link (statische Kette) | Der Verweis, über den eine geschachtelte Funktion ihren umgebenden Bereich erreicht. |
| nested function | die geschachtelte Funktion | Eine innerhalb einer anderen Funktion definierte Funktion. |
| scope | der Gültigkeitsbereich | Der Programmbereich, in dem ein Name sichtbar ist. |
4 · Backend und Codeerzeugung
| Englisch (Mica) | Deutsch | Erläuterung |
|---|---|---|
| control-flow graph (CFG) | der Kontrollflussgraph | Die Darstellung des Programms als Grundblöcke und deren Kanten. |
| basic block | der Grundblock (Basisblock) | Eine geradlinige Befehlsfolge mit einem Eingang und einem Ausgang. |
| static single assignment (SSA) | die statische Einmalzuweisung (SSA) | Eine Form, in der jeder Wert genau einmal zugewiesen wird. |
| dominance / dominator | die Dominanz / der Dominator | Ein Block dominiert einen anderen, wenn jeder Pfad dorthin über ihn führt. |
| dominance frontier | die Dominanzgrenze | Die Orte, an denen φ-Funktionen platziert werden. |
| liveness | die Lebendigkeit(sanalyse) | Welche Werte an einer Stelle noch benötigt werden. |
| live range | das Lebendigkeitsintervall | Die Spanne, über die ein Wert lebendig ist. |
| reaching definitions | erreichende Definitionen | Welche Zuweisungen eine Stelle erreichen können. |
| dataflow analysis | die Datenflussanalyse | Verfahren, die Programmeigenschaften entlang des Kontrollflusses berechnen. |
| inlining | das Inlining (Funktionseinbettung) | Den Rumpf einer kleinen Funktion an die Aufrufstelle einsetzen. |
| register allocation | die Registerzuteilung | Werte auf Maschinenregister bzw. Stapelplätze verteilen. |
| graph coloring | die Graphenfärbung | Ein Verfahren der Registerzuteilung. |
| spill | das Auslagern (Spilling) | Einen Wert mangels Register in den Stapelspeicher auslagern. |
| peephole optimization | die Guckloch-Optimierung | Lokale Verbesserungen über ein kleines Befehlsfenster. |
| instruction selection | die Befehlsauswahl | Die Abbildung von IR-Operationen auf Maschinenbefehle. |
| calling convention | die Aufrufkonvention | Die Regeln, wie Argumente und Rückgaben übergeben werden. |
| ABI | die ABI (binäre Anwendungsschnittstelle) | Die binäre Schnittstelle, an die sich übersetzte Programme halten. |
| executable | die ausführbare Datei | Ein startfähiges Programm (ELF). |
| static library / archive | die statische Bibliothek (Archiv) | Eine zum Einbinden bestimmte Sammlung übersetzter Einheiten. |
| shared object | das Shared Object (dynamische Bibliothek) | Eine zur Laufzeit nachladbare Bibliothek. |
| debug information (DWARF) | die Debug-Informationen (DWARF) | Daten, die Debugger Quelltext, Typen und Variablen zuordnen lassen. |
| assembler / linker | der Assembler / der Linker (Binder) | Die GNU-Werkzeuge, die Mica zum Erzeugen der Binärdatei nutzt. |
5 · Plattform und Interoperabilität
| Englisch (Mica) | Deutsch | Erläuterung |
|---|---|---|
| contract | der Vertrag (Bibliotheksvertrag) | Eine JSON-Beschreibung einer C-Bibliothek für geprüfte Aufrufe. |
| interoperability | die Interoperabilität | Das reibungslose Zusammenspiel von Mica- und C-Code. |
| foreign function interface (FFI) | die Fremdfunktionsschnittstelle (FFI) | Der Zugriff auf Funktionen anderer Sprachen — in Mica über Verträge. |
| standard library | die Standardbibliothek | Die mitgelieferte Laufzeit- und I/O-Grundausstattung. |
| format string | die Formatzeichenkette | Die Vorlage für Ein-/Ausgabe; zur Übersetzungszeit geprüft. |
| type fingerprint | der Typ-Fingerabdruck | Ein Prüfwert, der Typabweichungen zwischen Einheiten erkennt. |
| cross-compilation | die Cross-Kompilierung | Das Übersetzen für eine andere Zielarchitektur als die des Wirts. |
| target | das Ziel (Zielplattform / -architektur) | Betriebssystem und Befehlssatz, für die übersetzt wird. |
| encoding | die Kodierung | Die Zeichenkodierung des Ziels (UTF-32 oder UTF-8). |
6 · Werkzeuge und Qualität
| Englisch (Mica) | Deutsch | Erläuterung |
|---|---|---|
| test harness | der Testrahmen (Test-Framework) | Das Werkzeug, das alle Testfälle übersetzt, ausführt und prüft. |
| test case | der Testfall | Ein einzelner, durch ein Manifest beschriebener Prüffall. |
| manifest | das Manifest | Die Beschreibung eines Testfalls (Quellen, erwartete Ausgabe). |
| regression test | der Regressionstest | Ein Test, der ein einmal erreichtes Verhalten dauerhaft absichert. |
| quality gate | die Qualitätsschranke (Quality Gate) | Interne Prüfung, die die eigenen Transformationen des Compilers kontrolliert. |
| stress test | der Belastungstest (Stresstest) | Ein Test mit besonders großen Eingaben. |
| benchmark | der Benchmark (Vergleichsmessung) | Eine Messung zur Leistungseinordnung. |
| retired instructions | abgeschlossene Befehle (retired instructions) | Tatsächlich ausgeführte Maschinenbefehle — das deterministische Leistungsmaß. |
| wall-clock time | die reale Laufzeit (Wall-Clock-Zeit) | Die verstrichene Echtzeit einer Ausführung. |
Siehe auch: die englische Ausgabe und die vereinfacht-chinesische Ausgabe dieses Glossars sowie das technische Porträt von Mica (englisch).