KR and program analysis

This page is about interactions between knowledge representation (and AI methods generally) and computer program analysis.

Literature

General

  • Cornelissen et al, 2009: A systematic survey of program understanding through dynamic analysis (doi, pdf)

“Knowledge-based” program understanding

Program analysis combined with 80s-style expert systems.

  • Johnson & Soloway, 1985: PROUST: Knowledge-based program understanding (doi)
  • Harandi & Ning, 1990: Knowledge-based program analysis (doi)
  • Baader et al, 2007: The Description Logic Handbook, Ch. 11: Software engineering
    • Sec. 11.3: Devanbu, Brachman, et al: 1991: LaSSIE: a knowledge-based software information system (doi)

Concept location, aka concept assignment or feature location

Locating source code that instantiates a more abstract concept (“semantic grep”)

  • Biggerstaff et al, 1994: Program understanding and the concept assignment problem (doi, pdf)
    • Biggerstaff et al, 1993: The concept assignment problem in program understanding (doi, pdf)
    • Biggerstaff, 1989: Design recovery for maintenance and reuse (doi)
  • Marcus et al, 2004: An information retrieval approach to concept location (doi, pdf)
    • Latent semantic indexing (LSI) maps natural language onto source code
    • Useful “related work” section, starting with (Biggerstaff et al, 1994)
  • Dit et al, 2011: Feature location in source code: a taxonomy and survey (doi)