<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Abstrakte_Interpretation</id>
	<title>Abstrakte Interpretation - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Abstrakte_Interpretation"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Abstrakte_Interpretation&amp;action=history"/>
	<updated>2026-06-03T04:31:12Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Abstrakte_Interpretation&amp;diff=174711&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Beispiel */ Tippfehler entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Abstrakte_Interpretation&amp;diff=174711&amp;oldid=prev"/>
		<updated>2025-10-24T10:39:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiel: &lt;/span&gt; &lt;a href=&quot;/index.php?title=Benutzer:Aka/Tippfehler_entfernt&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Aka/Tippfehler entfernt (Seite nicht vorhanden)&quot;&gt;Tippfehler entfernt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;abstrakte Interpretation&amp;#039;&amp;#039;&amp;#039; ist eine Methode aus dem Bereich der [[Programmanalyse]].&lt;br /&gt;
&lt;br /&gt;
Ziel der abstrakten Interpretation ist es, Informationen über das Verhalten von Programmen (Analyse der [[Formale Semantik|Semantik]]) zu bekommen, indem man von Teilen des Programms abstrahiert und die Anweisungen Schritt für Schritt nachvollzieht ([[Interpretation]]).&lt;br /&gt;
&lt;br /&gt;
Bei der abstrakten Interpretation konzentriert man sich auf Teilaspekte der Ausführung der Anweisungen, man lässt einiges an Information geschickt weg ([[Abstraktion]]), erhält letztlich eine Näherung an die Programmsemantik, die aber für den gewünschten Zweck vollkommen ausreichen kann.&lt;br /&gt;
&lt;br /&gt;
Viele Eigenschaften von Programmen sind nicht [[Berechenbarkeit|berechenbar]], d.&amp;amp;nbsp;h., man kann kein Programm angeben, welches sie in endlicher Zeit mit endlichen Speicherressourcen für beliebige Programme berechnet. Durch eine [[Approximation]], also das Weglassen von einigen Informationen, kann man zwar Fragen nach bestimmten Eigenschaften gar nicht mehr klären, dafür werden aber andere Eigenschaften in der vergröberten Sicht erst berechenbar.&lt;br /&gt;
&lt;br /&gt;
Das Verfahren stammt von [[Radhia Cousot]] und [[Patrick Cousot]].&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Ein [[Compiler]] möchte analysieren, was für einen Rückgabetyp eine bestimmte Funktion hat.&lt;br /&gt;
Dazu reicht schon ein vergrößertes Nachvollziehen (sprich: abstrakte Interpretation) der&lt;br /&gt;
Berechnungen.&lt;br /&gt;
&lt;br /&gt;
     function f()&lt;br /&gt;
         x = 4 + 5&lt;br /&gt;
         y = x * 3.14&lt;br /&gt;
         return y&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel kann die Anweisung&lt;br /&gt;
&lt;br /&gt;
    x = 4 + 5&lt;br /&gt;
&lt;br /&gt;
als Berechnung&lt;br /&gt;
&lt;br /&gt;
    int + int&lt;br /&gt;
&lt;br /&gt;
mit Ergebnistyp „int“ für die Variable x betrachtet werden. Es reicht die Information, dass 4 und 5 jeweils ganze Zahlen (also hier vom Typ „int“) sind, ihr genauer Wert ist hingegen für die Typbestimmung nicht interessant, kann also weggelassen werden.&lt;br /&gt;
&lt;br /&gt;
Weiter geht es mit&lt;br /&gt;
&lt;br /&gt;
    y = x * 3.14&lt;br /&gt;
&lt;br /&gt;
welches als&lt;br /&gt;
&lt;br /&gt;
   int * real&lt;br /&gt;
&lt;br /&gt;
mit Ergebniswert „real“ aufgefasst würde.&lt;br /&gt;
&lt;br /&gt;
Vollzieht man alle Anweisungen der Funktion in dieser vergröberten Sicht nach, so ist am Schluss klar, welchen Typ der Rückgabewert hat.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Flemming Nielson, Hanne R. Nielson, Chris Hankin: [http://www.imm.dtu.dk/~riis/PPA/ppa.html &amp;#039;&amp;#039;Principles of Program Analysis.&amp;#039;&amp;#039;]&lt;br /&gt;
* Patrick Cousot, Radhia Cousot: &amp;#039;&amp;#039;Static Verification of Dynamic Properties of Variables&amp;#039;&amp;#039;. Technischer Bericht der &amp;#039;&amp;#039;Universite Scientifique et Medicale Grenoble.&amp;#039;&amp;#039; November 1975.&lt;br /&gt;
* Patrick Cousot, Radhia Cousot: &amp;#039;&amp;#039;Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Conference Record of the Sixth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Los Angeles, California 1977.&amp;#039;&amp;#039; ACM Press, New York, S. 238–252. [http://www.di.ens.fr/~cousot/COUSOTpapers/POPL77.shtml (online)]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.di.ens.fr/~cousot/Equipeabsint-eg.shtml Webseite von Patrick Cousot]&lt;br /&gt;
* [http://www.di.ens.fr/~cousot/AI/IntroAbsInt.html Abstract Interpretation in a Nutshell]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Software&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [http://www.astree.ens.fr/ ASTRÉE]&lt;br /&gt;
* [http://www.mathworks.com/products/polyspace/ PolySpace] von [[The MathWorks]]&lt;br /&gt;
* [https://frama-c.com/fc-plugins/eva.html Frama-C]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>