← Neueste Arbeiten
💻 computer science

MISRust: Mapping MISRA-C++ Coding Guidelines to the Rust Programming Language

Dieses Papier bildet die 179 MISRA C++ 2023-Richtlinien systematisch auf die Programmiersprache Rust ab, kategorisiert sie nach Anwendbarkeit, um zu demonstrieren, wie das Design von Rust nahezu die Hälfte der Regeln automatisch erzwingt, während es spezifische Anpassungen bereitstellt und Lücken für die verbleibenden Richtlinien identifiziert, um die Entwicklung sicherheitskritischer Systeme zu unterstützen.

Ursprüngliche Autoren: Marius Molz, Niels Schneider, Sven Lechner, Stefan Kowalewski, Alexandru Kampmann

Veröffentlicht 2026-05-25
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Marius Molz, Niels Schneider, Sven Lechner, Stefan Kowalewski, Alexandru Kampmann

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie bauen eine Maschine mit hohem Risiko, wie ein autonom fahrendes Auto oder ein medizinisches Gerät. Es darf nicht sein, dass sich auch nur eine Schraube löst oder ein Kabel einen Kurzschluss verursacht. Seit Jahrzehnten folgen Ingenieure, die diese Maschinen mit der Programmiersprache C++ bauen, einem massiven, strengen Regelwerk namens MISRA. Denken Sie an MISRA als ein 179-seitiges „Sicherheitsmanual", das Dinge sagt wie: „Machen Sie dies niemals", „Tun Sie das immer" und „Wenn Sie diesen spezifischen Teil berühren, müssen Sie einen Helm tragen."

Nun ist eine neue, sicherere Sprache namens Rust auf den Plan getreten. Rust ist wie ein hochmoderner Baukasten, der viele häufige Fehler (wie das Fallenlassen einer Schraube oder das Verkreuzen von Drähten) allein durch seine Konstruktion automatisch verhindert. Da Rust von Grund auf so sicher ist, beginnen Ingenieure, es für eben jene Maschinen mit hohem Risiko einzusetzen.

Das Problem:
Das alte Sicherheitsmanual (MISRA) wurde für C++ geschrieben. Es enthält Regeln über Dinge, die es in Rust gar nicht gibt, und es vermisst Aspekte, die Rust anders handhabt. Wenn Sie versuchen, das alte Manual für den neuen Baukasten zu verwenden, landen Sie bei vielen verwirrenden, unnötigen Regeln.

Die Lösung (Die Mission des Papiers):
Die Autoren dieses Papiers agierten wie Übersetzer und Sicherheitsinspektoren. Sie nahmen jede einzelne der 179 Regeln aus dem alten C++-Manual und fragten: „Macht diese Regel noch Sinn für Rust?"

