Title
Analysis Of Meta-Programs: An Example
Abstract
Meta-programs are generic, incomplete, adaptable programs that are instantiated at construction time to meet specific requirements. Templates and generative techniques are examples of meta-programming techniques. Understanding of meta-programs is more difficult than understanding of concrete, executable programs. Static and dynamic analysis methods have been applied to ease understanding of programs - can similar methods be used for meta-programs? In our projects, we build meta-programs with a meta-programming technique called XVCL. Meta-programs in XVCL are organized into a hierarchy of meta-components from which the XVCL processor generates concrete, executable programs that meet specific requirements. We developed an automated system that analyzes XVCL meta-programs, and presents developers with information that helps them work with meta-programs more effectively. Our system conducts both static and dynamic analysis of a meta-program. An integral part of our solution is a query language, FQL in which we formulate questions about meta-program properties. An FQL query processor automatically answers a class of queries. The analysis method described in the paper is specific to XVCL. However, the principle of our approach can be applied to other meta-programming systems. We believe readers interested in meta-programming in general will find some of the lessons from our experiment interesting and useful.
Year
DOI
Venue
2006
10.1142/S0218194006002689
INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING
Keywords
Field
DocType
meta-programs, program understanding, program analysis, program queries, debugging
Data mining,Query language,Programming language,Software engineering,Computer science,Generative grammar,Program analysis,Hierarchy,Debugging,Executable
Journal
Volume
Issue
ISSN
16
1
0218-1940
Citations 
PageRank 
References 
0
0.34
0
Authors
5
Name
Order
Citations
PageRank
stan jarzabek184390.16
Hongyu Zhang225126.39
Ru Shen3233.38
Vu Tung Lam400.34
Zhenxin Sun5365.27