Kurze Implementierungsbeispiele für abstrakte Interpretation

8

Ich mache einen Kurs über abstrakte Interpretation, aber ich habe keine Beispiele gesehen, wie die Theorie auf den tatsächlichen Code abbildet.

Ich suche nach kurzen Codebeispielen, wo ich vorzugsweise nicht mit einem ganzen Compiler arbeiten muss. Die Analyse muss nicht nützlich sein, ich möchte nur ein Beispiel sehen, in dem die Analyse abgeleitet und dann implementiert wird.

Kennt jemand solche Beispiele, vielleicht aus einem Universitätskurs?

    
Jørgen Fogh 28.05.2010, 11:24
quelle

4 Antworten

1

Es gibt MonoREIL, das mit dem kürzlich geöffneten Tool BinNavi geliefert wird.

Siehe hier ist ein kurzes Intro.

Beachten Sie, dass der Kontext des MonoREIL-Frameworks keine Compiler, sondern die Analyse von Binärcode ist. Es wurde jedoch für Anwendungen in der realen Welt verwendet, siehe Folie 34 ff. Von dieser Einführung (die mehr enthält formaler Hintergrund).

    
stackoverflowwww 29.02.2016, 09:23
quelle
5

AI basiert auf einer mathematischen Theorie namens Galois Verbindung. Die Theorie ist sehr einfach:

  1. Abstrakt das Verhalten des Programms.
  2. Führen Sie die Analyse auf der abstrakten Ebene durch.

Galois connection : Um das Programm Actual und Abstract zu verknüpfen.

Dies ist das beste Tutorial, das ich bisher über Abstract gesehen habe Interpretation:

    
MARYAM 28.08.2012 19:34
quelle
3

Vielleicht ist dieses Tool auch für Sie interessant: Interproc Analyzer

Es ist ein abstrakter Analysator für eine sehr einfache Sprache, die jedoch bietet interprozedurale Analysen. Sie können die Analyse ausprobieren und numerische Invarianten über das analysierte Programm erhalten. Der Quellcode ist verfügbar (OCaml).

Ein wirklich gründlicher und präziser Kurs, gegeben von einem der "Schöpfer" der abstrakten Interpretation, Patrick Cousot (bereits in einer der Antworten erwähnt): MIT-Kurs über abstrakte Interpretation . Der Kurs bietet auch Aufgaben in OCaml.

    
Pachelbel 23.01.2016 22:33
quelle
2

Es gibt dieses Papier von Bertot

Strukturelle abstrakte Interpretation, Eine formelle Studie mit Coq

Dies ermöglicht eine vollständige Implementierung eines abstrakten Interpreters für eine einfache Spielzeugsprache mit dem Coq Proof Assistant. Ich benutzte dies für eine konkrete Referenz und fand es nützlich, wenn auch etwas schwierig, was angesichts der Thematik zu erwarten ist. Coq ist ein großartiges kleines Stück Software.

Ich bin auch in einem Cousot-Papier begegnet:

Eine sanfte Einführung in die formale Verifikation von Computersystemen durch abstrakte Interpretation

grobe Details (aber ich bin mir sicher, dass es nützliche Zitierungen für alle Details geben wird) von einer Implementierung in Astrée, ich bin nicht vertraut mit Astrée, also habe ich diesen Abschnitt nicht gelesen, aber ich denke, dass er Ihren Kriterien entspricht.

Wenn Sie nicht mehr herkommen, lassen Sie es mich wissen! Ich würde besonders gerne einen abstrakten Prolog-Interpreter sehen.

    
Tom 25.08.2011 17:03
quelle

Tags und Links