Formulations and benefits of the law of demeter
ACM SIGPLAN Notices
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
A Comparison of Bug Finding Tools for Java
ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering
ACM SIGPLAN Notices
A framework for implementing pluggable type systems
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Fast type reconstruction for dynamically typed programming languages
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Co-evolving code and design with intensional views
Computer Languages, Systems and Structures
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Magritte: a meta-driven approach to empower developers and end users
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
System-specific static code analyses: a case study in the complex embedded systems domain
Software Quality Control
Hi-index | 0.00 |
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 repair 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.