Vorschlag: Wesentliche Effekte für C

2025-01-20

Dieser Vorschlag schlägt vor, das Kerntypssystem von C um ein Typ- und Effektsystem zu erweitern, das Funktionen und Blöcke zwingt, die Effekte ihrer Auswertung zu deklarieren. Dies verbessert die Komposition in der Metaprogrammierung und vereinfacht die Definition von MISRA-artigen Einschränkungen. Das System verfolgt und überprüft Effekte, behandelt aber keine dynamische Effektabwicklung. Es werden drei Hauptgruppen von Effekten vorgeschlagen: Lokal (z. B. lokale Schreibzugriffe), Persistent (z. B. nicht-lokale Schreibzugriffe) und Steuerung (z. B. nicht-lokale Steuerungstransfers). Die statische Effektkontrolle wird erreicht, indem jedem Statement, Ausdruck und Funktionskörper ein Typ und ein Effekt zugewiesen werden, wobei lokale Effekte verworfen werden, um eine korrekte Reihenfolge zu gewährleisten. Es werden bewährte Verfahren vorgeschlagen, wie die Begrenzung der Magnitude von `mut`- und `vol`-Effekten und die Angabe von Effektkontrollen für Operatoren und Kontrollstrukturen. Das Ziel ist es, die Sicherheit, Lesbarkeit und Komposition von C zu verbessern, insbesondere für Metaprogrammierung und Ressourcenverwaltung.

Mehr lesen
Entwicklung