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: Software 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

Other

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

Fingerprint

Semantics
Repair
Specification languages
Static analysis
Syntactics

Keywords

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

ASJC Scopus subject areas

  • Software

Cite this

Logozzo, F., Barnett, M., Fandrich, M., Cousot, P., & Cousot, R. (2012). A semantic integrated development environment. In SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity (pp. 15-16) https://doi.org/10.1145/2384716.2384724

A semantic integrated development environment. / Logozzo, Francesco; Barnett, Michael; Fandrich, Manuel; Cousot, Patrick; Cousot, Radhia.

SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity. 2012. p. 15-16.

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

Logozzo, F, Barnett, M, Fandrich, M, Cousot, P & Cousot, R 2012, A semantic integrated development environment. in SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity. pp. 15-16, 2012 3rd ACM Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH 2012, Tucson, AZ, United States, 10/19/12. https://doi.org/10.1145/2384716.2384724
Logozzo F, Barnett M, Fandrich M, Cousot P, Cousot R. A semantic integrated development environment. In SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity. 2012. p. 15-16 https://doi.org/10.1145/2384716.2384724
Logozzo, Francesco ; Barnett, Michael ; Fandrich, Manuel ; Cousot, Patrick ; Cousot, Radhia. / A semantic integrated development environment. SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity. 2012. pp. 15-16
@inproceedings{ff50cb3a55ce4d05839ce0a97c681459,
title = "A semantic integrated development environment",
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.",
keywords = "Abstract interpretation, Design by contract, Integrated Development Enviroment, Method extraction, Program Repair, Program transformation, Refactoring, Static analysis",
author = "Francesco Logozzo and Michael Barnett and Manuel Fandrich and Patrick Cousot and Radhia Cousot",
year = "2012",
doi = "10.1145/2384716.2384724",
language = "English (US)",
isbn = "9781450315630",
pages = "15--16",
booktitle = "SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity",

}

TY - GEN

T1 - A semantic integrated development environment

AU - Logozzo, Francesco

AU - Barnett, Michael

AU - Fandrich, Manuel

AU - Cousot, Patrick

AU - Cousot, Radhia

PY - 2012

Y1 - 2012

N2 - 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.

AB - 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.

KW - Abstract interpretation

KW - Design by contract

KW - Integrated Development Enviroment

KW - Method extraction

KW - Program Repair

KW - Program transformation

KW - Refactoring

KW - Static analysis

UR - http://www.scopus.com/inward/record.url?scp=84869785632&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84869785632&partnerID=8YFLogxK

U2 - 10.1145/2384716.2384724

DO - 10.1145/2384716.2384724

M3 - Conference contribution

SN - 9781450315630

SP - 15

EP - 16

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

ER -