Meta-Programming and Model-Driven Meta-Program Development


Book Description

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.




Model-Driven Software Development


Book Description

Model-Driven Software Development (MDSD) is currently a highly regarded development paradigm among developers and researchers. With the advent of OMG's MDA and Microsoft's Software Factories, the MDSD approach has moved to the centre of the programmer's attention, becoming the focus of conferences such as OOPSLA, JAOO and OOP. MDSD is about using domain-specific languages to create models that express application structure or behaviour in an efficient and domain-specific way. These models are subsequently transformed into executable code by a sequence of model transformations. This practical guide for software architects and developers is peppered with practical examples and extensive case studies. International experts deliver: * A comprehensive overview of MDSD and how it relates to industry standards such as MDA and Software Factories. * Technical details on meta modeling, DSL construction, model-to-model and model-to-code transformations, and software architecture. * Invaluable insight into the software development process, plus engineering issues such as versioning, testing and product line engineering. * Essential management knowledge covering economic and organizational topics, from a global perspective. Get started and benefit from some practical support along the way!




Smart Learning Objects for Smart Education in Computer Science


Book Description

This monograph presents the challenges, vision and context to design smart learning objects (SLOs) through Computer Science (CS) education modelling and feature model transformations. It presents the latest research on the meta-programming-based generative learning objects (the latter with advanced features are treated as SLOs) and the use of educational robots in teaching CS topics. The introduced methodology includes the overall processes to develop SLO and smart educational environment (SEE) and integrates both into the real education setting to provide teaching in CS using constructivist and project-based approaches along with evaluation of pedagogic outcomes. Smart Learning Objects for Smart Education in Computer Science will appeal to researchers in CS education particularly those interested in using robots in teaching, course designers and educational software and tools developers. With research and exercise questions at the end of each chapter students studying CS related courses will find this work informative and valuable too.




C++ Template Metaprogramming


Book Description

C++ Template Metaprogramming sheds light on the most powerful idioms of today's C++, at long last delivering practical metaprogramming tools and techniques into the hands of the everyday programmer. A metaprogram is a program that generates or manipulates program code. Ever since generic programming was introduced to C++, programmers have discovered myriad "template tricks" for manipulating programs as they are compiled, effectively eliminating the barrier between program and metaprogram. While excitement among C++ experts about these capabilities has reached the community at large, their practical application remains out of reach for most programmers. This book explains what metaprogramming is and how it is best used. It provides the foundation you'll need to use the template metaprogramming effectively in your own work. This book is aimed at any programmer who is comfortable with idioms of the Standard Template Library (STL). C++ power-users will gain a new insight into their existing work and a new fluency in the domain of metaprogramming. Intermediate-level programmers who have learned a few advanced template techniques will see where these tricks fit in the big picture and will gain the conceptual foundation to use them with discipline. Programmers who have caught the scent of metaprogramming, but for whom it is still mysterious, will finally gain a clear understanding of how, when, and why it works. All readers will leave with a new tool of unprecedented power at their disposal—the Boost Metaprogramming Library. Note: CD materials are only available with the print edition.




Smart STEM-Driven Computer Science Education


Book Description

At the centre of the methodology used in this book is STEM learning variability space that includes STEM pedagogical variability, learners’ social variability, technological variability, CS content variability and interaction variability. To design smart components, firstly, the STEM learning variability space is defined for each component separately, and then model-driven approaches are applied. The theoretical basis includes feature-based modelling and model transformations at the top specification level and heterogeneous meta-programming techniques at the implementation level. Practice includes multiple case studies oriented for solving the task prototypes, taken from the real world, by educational robots. These case studies illustrate the process of gaining interdisciplinary knowledge pieces identified as S-knowledge, T-knowledge, E-knowledge, M-knowledge or integrated STEM knowledge and evaluate smart components from the pedagogical and technological perspectives based on data gathered from one real teaching setting. Smart STEM-Driven Computer Science Education: Theory, Methodology and Robot-based Practices outlines the overall capabilities of the proposed approach and also points out the drawbacks from the viewpoint of different actors, i.e. researchers, designers, teachers and learners.




Evolution of STEM-Driven Computer Science Education


Book Description

