<p><i>Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques</i> presents an overall analysis of meta-programming, focusing on insights of meta-programming techniques, heterogeneous meta-program development processes in the context of model-driven, feature-b
Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques (Advanced Information and Knowledge Processing)
โ Scribed by Vytautas ล tuikys, Robertas Damaลกeviฤius
- Publisher
- Springer
- Year
- 2012
- Tongue
- English
- Leaves
- 329
- Series
- Advanced Information and Knowledge Processing
- Edition
- 2013
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques presents an overall analysis of meta-programming, focusing on insights of meta-programming techniques, heterogeneous meta-program development processes in the context of model-driven, feature-based and transformative approaches.
The fundamental concepts of meta-programming are still not thoroughly understood, in this well organized book divided into three parts the authors help to address this. Chapters include: Taxonomy of fundamental concepts of meta-programming; Concept of structural heterogeneous meta-programming based on the original meta-language; Model-driven concept and feature-based modeling to the development process of meta-programs; Equivalent meta-program transformations and metrics to evaluate complexity of feature-based models and meta-programs; Variety of academic research case studies within different application domains to experimentally verify the soundness of the investigated approaches.
Both authors are professors at Kaunas University of Technology with 15 years research and teaching experience in the field. Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques is aimed at post-graduates in computer science and software engineering and researchers and program system developers wishing to extend their knowledge in this rapidly evolving sector of science and technology.
โฆ Table of Contents
Meta-Programming and Model-Driven
Meta-Program Development
Preface
Acknowledgements
Contents
Part I
Chapter
1 Introduction
1.1 What Is Meta-Programming?
1.2 Origins of Meta-Programming and Its Evolution
1.3 Other Definitions of Meta-Programming
1.4 Why Is Meta-Programming Needed?
1.5 Meta-Programming as a Higher-Level Thinking Paradigm to Develop Systems
1.6 The Topics This Book Addresses
1.7 Summary and Concluding Remarks
1.8 Exercise Questions
References
Chapter
2 Taxonomy of Fundamental Concepts of Meta-Programming
2.1 What Is Taxonomy?
2.2 Fundamental Concepts of Meta-Programming
2.2.1 Transformation
2.2.2 Generation
2.2.3 Meta-Program
2.2.4 Levels of Abstraction
2.2.5 Generalization
2.2.6 Separation of Concerns
2.2.7 Reflection
2.2.8 Metadata
2.3 Taxonomy of Meta-Programming Concepts
2.4 Analysis of Meta-Programming Sources
2.5 What Can One Learn from Meta-Programming Taxonomy?
2.6 Summary
2.7 Exercise Questions
References
Chapter
3 A Background of Meta-Programming Techniques
3.1 Introduction
3.2 Preliminary Principles
3.3 Fundamental Principles of Meta-Programming
3.3.1 Separation of Concepts
3.3.2 Taxonomy Axes to Describe Relationships Between Concepts
3.3.3 Levels of Abstractions and Meta-Programming
3.3.4 Integration of Concepts
3.4 Process-Based Relationships of Meta-Programming Concepts
3.5 Multidimensional Separation of Concepts and Meta-Programming
3.6 Representation of Meta-Programming Concepts Using Feature Diagrams: MDSoC View
3.7 Summary and Evaluation
3.8 Exercise Questions
References
Chapter
4 Homogeneous Meta-Programming Techniques with Case Study
4.1 Introduction
4.2 Language-Independent Aspects of Homogeneous Meta-Programming
4.3 Terminology, Taxonomy and Formal Description of Homogeneous Meta-Programming Domain
4.3.1 Functional Homogeneous Meta-Programming
4.3.2 Structural Homogeneous Meta-Programming
4.3.3 Mixed Homogeneous Meta-Programming
4.4 Homogeneous Meta-Programming in Java
4.4.1 Basic Built-In Abstractions
4.4.2 Taxonomy of Homogeneous Meta-Programming Techniques in Java
4.4.3 Functional Homogeneous Meta-Programming Techniques
4.4.4 Structural Homogeneous Meta-Programming Techniques
4.5 Homogeneous Meta-Programming in VHDL
4.5.1 Similarities and Differences Between VHDL and General-Purpose Programming Languages (GPLs)
4.5.2 Component Generalization Framework in VHDL
4.6 Case Study: Development of Generic GATE Component in VHDL
4.6.1 Formulation of Requirements
4.6.2 Development of Generic Interface
4.6.3 Development of Generic Architecture
4.6.4 How Generic Component Is Used to Compose a Higher-Level Component/System
4.7 Summary
4.8 Exercise Questions
References
Chapter
5 Structural Heterogeneous Meta-Programming
5.1 Introduction
5.2 Analysis of Structural Meta-Programming
5.3 Basics of Heterogeneous Meta-Programming
5.3.1 Explicit Separation of Concerns: A Two-Dimensional Model
5.3.2 Integration of Separated Concerns
5.3.3 Component Instance Models
5.3.4 Generic Component Models
5.4 Pre-Requirements for Meta-Languages
5.5 Summary, Evaluation and Conclusions
5.6 Exercise Questions
References
Chapter
6 Open PROMOL: A Meta-Language for Heterogeneous Meta-Programming
6.1 Introduction and Motivation
6.2 What Concepts Does the Language Implement?
6.3 Basic Features of the Syntax and Semantics
6.4 Main Capabilities of the Language
6.5 Case Study: VHDL Code Modification via Widening, Narrowing and Isolation
6.6 Comparative Studies
6.6.1 Open PROMOL vs. Java (C=+=+) as Meta-Languages
6.6.2 PHP as Meta-Language for Web-Based Applications
6.7 Evaluation of the Approach
6.8 Summary, Current State of the Language and Conclusions
6.9 Exercise Questions
References
Part II
Chapter
7 A Framework to Deal with Heterogeneous Meta-Programming in Large: Meta-Program Lifecycle
7.1 Introduction
7.2 Preliminary Assumptions and Motivation
7.3 General Description of the Framework
7.4 Roles of Actors Within the Framework
7.5 Meta-Design, Design Spaces and Meta-Programming
7.6 Domain Variability Modelling and Meta-Programming
7.7 Design-for-Change, Context Modelling and Meta-Programming
7.8 Summary
7.9 Exercise Questions
References
Chapter
8 A Model-Driven View to Meta-Program Development Process
8.1 Introduction
8.2 Related Works
8.3 Framework for Model-Driven Analysis of Meta-Program Development
8.3.1 Basic Assumptions and Terminology
8.3.2 Description of the Framework
8.3.3 Meta-Model to Specify Problem Domain Abstractions
8.3.4 Instances of FD Meta-Model
8.3.4.1 Meta-Model of Meta-Program
8.3.4.2 Instance of the Meta-Program Meta-Model
8.3.5 Elements of the Instance of Meta-Program Meta-Model
8.4 Interpretation of Transformations
8.5 Requirements for Tools to Support (Semi-) Automatic Development of Meta-Programs
8.6 Summary and Evaluation
8.7 Exercise Questions
References
Chapter
9 Cognitive Insights into Feature Diagram Notation and Beyond
9.1 Introduction
9.2 Overview of Feature Variability Management Research
9.3 Introduction into Feature Diagrams
9.3.1 Feature Definitions and Original Context of Use
9.3.2 Feature Model
9.3.3 Feature Types
9.3.4 Feature Diagram Definition and Variants of Notation
9.3.5 Basic Set of Abstractions in Standard Feature Diagram
9.4 Extensions of Feature Diagrams
9.4.1 Ontology-Based Extension
9.4.2 Extension for Quality-Oriented Modelling
9.4.3 Feature Diagram Extension for Variation Sequence Modelling
9.4.4 Other Known Extensions of Feature Diagram Notation
9.5 Summary
9.6 Exercise Questions
References
Chapter
10 Meta-Programming Task Specification Using Feature-Based Patterns and Domain Program Scenarios
10.1 Introduction
10.2 Problem Statement
10.3 Binding the Task with Other Domains
10.3.1 Analysis of Feature-Based Modelling Research
10.3.2 Analysis of Program Understanding Research
10.4 Framework to Consider Meta-Program Specification Tasks
10.5 Concept of Feature-Based Patterns
10.5.1 Definitions
10.5.2 Elements of Feature Diagram Instance as Patterns
10.5.3 Some Properties of Patterns
10.6 Summary, Evaluation and Further Research
10.7 Exercise Questions
References
Chapter
11 Meta-Program Development as a Model Transformation Process
11.1 Introduction
11.2 Meta-Program Development Strategies
11.3 Transformation Tasks
11.4 Meta-Program Understanding and Concept of Multi-Stage Meta-Programming
11.4.1 Definition of Basic Terms
11.4.2 Understanding of One-Stage Meta-Programs
11.4.3 Understanding of Multi-Stage Meta-Programs
11.4.4 Static and Dynamic Analysis and Properties of Models for Understanding
11.5 Representation of Source Models
11.6 Representation of Target Model and Overall Design Process
11.7 Transformation Rules and Methodology
11.7.1 Stages of the Methodology
11.7.2 Transformation Rules with Example
11.8 Summary, Evaluation and Conclusions
11.9 Exercise Questions
References
Chapter
12 Complexity Evaluation of Feature Models and Meta-Programs
12.1 What Is Complexity?
12.2 Complexity Management
12.3 Complexity Metrics
12.4 Complexity Measures of Feature Models as Meta-Programs Specifications
12.5 Evaluation of Abstraction Levels
12.6 Complexity of Meta-Programs and Meta-Programming Techniques
12.7 Complexity Metrics of Heterogeneous Meta-Programs
12.7.1 Information Dimension: Relative Kolmogorov Complexity
12.7.2 Meta-language Dimension: Meta-language Richness
12.7.3 Graph Dimension: Cyclomatic Complexity
12.7.4 Algorithmic Complexity: Normalized Difficulty
12.7.5 Cognitive Complexity: Cognitive Difficulty
12.8 Complexity of Homogeneous Meta-Programming
12.9 Theoretical Validation of Complexity Metrics
12.10 Examples of Meta-Program Complexity Calculation
12.10.1 Complexity of Heterogeneous Meta-Programs
12.10.2 Complexity of Homogeneous Meta-Programs
12.11 Summary, Evaluation and Future Work
12.12 Exercise Questions
References
Part III
Chapter
13 A Framework: How Can Heterogeneous Meta-Programs Be Further Generalized?
13.1 Introduction
13.2 A Framework to Analyse Generalization
13.2.1 Generalization Concept and Tasks
13.2.2 Why Structural Generalization Is Needed?
13.2.3 Why More Than Two Languages Are Needed?
13.2.4 More About the Language Aspects
13.2.5 Combining the Development and Evolution Stages Through Prediction and Anticipation
13.3 Summary
13.4 Exercise Questions
References
Chapter
14 Meta-Meta-Programming and Equivalent Transformations of Heterogeneous Meta-Programs
14.1 Introduction
14.2 Related Works
14.3 Definitions of Basic Terms
14.4 Transformation Tasks
14.5 Transformation Method
14.6 Transformation Properties
14.7 Theoretical Background and Formal Description
14.8 Transformation-Based Processes to Develop Multi-Stage Meta-Programs
14.9 Summary, Discussion and Evaluation
14.10 Conclusions
14.11 Exercise Questions
References
Chapter
15 Multi-Linguistic Aspects of Heterogeneous Meta-Programming in Web Applications
15.1 Introduction
15.2 A Survey of Technologies to Support Portal Development
15.3 Identification of Typical Web Components
15.4 Problem Statement
15.5 Properties of Web Component Instances
15.6 Web Component Generator Model
15.7 Analysis of Web Generators Designed Using Multi-Linguistic Meta-Programming
15.8 Summary, Evaluation and Conclusions
15.9 Exercise Questions
References
Chapter
16 Applications of Meta-Programming Methodology
16.1 Introduction
16.2 Meta-Programming in HW Design
16.3 Meta-Programming for Creating LOs for Teaching HW Design
16.4 Context-Related Modelling and Meta-Programming for Embedded SW Domain
16.5 Meta-Programming as Component Wrapping Technology
16.5.1 Communication-Based Design
16.5.2 Reliable System Design
16.6 Internet-Based Application of Meta-Programming
16.7 Summary and Evaluation
16.8 Exercise Questions
References
What Is on the Horizon?
Glossary
Index
๐ SIMILAR VOLUMES
Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques presents an overall analysis of meta-programming, focusing on insights of meta-programming techniques, heterogeneous meta-program development processes in the context of model-driven, feature-based and t
Clear and concise explanations to understand the learning paradigms. Chapters written by leading world experts.
Development and aid projects often fail to improve technological capacity. Their reform has been a widely acknowledged challenge for three decades. This book demonstrates theoretically and empirically how aid practitioners shape the organizational, social and inter-cultural dynamics of development p
<p><span>Interval computing combined with fuzzy logic has become an emerging tool in studying artificial intelligence and knowledge processing (AIKP) applications since it models uncertainties frequently raised in the field. This book provides introductions for both interval and fuzzy computing in a