Ich versuche, einige Begriffe einer Differenzrechnung zwischen einer von einem Entwickler konzipierten fiktiven Ideal Turing-Maschine (z. B. was auch immer von einem Softwareentwickler beabsichtigt ist), und den Maschinen zu entwickeln, die die Software darstellen, die tatsächlich entworfen wird, und implementiert, sagen wir M α bzw. M β .
Insbesondere ist es mein Interesse, Einschränkungen (zum Beispiel aufgrund des Satzes von Rice) bei der automatisierten Erkennung von Fehlern in Softwareprogrammen zwischen der von der idealen Maschine verarbeiteten Sprache und der von den entwickelten / implementierten Maschinen verarbeiteten Sprache zu untersuchen.
Jegliche Bezugnahme auf frühere Arbeiten, die mit einigen Vorstellungen von der Untersuchung von Unterschieden zwischen zwei spezifizierten Turing-Maschinen arbeiten, oder der Hinweis, dass eine niedrigere formale Sprache äußerst hilfreich und geschätzt wäre; weil ich lieber zitieren als schreiben möchte :-).
quelle
Antworten:
Wie sich herausstellt, gibt es einige faszinierende Arbeiten in dieser Richtung.
Insbesondere im Jahr 2003 haben Michael Howard, Jon Pincus und Jeannette M. Wing im Rahmen eines Workshops über fortgeschrittene Entwicklungen in der Software- und Systemsicherheit, Taipeh, Dezember 2003, Relative Attack Surfaces gemessen.
Weitere Arbeiten der gleichen Autoren im Laufe der Jahre sind sehr interessant ... Für alle, die meine Frage von Interesse fanden, können Sie ihre Arbeit unter http://www.cs.cmu.edu/~pratyus/as.html nachlesen. Und wenn Sie sie interessant finden, hoffe ich, dass Sie meine Arbeit auch interessant finden :)
quelle
Ich denke, dass die Überprüfung von Softwaremodellen im Sinne von Alloy wahrscheinlich mit dem zusammenhängt, wonach Sie suchen. Sie schreiben ein Modell und eine Spezifikation, die das Modell erfüllen soll, und prüfen, ob sie in angemessener Beziehung zueinander stehen.
quelle