Abstrakt. Abstract tolkning är en teori om semantik approximation som används för konstruktion av semantik-baserade programanalysalgoritmer (som ibland kallas "dataflödesanalys"), jämförelse av formella semantik (t.ex., konstruktion av en denomineringssemantik från en operationell), utformning av bevismetoder, etc. Automatiska programanalysatorer används för att bestämma statiskt konservativa approximationer av programmens cynamiska egenskaper. Sådana egenskaper hos programs kör-tid beteende är användbara för felsökning ging (t.ex., typ inference), kodoptimering (t.ex. kompilering-tid sophämtning, värdelös förekomst-kontroll eliminering), programomvandling (t.ex. partiell utvärdering, parallellisering), och även program cor rectness bevis (t.ex., avslutande bevis). Efter några enkla inledande exempel minns vi den klassiska ramen för abstrakt tolkning av program. Med utgångspunkt från en standard operationell semantik formaliserad som ett övergångssystem är klasser av programegenskaper först inkapslade i insamling semantik uttryckt som fixpoints på partiella order som representerar betongprogramegenskaper. Vi anser att variance egenskaper som kännetecknar de nedstigande tillstånden i de ursprungliga tillstånden (motsvarande top / ner eller framåt analyser), de uppstigna tillstånden i de slutliga tillstånden (motsvarande nedifrån / upp eller bakåt analyser) samt en kombination av de två. Sedan väljer vi specifika approximativa abstrakta egenskaper som ska samlas om programbeteenden och uttrycka dem som element i en poset av abstrakta egenskaper. Korrespondensen mellan konkreta och abstrakta egenskaper etableras genom en konkretiserings- och abstraktionsfunktion som är en Galois-förbindelse som formaliserar informationsförlusten. Vi kan sedan konstruktivt härleda de abstrakta programegenskaperna från insamlingen av semantik genom en formell beräkning som leder till ett fixpoint-uttryck i termer av abstrakta operatörer på området abstrakta egenskaper. Utformningen av den abstrakta tolken innebär då valet av en kaotisk iterationsstrategi för att lösa denna abstrakta fixpunktsekvation. Vi insisterar på kompositionsdesignen av denna abstrakta tolk, som formaliseras av en rad förslag för att utforma Galois anslutningar (såsom Moore familjer, nedbrytning genom partitionering, reducerad produkt, down-set slutförande, etc.). Sedan erinrar vi oss konvergensaccelerationen med hjälp av utvidgning och begränsning som möjliggör användning av mycket uttrycksfulla oändliga domäner av abstrakta egenskaper. Vi visar att denna klassiska formella ram kan tillämpas i vidare bemärkelse på logiska program. För enkelhetens skull använder vi en variant av SLD-upplösning som standard semantik. Det första exemplet är grundanalys, som är en variant av Mellish mode analys. Det utvidgas till en kombination av top/down- och bottom/up-analyser. Det andra exemplet är härledningen av begränsningar bland argumentstorlekar, som omfattar en oändlig abstrakt domän som kräver användning av konvergensaccelerationsmetoder. Till slut får vi en kort tematisk guide till litteraturen om abstrakt tolkning av logiska program.
De föreslår också att använda den för analys av logiska program REF.
R.: Abstract interpretation and application to logic programs
{'venue': 'Journal of Logic Programming', 'journal': None, 'mag_field_of_study': ['Computer Science']}