The book discusses the evolution of STEM-driven Computer Science (CS) Education based on three categories of Big Concepts, Smart Education (Pedagogy), Technology (tools and adequate processes) and Content that relates to IoT, Data Science and AI. For developing, designing, testing, delivering and assessing learning outcomes for K-12 students (9-12 classes), the multi-dimensional modelling methodology is at the centre. The methodology covers conceptual and feature-based modelling, prototyping, and virtual and physical modelling at the implementation and usage level. Chapters contain case studies to assist understanding and learning. The book contains multiple methodological and scientific innovations including models, frameworks and approaches to drive STEM-driven CS education evolution. Educational strategists, educators, and researchers will find valuable material in this book to help them improve STEM-driven CS education strategies, curriculum development, and new ideas for research.




Design for Teaching and Learning in a Networked World


Book Description

This book constitutes the refereed proceedings of the 10th European Conference on Technology Enhanced Learning, EC-TEL 2015, held in Toledo, Spain, in September 2015. The 27 full papers, 19 short papers, 9 demo papers and 23 posters were carefully reviewed and selected from 176 submissions. They address topics such as blended learning; self-regulated and self directed learning; reflective learning; intelligent learning systems; learning communities; learning design; learning analytics; learning assessment; personalization and adaptation; serious games; social media; massive open online courses (MOOCs); schools of the future.




Metaprogramming in .NET


Book Description

Summary Metaprogramming in .NET is designed to help readers understand the basic concepts, advantages, and potential pitfalls of metaprogramming. It introduces core concepts in clear, easy-to-follow language and then it takes you on a deep dive into the tools and techniques you'll use to implement them in your .NET code. You'll explore plenty of real-world examples that reinforce key concepts. When you finish, you'll be able to build high-performance, metaprogramming-enabled software with confidence. About the Technology When you write programs that create or modify other programs, you are metaprogramming. In .NET, you can use reflection as well as newer concepts like code generation and scriptable software. The emerging Roslyn project exposes the .NET compiler as an interactive API, allowing compile-time code analysis and just-in-time refactoring. About this Book Metaprogramming in .NET is a practical introduction to the use of metaprogramming to improve the performance and maintainability of your code. This book avoids abstract theory and instead teaches you solid practices you'll find useful immediately. It introduces core concepts like code generation and application composition in clear, easy-to-follow language. Written for readers comfortable with C# and the .NET framework—no prior experience with metaprogramming is required. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Metaprogramming concepts in plain language Creating scriptable software Code generation techniques The Dynamic Language Runtime About the Authors Kevin Hazzard is a Microsoft MVP, consultant, teacher, and developer community leader in the mid-Atlantic USA. Jason Bock is an author, Microsoft MVP, and the leader of the Twin Cities Code Camp. "An excellent way to start fully using the power of metaprogramming."—From the Foreword by Rockford Lhotka, Creator of the CSLA .NET Framework Table of Contents PART 1 DEMYSTIFYING METAPROGRAMMING Metaprogramming concepts Exploring code and metadata with reflection PART 2 TECHNIQUES FOR GENERATING CODE The Text Template Transformation Toolkit (T4) Generating code with the CodeDOM Generating code with Reflection.Emit Generating code with expressions Generating code with IL rewriting PART 3 LANGUAGES AND TOOLS The Dynamic Language Runtime Languages and tools Managing the .NET Compiler




Conceptual Modeling Perspectives


Book Description

Conceptual modeling has always been one of the main issues in information systems engineering as it aims to describe the general knowledge of the system at an abstract level that facilitates user understanding and software development. This collection of selected papers provides a comprehensive and extremely readable overview of what conceptual modeling is and perspectives on making it more and more relevant in our society. It covers topics like modeling the human genome, blockchain technology, model-driven software development, data integration, and wiki-like repositories and demonstrates the general applicability of conceptual modeling to various problems in diverse domains. Overall, this book is a source of inspiration for everybody in academia working on the vision of creating a strong, fruitful and creative community of conceptual modelers. With this book the editors and authors want to honor Prof. Antoni Olivé for his enormous and ongoing contributions to the conceptual modeling discipline. It was presented to him on the occasion of his keynote at ER 2017 in Valencia, a conference that he has contributed to and supported for over 20 years. Thank you very much to Antoni for so many years of cooperation and friendship.




Model-Driven Engineering and Software Development


Book Description

This book constitutes thoroughly revised and selected papers from the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, held in Funchal, Madeira, Portugal, in January 2018. The 22 thoroughly revised and extended papers presented in this volume were carefully reviewed and selected from 101 submissions. They contribute to the development of highly relevant research trends in model-driven engineering and software development such as innovative methods for MDD-based development and testing of web-based applications and user interfaces, support for development of Domain-Specific Languages (DSLs), MDD-based application development on multiprocessor platforms, advances in MDD tooling, formal semantics and behaviour modelling, and MDD-based product-line engineering.