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
AN - SCOPUS:84869785632
SN - 9781450315630
T3 - SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications: Software for Humanity
SP - 15
EP - 16
BT - SPLASH'12 - Proceedings of the 2012 ACM Conference on Systems, Programming, and Applications
T2 - 2012 3rd ACM Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH 2012
Y2 - 19 October 2012 through 26 October 2012
ER -