Sie entwickelten ein neues System, um diese Regeln in sechs verschiedene Kategorien einzuteilen:

  1. Der „Mülleimer" (Nicht anwendbar): Dies sind Regeln über Dinge, die in Rust schlichtweg nicht existieren.
    • Analogie: Stellen Sie sich eine Regel vor, die sagt: „Verwenden Sie keine von Pferden gezogenen Kutschen." Wenn Sie ein Tesla fahren, ist diese Regel nutzlos. Sie haben kein Pferd, also müssen Sie sich keine Sorgen darum machen. Etwa 32 % der alten Regeln fielen in diese Kategorie.
  2. Der „Magie"-Korb (Bereits erfüllt): Dies sind Regeln, die Rust automatisch durchsetzt.
    • Analogie: Stellen Sie sich eine Regel vor, die sagt: „Lassen Sie das Auto nicht von einer Klippe fahren." In Rust kann das Auto buchstäblich nicht von einer Klippe fahren, weil das Lenkrad erst dann entsperrt wird, wenn Sie die Karte geprüft haben. Die Regel ist immer noch wahr, aber Sie müssen sie nicht niederschreiben, da das Design des Autos es unmöglich macht, sie zu brechen. Etwa 30 % der Regeln fielen hierher.
  3. Der „Noch notwendig"-Korb (Erforderlich in Safe Rust): Dies sind Regeln über allgemeinen gesunden Menschenverstand, die Rust nicht automatisch behebt.
    • Analogie: Selbst mit einem perfekten Auto benötigen Sie immer noch eine Regel, die sagt: „Fahren Sie nicht im Schlaf." Rust verhindert mechanische Ausfälle, kann aber einen schläfrigen Fahrer nicht daran hindern, eine schlechte Entscheidung zu treffen. Etwa 12 % der Regeln sind auch bei Verwendung der „sicheren" Version von Rust noch notwendig.
  4. Der „Gefahrenzone"-Korb (Erforderlich in Unsafe Rust): Rust hat einen speziellen Modus „Glas einschlagen im Notfall", der Unsafe genannt wird. Dieser ermöglicht es Ihnen, die Sicherheitsverriegelungen zu umgehen, um leistungsstarke, niedrigere Operationen durchzuführen.
    • Analogie: Wenn Sie entscheiden, die Sicherheitsverriegelungen am Auto zu entfernen, um zu rasen, benötigen Sie plötzlich alle diese alten Sicherheitsregeln wieder. Das Papier fand heraus, dass 36 Regeln, die normalerweise automatisch von der Rust-Sicherheit behandelt wurden, plötzlich wieder kritisch werden, wenn Sie diesen „Unsafe"-Modus verwenden.
  5. Der „Übersetzung"-Korb (Benötigt Anpassung): Einige Regeln betreffen Konzepte, die in beiden Sprachen existieren, aber unterschiedlich funktionieren.
    • Analogie: Eine Regel könnte sagen: „Verwenden Sie keinen Schraubenzieher, um einen Nagel zu hämmern." In Rust verwenden Sie überhaupt keine Schraubenzieher; Sie verwenden ein spezialisiertes Werkzeug. Die Absicht (verwenden Sie nicht das falsche Werkzeug) ist dieselbe, aber die spezifische Anweisung muss neu formuliert werden, um zu Rusts Werkzeugen zu passen. Etwa 6 % der Regeln benötigten diese Art von Übersetzung.
  6. Der „Fehlende"-Korb: Das Papier stellt fest, dass es einige Sicherheitslücken gibt, für die Rust neue Regeln benötigt, die es im alten Manual noch nicht gibt.

Die wichtigsten Erkenntnisse:

  • Rust ist ein Game Changer: Da Rust so sicher aufgebaut ist, sind fast 61 % der alten C++-Sicherheitsregeln entweder unnötig oder werden automatisch von der Sprache selbst gehandhabt. Das bedeutet, dass ein zukünftiges Sicherheitsmanual für Rust viel kürzer und leichter zu befolgen sein könnte.
  • Der „Unsafe"-Haken: Wenn Sie den „Safe"-Modus von Rust verwenden, sind Sie sehr gut geschützt. Aber wenn Sie den „Unsafe"-Modus verwenden (was für hochleistungsfähige Aufgaben manchmal notwendig ist), verlieren Sie diese automatischen Schutzmechanismen. Das Papier hebt hervor, dass die Sicherheitszertifizierung für Rust sich stark darauf konzentrieren muss, wie diese „Unsafe"-Abschnitte verwaltet werden.
  • Es ist noch nicht abgeschlossen: Obwohl Rust großartig ist, stellt das Papier fest, dass die Tools und Industriestandards noch nicht vollständig ausgereift sind. Es ist wie der Besitz eines fantastischen neuen Autos, bei dem die Verkehrsregeln und Versicherungsgesellschaften noch nicht vollständig damit Schritt gehalten haben. Vorläufig wird Rust wahrscheinlich neben C++ eingesetzt (wie das Hinzufügen eines neuen, sichereren Motors zu einem alten Auto), anstatt es sofort vollständig zu ersetzen.

Zusammenfassung:
Die Autoren sagten nicht einfach nur „Rust ist gut". Sie leisteten die harte Arbeit, die alten Sicherheitsregeln auf die neue Sprache abzubilden, und bewiesen, dass das Design von Rust einen großen Teil des alten Regelbuchs eliminiert, während es klar identifiziert, welche spezifischen Regeln immer noch wichtig sind und wo neue Regeln geschrieben werden müssen. Sie machten alle ihre Erkenntnisse öffentlich, damit Ingenieure noch heute beginnen können, sicherere Systeme mit Rust zu bauen.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →