The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
ACM Computing Surveys (CSUR)
XVCL: XML-based variant configuration language
Proceedings of the 25th International Conference on Software Engineering
Enforcing strict model-view separation in template engines
Proceedings of the 13th international conference on World Wide Web
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An Architecture for an XML-Template Engine Enabling Safe Authoring
DEXA '06 Proceedings of the 17th International Conference on Database and Expert Systems Applications
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Repleo: a syntax-safe template engine
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Expressive and safe static reflection with MorphJ
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
Statically safe program generation with safegen
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Modular name analysis for java using jastadd
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Closing the gap between modelling and java
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Towards well-formed fragment composition with reference attribute grammars
Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
JUG: a JUnit generation, time complexity analysis and reporting tool to streamline grading
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
DropsBox: the Dresden Open Software Toolbox
Software and Systems Modeling (SoSyM)
Hi-index | 0.00 |
Template languages are widely used within generative programming, because they provide intuitive means to generate software artefacts expressed in a specific object language. However, most template languages perform template instantiation on the level of string literals, which allows neither syntax checks nor semantics analysis. To make sure that generated artefacts always conform to the object language, we propose to perform static analysis at template design time. In addition, the increasing popularity of domainspecific languages (DSLs) demands an approach that allows to reuse both the concepts of template languages and the corresponding tools. In this paper we address the issues mentioned above by presenting how existing languages can be automatically extended with generic template concepts (e.g., placeholders, loops, conditions) to obtain safe template languages. These languages provide means for syntax checking and static semantic analysis w.r.t. the object language at template design time. We discuss the prerequisites for this extension, analyse the types of correctness properties that can be assured at template design time, and exemplify the key benefits of this approach on a textual DSL and Java.