Adaptive Object-Modeling Patterns, Tools and Applications

Total Page:16

File Type:pdf, Size:1020Kb

Adaptive Object-Modeling Patterns, Tools and Applications · Adaptive Object-Modeling Patterns, Tools and Applications December Scientific Supervision by Ademar Aguiar, Assistant Professor Department of Informatics Engineering In partial fulfillment of requirements for the degree of Doctor of Philosophy in Computer Science by the MAPi Joint Doctoral Programme Contact Information: Hugo Sereno Ferreira Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Informática Rua Dr. Roberto Frias, s/n - Porto Portugal Tel.: + Fax.: + Email: [email protected] URL: http://www.fe.up.pt/ hugosf is thesis was typeset on an Apple® MacBook® Pro running Mac OS® X . using the free LATEX typesetting system, originally developed by Leslie Lamport based on TEX created by Donald Knuth. e body text is set in Minion Pro, a late Renaissance-era type originally designed by Robert Slimbach. Other fonts include Sans and Typewriter from the Computer Modern family, and Courier, a monospaced font originally designed by Howard Kettler at IBM and later redrawn by Adrian Frutiger. Typographical decisions were based on the recommendations given in e Elements of Typographic Style by Robert Bringhurst (), and graphical guidelines were inspired in e Visual Display of Quantitative Information by Edward Tue (). is colophon has exactly one hundred and twenty-two () words, excluding all numbers and symbols. “Adaptive Object-Modeling: Patterns, Tools and Applications” ISBN 978-989-96899-0-9 Copyright © – by Hugo Sereno Ferreira. All rights are reserved. 9 789899 689909 is work was partially funded by and , .. as a doctoral scholarship, ref. ///. …to Helena is page was intentionally le mostly blank. Abstract e field of Soware Engineering () could be regarded as in crisis since the early days of its birth. Project overruns and failures have hitherto characterized the norm, blamed upon the unreason- able expectations set by the stakeholders and the constant change of the requirements. While some development processes struggle to systematically eradicate these barriers from soware development, other methodologies, specially those coined agile, promote a continuous embrace of change as a first-class property of this activity. Even so, it is a yet to be disputed contingency that there is no silver bullet; no single, unifying methodology capable of consistently improving the efficiency of soware development by even an order of magnitude. Nonetheless, the agglomeration of empirical evidence is now starting to suggest that change, more than a mere cause, may be a symptom of a deeper nature, directly related to inherent prop- erties of some of the domains soware tries to address — soware may need to be under constant change because any modeling of those domains is incomplete since the day it starts. erefore, if such solutions need to be constantly evolving and adapted to new realities, hence regarded as incomplete by design, shouldn’t they be actively designed for incompleteness? If agile methodologies shied the way teams and individuals plan development to embrace change, how should one deliberately design to cope with continuous change? Even if the answer to this question could be promptly given, the goal of pragmatically con- tributing to the body of knowledge in the field rises a problem of its own. As knowledge grows in a specific area, solutions are captured and documented by experts in books, research pa- pers, concrete implementations, webpages, etc. While one may intuitively think that this growth implies better design, it has been shown that the way (and the amount) this knowledge is cap- tured raises an important issue per-se. Design, as an intentional act of choice, is constantly over- whelmed by the sheer quantity of available information. In this dissertation, the author starts by presenting arguments pointing to how these incom- plete by design systems are a common issue in nowadays practice of soware engineering. During that overview, one must inevitably delve into the forces that lead architects, designers and devel- opers to recognize these kind of systems. e target thus become readers who have recognized (or are interested) in the set of systems that show a high degree of variability and incomplete- ness, and which goal is to reduce the overall effort — monetary cost, available time and resources, required skills, resulting complexity, etc. — of coping with continuous change made to the do- ii main model. Mainly, this dissertation aims to answer what form should this type of systems take, and which kind of tools and infrastructures should be available to support the development of such soware? e way this problem is here coped, with a permanent focus on the development of prescrip- tive contributions to the body of knowledge, is as follows. First, it is presented as a formal- ization of a unified conceptual pattern language, following the theories first laid by Alexander et al., for systems which domain model is target of continuous change during runtime. e un- derlying meta-architecture of these systems is known as Adaptive Object-models, and this pattern language aims to answers questions such as when do these type of systems occur, their advantages and disadvantages, their underlying requirements, the set of available techniques and solutions and their main benefits and liabilities. e author then proceeds to specify a reference architecture of an object-oriented frame- work capable of dealing with such systems. Questions here addressed include the type and form of needed infrastructures, what abstractions should be made and supported, the generic func- tionalities it should provide, its default behavior and points of extension. e author takes a further step in providing and detailing an industrial-level implementation of such framework, along with the specific design issues that arise only when pursuing such concrete artifacts. Finally, the author’s main thesis is validated by providing empirical evidence of the framework benefits through industrial use-case applications and controlled academic quasi- experiments. Two commercial soware systems built on top of that framework are used as case studies, reflecting their own specific context, their requirements, their particular problems, and the way the framework — and the underlying theories here built — were used to address them, the outcomes, and the lessons learned. Inherent threats to this type of validation are further dismissed by presenting the results of a (quasi-)experiment within a controlled academic en- vironment, where the results of studying groups of undergraduate students following different treatments are shown to be consistent with those earlier presented. Resumo A Engenharia de Soware (), enquanto área de profissionalização, debate-se numa profunda crise que remonta aos primeiros dias do seu nascimento, e se reflecte nos constantes atrasos e insucessos dos seus projectos, ao ponto dessas situações definirem a norma na área. No topo da “lista” das principais causas desta situação encontram-se as expectativas irrealistas dos inter- venientes e a mudança contínua dos requisitos. Em resposta, têm surgido alguns processos de desenvolvimento que defendem a erradicação sistemática destas barreiras do acto de criação de soware; mas outros, especialmente aqueles auto-denominadas ágeis, sublinham a necessidade de abraçar a mudança como uma propriedade essencial da própria actividade. Apesar de tudo, permanece por refutar a hipótese de não existir uma bala de prata, uma única metodologia unifi- cadora capaz de melhorar consistentemente a eficiência do desenvolvimento de soware, pelo menos, numa ordem de grandeza. A observação empírica começa, no entanto, a sugerir que a mudança, mais do que uma sim- ples causa, apresenta-se como um sintoma resultante da natureza das propriedades intrínsecas a alguns domínios modelados pelo soware — a respectiva necessidade de ser continuamente modificado existe porque qualquer tentativa de modelar de forma definitiva esses domínios está condenada a ser incompleta à partida. Mas se tais soluções são um alvo inevitável de evoluções e adaptações constantes a novas realidades — incompletas por natureza — não deveriam então ser activamente desenhadas para serem naturalmente incompletas? Se as metodologias ágeis modificam a forma como as equipas e os indivíduos planeiam e executam o processo de desenvolvimento para abraçar a mudança, como deveremos desenhar soware para deliberadamente suportar uma mudança contínua? Mesmo que uma resposta estivesse facilmente ao nosso alcance, o objectivo de contribuir pragmaticamente para o corpo de conhecimento na área da levanta um novo problema. Por norma, à medida que o conhecimento aumenta numa determinada área, as novas soluções são capturadas e documentadas por especialistas em livros, artigos de investigação, implementações, páginas de internet, etc. Embora pareça intuitivo que este aumento de conhecimento implique uma melhoria nas escolhas de desenho, tem sido demonstrado que a forma como este é capturado é problemática. O desenho, como um acto deliberado de escolha, é sistematicamente subjugado pela quantidade de informação disponível. Nesta dissertação começa-se por apresentar os argumentos que tornam os sistemas incom- iv pletos por natureza uma contingência da . Para isso, será importante perceber as forças que levam arquitectos, designers e programadores a identificarem este tipo de sistemas. O público alvo é assim os leitores que se identificam com estas forças, ou que estão interessados no es- tudo de sistemas caracterizados por um elevado grau de variabilidade
Recommended publications
  • Neuroscience, the Natural Environment, and Building Design
    Neuroscience, the Natural Environment, and Building Design. Nikos A. Salingaros, Professor of Mathematics, University of Texas at San Antonio. Kenneth G. Masden II, Associate Professor of Architecture, University of Texas at San Antonio. Presented at the Bringing Buildings to Life Conference, Yale University, 10-12 May 2006. Chapter 5 of: Biophilic Design: The Theory, Science and Practice of Bringing Buildings to Life, edited by Stephen R. Kellert, Judith Heerwagen, and Martin Mador (John Wiley, New York, 2008), pages 59-83. Abstract: The human mind is split between genetically-structured neural systems, and an internally-generated worldview. This split occurs in a way that can elicit contradictory mental processes for our actions, and the interpretation of our environment. Part of our perceptive system looks for information, whereas another part looks for meaning, and in so doing gives rise to cultural, philosophical, and ideological constructs. Architects have come to operate in this second domain almost exclusively, effectively neglecting the first domain. By imposing an artificial meaning on the built environment, contemporary architects contradict physical and natural processes, and thus create buildings and cities that are inhuman in their form, scale, and construction. A new effort has to be made to reconnect human beings to the buildings and places they inhabit. Biophilic design, as one of the most recent and viable reconnection theories, incorporates organic life into the built environment in an essential manner. Extending this logic, the building forms, articulations, and textures could themselves follow the same geometry found in all living forms. Empirical evidence confirms that designs which connect humans to the lived experience enhance our overall sense of wellbeing, with positive and therapeutic consequences on physiology.
    [Show full text]
  • Open Source Architecture, Began in Much the Same Way As the Domus Article
    About the Authors Carlo Ratti is an architect and engineer by training. He practices in Italy and teaches at the Massachusetts Institute of Technology, where he directs the Senseable City Lab. His work has been exhibited at the Venice Biennale and MoMA in New York. Two of his projects were hailed by Time Magazine as ‘Best Invention of the Year’. He has been included in Blueprint Magazine’s ‘25 People who will Change the World of Design’ and Wired’s ‘Smart List 2012: 50 people who will change the world’. Matthew Claudel is a researcher at MIT’s Senseable City Lab. He studied architecture at Yale University, where he was awarded the 2013 Sudler Prize, Yale’s highest award for the arts. He has taught at MIT, is on the curatorial board of the Media Architecture Biennale, is an active protagonist of Hans Ulrich Obrist’s 89plus, and has presented widely as a critic, speaker, and artist in-residence. Adjunct Editors The authorship of this book was a collective endeavor. The text was developed by a team of contributing editors from the worlds of art, architecture, literature, and theory. Assaf Biderman Michele Bonino Ricky Burdett Pierre-Alain Croset Keller Easterling Giuliano da Empoli Joseph Grima N. John Habraken Alex Haw Hans Ulrich Obrist Alastair Parvin Ethel Baraona Pohl Tamar Shafrir Other titles of interest published by Thames & Hudson include: The Elements of Modern Architecture The New Autonomous House World Architecture: The Masterworks Mediterranean Modern See our websites www.thamesandhudson.com www.thamesandhudsonusa.com Contents
    [Show full text]
  • Ece351 Lab Manual
    DEREK RAYSIDE & ECE351 STAFF ECE351 LAB MANUAL UNIVERSITYOFWATERLOO 2 derek rayside & ece351 staff Copyright © 2014 Derek Rayside & ECE351 Staff Compiled March 6, 2014 acknowledgements: • Prof Paul Ward suggested that we look into something with vhdl to have synergy with ece327. • Prof Mark Aagaard, as the ece327 instructor, consulted throughout the development of this material. • Prof Patrick Lam generously shared his material from the last offering of ece251. • Zhengfang (Alex) Duanmu & Lingyun (Luke) Li [1b Elec] wrote solutions to most labs in txl. • Jiantong (David) Gao & Rui (Ray) Kong [3b Comp] wrote solutions to the vhdl labs in antlr. • Aman Muthrej and Atulan Zaman [3a Comp] wrote solutions to the vhdl labs in Parboiled. • TA’s Jon Eyolfson, Vajih Montaghami, Alireza Mortezaei, Wenzhu Man, and Mohammed Hassan. • TA Wallace Wu developed the vhdl labs. • High school students Brian Engio and Tianyu Guo drew a number of diagrams for this manual, wrote Javadoc comments for the code, and provided helpful comments on the manual. Licensed under Creative Commons Attribution-ShareAlike (CC BY-SA) version 2.5 or greater. http://creativecommons.org/licenses/by-sa/2.5/ca/ http://creativecommons.org/licenses/by-sa/3.0/ Contents 0 Overview 9 Compiler Concepts: call stack, heap 0.1 How the Labs Fit Together . 9 Programming Concepts: version control, push, pull, merge, SSH keys, IDE, 0.2 Learning Progressions . 11 debugger, objects, pointers 0.3 How this project compares to CS241, the text book, etc. 13 0.4 Student work load . 14 0.5 How this course compares to MIT 6.035 .......... 15 0.6 Where do I learn more? .
    [Show full text]
  • Active Object Systems Redacted for Privacy Abstract Approved
    AN ABSTRACT OF THE THESIS OF Sungwoon Choi for the degree of Doctor of Philosophyin Computer Science presented on February 6, 1992. Title: Active Object Systems Redacted for Privacy Abstract approved. v '" Toshimi Minoura An active object system isa transition-based object-oriented system suitable for the design of various concurrentsystems. An AOS consists of a collection of interacting objects, where the behavior of eachobject is determined by the transition statements provided in the class of that object.A transition statement is a condition-action pair, an equational assignmentstatement, or an event routine. The transition statements provided for eachobject can access, besides the state of that object, the states of the other objectsknown to it through its interface variables. Interface variablesare bound to objects when objects are instantiated so that desired connections among objects are established. The major benefit of the AOS approach is thatan active system can be hierarchically composed from its active software componentsas if it were a hardware system. An AOS provides better encapsulation andmore flexible communication protocols than ordinary object oriented systems, since control withinan AOS is localized. ©Copyright by Sungwoon Choi February 6, 1992 All Rights Reserved Active Object Systems by Sungwoon Choi A THESIS submitted to Oregon State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy Completed February 6, 1992 Commencement June 1992 APPROVED: Redacted for Privacy Professor of Computer Science in charge ofmajor Redacted for Privacy Head of Department of Computer Science Redacted for Privacy Dean of Gradu to School Or Date thesis presented February 6, 1992 Typed by Sungwoon Choi for Sungwoon Choi To my wife Yejung ACKNOWLEDGEMENTS I would like to express my sincere gratitude tomy major professor, Dr.
    [Show full text]
  • Justice XML Data Model Technical Overview
    Justice XML Data Model Technical Overview April 2003 WhyWhy JusticeJustice XMLXML DataData ModelModel VersionVersion 3.0?3.0? • Aligned with standards (some were not available to RDD) • Model-based Æ consistent • Requirements-based – data elements, processes, and documents • Object-oriented Æ efficient extension and reuse • Expanded domain (courts, corrections, and juvenile) • Extensions to activity objects/processes • Relationships (to improve exchange information context) • Can evolve/advance with emerging technology (RDF/OWL) • Model provides the basis for an XML component registry that can provide • Searching/browsing components and metadata • Assistance for schema development/generation • Reference/cache XML schemas for validation • Interface (via standard specs) to external XML registries April 2003 DesignDesign PrinciplesPrinciples • Design and synthesize a common set of reusable, extensible data components for a Justice XML Data Dictionary (JXDD) that facilitates standard information exchange in XML. • Generalize JXDD for the justice and public safety communities – do NOT target specific applications. • Provide reference-able schema components primarily for schema developers. • JXDD and schema will evolve and, therefore, facilitate change and extension. • Best extension methods should minimize impact on prior schema and code investments. • Implement and represent domain relationships so they are globally understood. • Technical dependencies in requirements, solutions, and the time constraints of national priorities and demands
    [Show full text]
  • Object Query Language Reference Version: Itop 1.0
    Object Query Language Reference Version: Itop 1.0 Overview OQL aims at defining a subset of the data in a natural language, while hiding the complexity of the data model and benefit of the power of the object model (encapsulation, inheritance). Its syntax sticks to the syntax of SQL, and its grammar is a subset of SQL. As of now, only SELECT statements have been implemented. Such a statement do return objects of the expected class. The result will be used by programmatic means (to develop an API like ITOp). A famous example: the library Starter SELECT Book Do return any book existing in the Database. No need to specify the expected columns as we would do in a SQL SELECT clause: OQL do return plain objects. Join classes together I would like to list all books written by someone whose name starts with `Camus' SELECT Book JOIN Artist ON Book.written_by = Artist.id WHERE Artist.name LIKE 'Camus%' Note that there is no need to specify wether the JOIN is an INNER JOIN, or LEFT JOIN. This is well-known in the data model. The OQL engine will in turn create a SQL queries based on the relevant option, but we do not want to care about it, do we? © Combodo 2010 1 Now, you may consider that the name of the author of a book is of importance. This is the case if should be displayed anytime you will list a set of books, or if it is an important key to search for. Then you have the option to change the data model, and define the name of the author as an external field.
    [Show full text]
  • Design Pattern Interview Questions
    DDEESSIIGGNN PPAATTTTEERRNN -- IINNTTEERRVVIIEEWW QQUUEESSTTIIOONNSS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright © tutorialspoint.com Dear readers, these Design Pattern Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your interview for the subject of Design Pattern. As per my experience good interviewers hardly plan to ask any particular question during your interview, normally questions start with some basic concept of the subject and later they continue based on further discussion and what you answer: What are Design Patterns? Design patterns represent the best practices used by experienced object-oriented software developers. Design patterns are solutions to general problems that software developers faced during software development. These solutions were obtained by trial and error by numerous software developers over quite a substantial period of time. What is Gang of Four GOF? In 1994, four authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides published a book titled Design Patterns - Elements of Reusable Object-Oriented Software which initiated the concept of Design Pattern in Software development. These authors are collectively known as Gang of Four GOF. Name types of Design Patterns? Design patterns can be classified in three categories: Creational, Structural and Behavioral patterns. Creational Patterns - These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new opreator. This gives program more flexibility in deciding which objects need to be created for a given use case. Structural Patterns - These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.
    [Show full text]
  • Naked Objects: a Technique for Designing More Expressive Systems
    Naked objects: a technique for designing more expressive systems Richard Pawson Robert Matthews Computer Sciences Corporation NakedObjects.org and Computer Science Department, Tdnity College, Dublin, IE rpawson@csc;com ABSTRACT OOUIs provide a number of advantages to the user including Naked objects is an approach to systems design in which core reduced modality [6], and greater expressiveness for the user business objects show directly through to the user interface, and [10], and have become the norm for 'creative' applications such in which all interaction consists of invoking methods on those as drawing, computer aided design (CAD), page make-up and objects in the noun-verb style. One advantage of this approach multimedia editing. OOUIs are far less common in transactional is that it reaults in systems that arc more expressive from the business systems. This may be because the need for viewpoint of the user: they treat the user like a problem solver, expressiveness is less clear. It may also be because the not as merely a process-follower. Another advantage is that the underlying structure of most transactional business applications, 1:1 mapping between the user's representation and the comprising scripted procedures and data operations, does not underlying model means that it is possible to auto-generate the map well onto an OOUI. former from the latter, which yields benefits to the development Surprisingly, though, even where a transactional business process. The authors have designed a Java-based, open source system is based upon a true business object model, the core toolkit called Naked Objects which facilitates this style of business objects are typically hidden from the user.
    [Show full text]
  • Software Architecture: the Next Step for Object Technology (PANEL)
    Software Architecture: The Next Step for Object Technology (PANEL) Bruce Anderson, University of ESSPX (moderator) Mary Shaw, Carnegie-Mellon University Larry Best, American Management Systems Kent Beck, First Class Software What is the next step for you? Progress comes Abstract from taking aware steps, but what steps are those? Architectures are the structuring paradigms, styles They could be in attempting to discover and and patterns that make up our software systems. catalogue architectures; creating awareness of this They are important in many ways: they allow us to level of product envisioning; doing design more talk usefully about systems without talking about consciously; finding ways of describing systems; their detail; a knowledge of them gives us design consolidating legacy code; abandoning legacy code; choices; attention to this level can make systems and making new software lifecycles. families of systems have the non-functional What is the next step for the community? Are there properties we want, especially changeability. ways to work that go beyond projects and Each panelist will address the following issues: companies? Will there be focus on the community, l What is architecture? which suggests cooperation, learning, divergence l What is the value you have had so far from and empowerment; or on the marketplace, which this concept? suggests competition, confidentiality, convergence l What is the next step for you? and dependence? l What is the next step for the community? 2 Mary Shaw 1 Background Software architecture is concerned with the What is architecture? We all have experience of organization of software systems: the selection of systems of great conceptual clarity and integrity.
    [Show full text]
  • The Great Methodologies Debate: Part 1
    ACCESS TO THE EXPERTS The Journal of Information Technology Management December 2001 Vol. 14, No. 12 The Great Methodologies Debate: Part 1 Resolved “Today, a new debate rages: agile software Traditional methodologists development versus rigorous software are a bunch of process- development.” dependent stick-in-the-muds who’d rather produce flawless Jim Highsmith, Guest Editor documentation than a working system that meets business needs. Opening Statement Jim Highsmith 2 Rebuttal Lightweight, er, “agile” Agile Can Scale: Inventing and Reinventing methodologists are a bunch of SCRUM in Five Companies glorified hackers who are going to be in for a heck of a surprise Jeff Sutherland 5 when they try to scale up their “toys” into enterprise-level software. Agile Versus Traditional: Make Love, Not War! Robert L. Glass 12 Business Intelligence Methodologies: Agile with Rigor? Larissa T. Moss 19 Agility with the RUP Philippe Kruchten 27 Extreme Requirements Engineering Larry Wagner 34 Exclusion, Assumptions, and Misinterpretation: Foes of Collaboration Lou Russell 39 Opening Statement by Jim Highsmith In the early 1980s, I participated in rigorous software development. others be able to understand the one round of methodology debate. Agile approaches (Extreme similarities and differences and be Structured analysis and design Programming, Crystal Methods, able to apply the right mix to their champions such as Tom DeMarco, Lean Development, Feature-Driven own organization. Both the SEI and Ed Yourdon, and Tim Lister were Development, Adaptive Software Rational have made wonderful on one side of the debate, while Development, SCRUM, and contributions to software develop- data-driven design aficionados like Dynamic Systems Development ment, but it is important to Ken Orr, Jean-Dominique Warnier, Methodology) populate one camp.
    [Show full text]
  • Attachment A
    Board of Governors, State University System of Florida Request to Offer a New Degree Program (Please do not revise this proposal format without prior approval from Board staff) University of West Florida Fall 2018 University Submitting Proposal Proposed Implementation Term Hal Marcus College of Science and Engineering Computer Science Name of College(s) or School(s) Name of Department(s)/ Division(s) Bachelor of Science in Computer Computer Science Science Academic Specialty or Field Complete Name of Degree 11.0701 Proposed CIP Code The submission of this proposal constitutes a commitment by the university that, if the proposal is approved, the necessary financial resources and the criteria for establishing new programs have been met prior to the initiation of the program. Date Approved by the University Board of President Date Trustees Signature of Chair, Board of Date Provost and Senior Vice Date Trustees President Provide headcount (HC) and full-time equivalent (FTE) student estimates of majors for Years 1 through 5. HC and FTE estimates should be identical to those in Table 1 in Appendix A. Indicate the program costs for the first and the fifth years of implementation as shown in the appropriate columns in Table 2 in Appendix A. Calculate an Educational and General (E&G) cost per FTE for Years 1 and 5 (Total E&G divided by FTE). Projected Implementation Projected Program Costs Enrollment Timeframe (From Table 2) (From Table 1) E&G Contract E&G Auxiliary Total HC FTE Cost per & Grants Funds Funds Cost FTE Funds Year 1 150 96.87 3,241 313,960 0 0 313,960 Year 2 150 96.87 Year 3 160 103.33 Year 4 160 103.33 Year 5 170 109.79 3,426 376,087 0 0 376,087 1 Note: This outline and the questions pertaining to each section must be reproduced within the body of the proposal to ensure that all sections have been satisfactorily addressed.
    [Show full text]
  • The Circle Meta-Model
    Document:P2062R0 Revises: (original) Date: 01-11-2020 Audience: SG7 Authors: Wyatt Childers ([email protected]) ​ ​ Andrew Sutton ([email protected]) ​ ​ Faisal Vali ([email protected]) Daveed Vandevoorde ([email protected]) The Circle Meta-model Introduction During the November 2019 meeting in Belfast, some of the SG7 participants enthusiastically mentioned Circle1 as providing a more intuitive compile-time programming model and suggested that SG7 investigate overhauling the de-facto SG7 approach (P1240+P17332) to follow Circle's ​ ​ ​ general approach (to reflection and metaprogramming). This paper describes a framework for understanding metaprogramming systems and provides a high-level overview of some of Circle's main characteristics, contrasting them to P1240's ​ ​ approach augmented with an injection mechanism along the lines of P1717. ​ ​ While we appreciate some of Circle’s powerful capabilities, we also raise some concerns with its underlying model and provide arguments in support of P1240’s choices as being a more ​ ​ suitable fit for C++’s evolution. The Dimensions of Reflective Programming In P0633, we identified three “dimensions” of compile-time reflective metaprogramming: ​ ​ 1. Control: How are compile-time computations effected/interpreted? What are metaprograms? 2. Reflection: How are source constructs are made available as data for use in metaprograms? 3. Synthesis: How can “code” be generated from a programmatic representation? 1 https://www.circle-lang.org/ Circle is an impressive project: Sean Baxter developed a brand new ​ ​ C++17-like front end on top of LLVM, incorporating a variety of new compile-time capabilities that align closely with SG7's goals. For Sean’s motivations, see https://github.com/seanbaxter/circle/blob/master/examples/README.md#why-i-wrote-circle.
    [Show full text]