In informatica, l'interpretazione astratta è una teoria di approssimazione valida della semantica dei programmi, basata su funzioni monotone su insiemi ordinati, in particolare reticoli. Può essere vista come una esecuzione parziale di un programma al fine di raccogliere informazioni sulla sua semantica (per esempio control-flow, data-flow) senza eseguire tutti i calcoli.

La sua applicazione concreta è l'analisi statica, l'estrazione di informazione automatica circa le possibili esecuzioni di programmi; tali analisi hanno due scopi principali:

  • all'interno di compilatori, per analizzare programmi al fine di eseguire determinate ottimizzazioni o trasformazioni (per esempio offuscamenti);
  • nel debugging o per la certificazione di programmi contro classi di bug.

L'interpretazione astratta fu formalizzata dalla coppia francese Patrick Cousot e Radhia Cousot alla fine del 1970.[1][2]

Note

modifica
  1. ^ Patrick Cousot, Radhia Cousot: "Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints". Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977. ACM, 1977, pp. 238-252
  2. ^ Patrick Cousot, Radhia Cousot: "Systematic Design of Program Analysis Frameworks". Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, San Antonio, Texas, USA, January 1979. ACM Press, 1979, pp. 269-282

📚 Artikel Terkait di Wikipedia

Jacob Lew

Comitato Nazionale Democratico dell'88, e vice direttore dell'Office of Program Analysis nell'Office of Management and Budget della città di Boston. Dal febbraio

Ragionamento continuo

Erhard e Ralf Vogler, From Lambda Calculus to Cybersecurity Through Program Analysis, vol. 12065, Springer International Publishing, 2020, pp. 132-148,

Modello Roofline

Straalen, Roofline Model Toolkit: A Practical Tool for Architectural and Program Analysis, in High Performance Computing Systems. Performance Modeling, Benchmarking

LLVM

Project, su llvm.org. (EN) LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation (PDF), su llvm.org. — un documento pubblicato da Chris

Profilazione (programmazione)

effettuare modifiche mirate. (inglese) «Program analysis tools are extremely important for understanding program behavior. Computer architects need such

Martian Moons Exploration

moons of Mars with sample return from Phobos (PDF), Mars Exploration Program Analysis Group (MEPAG) Meeting #31, March 2-3, 2016, Silver Spring, MD., marzo

Norovirus

1016/S1473-3099(14)70767-4, PMID 24981041. ^ (EN) CDC VSP, Vessel Sanitation Program - Outbreak Updates for International Cruise Ships, su cdc.gov, Centers

2001 Mars Odyssey

Objectives, Investigations, and Priorities: 2008 - Mars Exploration Program Analysis Group (MEPAG) - September 15, 2008 - Prepared by the MEPAG Goals Committee: