A semantic integrated development environment

Francesco Logozzo, Michael Barnett, Manuel Fandrich, Patrick Cousot, Radhia Cousot

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

We present SIDE, a Semantic Integrated Development Environment. SIDE uses static analysis to enrich existing IDE features and also adds new features. It augments the way existing compilers find syntactic errors -in real time, as the programmer is writing code without execution -by also finding semantic errors, e.g., arithmetic expressions that may overflow. If it finds an error, it suggests a repair in the form of code-e.g., providing an equivalent yet non-overflowing expression. Repairs are correct by construction. SIDE also enhances code refactoring (by suggesting precise yet general contracts), code review (by answering what-if questions), and code searching (by answering questions like "find all the callers where x < y"). SIDE is built on the top of CodeContracts and the Roslyn CTP. CodeContracts provide a lightweight and programmerfriendly specification language. SIDE uses the abstract interpretation-based CodeContracts static checker (cccheck/Clousot) to obtain a deep semantic understanding of what the program does.

Original languageEnglish (US)
Title of host publicationSPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications
Subtitle of host publicationSoftware for Humanity
Pages15-16
Number of pages2
DOIs
StatePublished - 2012
Event2012 3rd ACM Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH 2012 - Tucson, AZ, United States
Duration: Oct 19 2012Oct 26 2012

Publication series

NameSPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity

Other

Other2012 3rd ACM Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH 2012
Country/TerritoryUnited States
CityTucson, AZ
Period10/19/1210/26/12

Keywords

  • Abstract interpretation
  • Design by contract
  • Integrated Development Enviroment
  • Method extraction
  • Program Repair
  • Program transformation
  • Refactoring
  • Static analysis

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'A semantic integrated development environment'. Together they form a unique fingerprint.

Cite this