Fehlerfreiheit und Informationssicherheit sind Themen, die oft
erst im Anschluss an die Implementierung einer Anwendung betrachtet
werden. Das fällt insbesondere auch unter Betrachtung der Geschichte
der System-Programmierung mit Programmiersprachen wie C oder C++
auf. Sind Standards für sicherheitskritische Systeme in Kraft,
so sind eine hohe Testabdeckung und die Anwendung statischer
Codeanalyse empfohlen oder vorgeschrieben.
Die Ursachen für solche Empfehlungen und Vorgaben finden sich
auch in den Programmiersprachen selbst: C und C++ erlauben etwa
den Einsatz ihrer Konstrukte so, dass sie zu einem gemäß
C/C++-Standard
undefinierten Verhalten führen können. Der Umgang mit
undefiniertem Verhalten ist den Implementierungen der Standards
freigestellt. In vielen Fällen wird nicht geeignet oder sogar
garnicht reagiert, was Fehlern und Sicherheitslücken freie
Bahn lässt.
Sinnvoll sei die Vermeidung undefinierten Verhaltens schon im voraus,
in der Entwurfsphase einer System-Programmiersprache. Die Programmiersprache
Rust wird
seit 2010 mit diesem Anspruch vorangetrieben. Zur Berücksichtigung
der Themen Sicherheit, Geschwindigkeit und Nebenläufigkeit
sowie der Bewahrung der Benutzerfreundlichkeit, implementiert Rust
verschiedene Konzepte.
Der Software Engineer Jens Siebert betrachtet die Konzepte der
Programmiersprache Rust im Beitrag auf heise.de näher. Er hebt
die durch das automatisierte Speichermanagement durch den Compiler
eingebrachten Vorteile besonders hervor. Durch das Design der Sprache
sowie den Compiler sei eine ganze Klasse von Fehlern bereits bei
der Übersetzung abzufangen. Zugleich biete es die gleiche Flexibilität
und Performance, wie die bisher verwendeten Sprachen.
(jb, hannover)
(siehe auch: Heise-News-Ticker)
Hannover · EDV-Beratung ·
Linux · Novell · Microsoft · Seminar ·
IT-Consult · Netzwerk · LPIC · CLE
|