Domain-Specific Program Checking

Renggli, Lukas; Ducasse, Stéphane; Girba, Tudor; Nierstrasz, Oscar (2010). Domain-Specific Program Checking. In: , (ed.) Objects, Models, Components, Patterns. 48th International Conference, TOOLS 2010, Málaga, Spain, June 28–July 2, 2010. Proceedings. Lecture Notes in Computer Sience: Vol. 6141 (pp. 213-232). Heidelberg: Springer Verlag 10.1007/978-3-642-13953-6_12

Full text not available from this repository. (Request a copy)

Lint-like program checkers are popular tools that ensure code quality by verifying compliance with best practices for a particular programming language. The proliferation of internal domain-specific languages and models, however, poses new challenges for such tools. Traditional program checkers produce many false positives and fail to accurately check constraints, best practices, common errors, possible optimizations and portability issues particular to domain-specific languages. We advocate the use of dedicated rules to check domain-specific practices. We demonstrate the implementation of domain-specific rules, the automatic fixing of violations, and their application to two case-studies: (1) Seaside defines several internal DSLs through a creative use of the syntax of the host language; and (2) Magritte adds meta-descriptions to existing code by means of special methods. Our empirical validation demonstrates that domain-specific program checking significantly improves code quality when compared with general purpose program checking.

Item Type: Book Section (Book Chapter)
Division/Institute: 08 Faculty of Science > Institute of Computer Science (INF)
UniBE Contributor: Renggli, Lukas and Nierstrasz, Oscar Marius
Series: Lecture Notes in Computer Sience
Publisher: Springer Verlag
Language: English
Submitter: Factscience Import
Date Deposited: 04 Oct 2013 14:17
Last Modified: 04 May 2014 23:07
Publisher DOI: 10.1007/978-3-642-13953-6_12
Web of Science ID: 000286162000012
URI: http://boris.unibe.ch/id/eprint/4962 (FactScience: 209621)

Actions (login required)

Edit item Edit item
Provide Feedback