1.6 KiB
MODIFIED Requirements
Requirement: Jedes dokumentierte Element besitzt eine Signatur
Die Semantik SHALL für jedes im Sprachinventar geführte Element eine
Signatur besitzen (Argumentanzahl und -typen) — auch für Elemente, deren
Laufzeitverhalten noch aussteht. Ein im Inventar geführtes Element MUST
NOT als unbekannter Bezeichner oder mit einem generischen Syntaxfehler
abgewiesen werden; die Diagnose bzw. der Laufzeitfehler MUST es
namentlich nennen (Guiding Principle). Das gilt insbesondere für die
Gruppen, die bisher gar keine Signatur haben: die finanzmathematischen
Funktionen, die Record-Konvertierungsfunktionen (MK…$/CV…), die
Dateisystem-Funktionen CURDIR$, DIR$, CHDRIVE, sowie LPOS,
STACK, SYSTEM, ERDEV/ERDEV$ und SetFormatCC.
Die TerminalBasic-Erweiterung TIMEZONEKNOWN SHALL als parameterlose INTEGER-Funktion eine Signatur besitzen und im Inventar mit ihrer tatsächlichen Umsetzung geführt sein.
Scenario: Element ohne Laufzeitverhalten wird namentlich abgewiesen
- WHEN ein Modul eine im Inventar als
offengeführte Funktion verwendet - THEN nennt die Ablehnung deren Namen und nicht „unbekannter Bezeichner"
Scenario: Argumentprüfung ohne Laufzeitverhalten
- WHEN ein Modul
MKL$()ohne Argument enthält - THEN meldet die Semantik eine Argumentanzahl-Diagnose, die
MKL$nennt
Scenario: Signatur der Zonenzustandsabfrage
- WHEN PRINT TIMEZONEKNOWN übersetzt wird
- THEN entsteht eine INTEGER-Funktionsabfrage; TIMEZONEKNOWN(1) wird mit benannter Argumentanzahl-Diagnose abgewiesen