Proceedings of the Third International Valentin Turchin Workshop on Metacomputation

Total Page:16

File Type:pdf, Size:1020Kb

Proceedings of the Third International Valentin Turchin Workshop on Metacomputation Russian Academy of Sciences Ailamazyan Program Systems Institute Third International Valentin Turchin Workshop on Metacomputation Proceedings Pereslavl-Zalessky, Russia, July 59, 2012 Pereslavl-Zalessky ÓÄÊ 004.42(063) ÁÁÊ 22.18 T66 Third International Valentin Turchin Workshop on Metacomputa- tion // Proceedings of the Third International Valentin Turchin Workshop on Metacomputation. Pereslavl-Zalessky, Russia, July 5{9, 2012 / Edited by A. V. Klimov and S. A. Romamenko. | Pereslavl Zalessky: Publishing House \University of Pereslavl", 2012, 260 p. | ISBN 978-5{901795-28-6 Òðåòèé ìåæäóíàðîäíûé ñåìèíàð ïî ìåòàâû÷èñëåíèÿì èìåíè Â. Ô. Òóð- ÷èíà // Ñáîðíèê òðóäîâ Òðåòüåãî ìåæäóíàðîäíîãî ñåìèíàðà ïî ìåòàâû÷èñëåíèÿì èìåíè Â. Ô. Òóð÷èíà, ã. Ïåðåñëàâëü-Çàëåññêèé, 59 èþëÿ 2012 ã. / Ïîä ðåäàêöèåé À. Â. Êëèìîâà è Ñ. À. Ðîìàíåíêî. Ïåðåñëàâëü-Çàëåññêèé: Èçä-âî ¾Óíèâåðñèòåò ãîðîäà Ïåðåñëàâëÿ¿, 2012, 260 ñ. (àíãë). ISBN 978-5901795-28-6 c 2012 Ailamazyan Program Systems Institute of RAS Èíñòèòóò ïðîãðàììíûõ ñèñòåì èìåíè À. Ê. Àéëàìàçÿíà ÐÀÍ, 2012 ISBN 978-5901795-28-6 Valentin Turchin (1931{2010) Preface The proceedings contain the papers presented at the Third International Valentin Turchin Workshop on Metacomputation, META 2012, held on July 5{9, 2012 in Pereslavl-Zalessky. The workshop belongs to a series of workshops organized biannually by Aila- mazyan Program Systems Institute of the Russian Academy of Science and Ail- amazyan University of Pereslavl in an ancient Russian town Pereslavl-Zalessky. The first workshop in 2008 was blessed by the creator of supercompilation Valentin Turchin, who did not come personally, but was very glad to hear that supercompilation and other metacomputation topics attracted more and more attention of the computer science community. The second workshop in 2010 was held soon after Valentin Turchin's depar- ture and was devoted to his memory. At that time we observed a burst of work on supercompilation and related techniques. We are pleased to mention that since then two authors who presented their work at META 2010, Jason Reich and Ilya Klyuchnikov, have completed and defended their PhD theses on the topics of further development of supercompilation. From now on this series of workshops is named after Valentin Turchin. Metacomputation is a research area related to deep program analysis and transformation. The primary topics of the META 2012 workshop are multi-result supercompilation and distillation, which are further developments of supercompi- lation. Other papers and talks address program inversion and its logics, research into practical metacomputation and applications as well as metaprogramming in Scala. Multi-result supercompilation realizes the idea that while solving various problems by supercompilation from program optimization to proving properties of programs, there should be considered a set of residual programs equivalent to the source one, rather than a single one produced by using a fixed supercompi- lation strategy. { Ilya G. Klyuchnikov and Sergei A. Romanenko. Formalizing and Implement- ing Multi-Result Supercompilation. Explains the principles of multi-result supercompilation and discusses some details related to its implementation. { Sergei A. Grechanik. Overgraph Representation for Multi-Result Supercom- pilation. Suggests how to make multi-result supercompilation more efficient with the use of a compact representation of graphs of configurations. { Andrei V. Klimov, Ilya G. Klyuchnikov and Sergei A. Romanenko. Auto- matic Verification of Counter Systems via Domain-Specific Multi-Result Su- percompilation. Demonstrates how multi-result supercompilation improves previous results on application of supercompilation to verification of models expressed as counter systems. { Andrei V. Klimov. Why Multi-Result Supercompilation Matters: Case Study of Reachability Problems for Transition Systems. Revisits and analyses the method of solving the reachability problems by supercompilation and an- other method codenamed \Expand, Enlarge and Check" from the viewpoint of multi-result supercompilation. Distillation is a result of a metasystem transition from plain supercompilation to a hierarchy of program transformers. { Neil D. Jones and G. W. Hamilton. Superlinear Speedup by Program Trans- formation. Poses the problem of going beyond the classic positive supercom- pilation which can achieve only linear speedup and states the goal of finding an essential \inner core" of distillation, which gives rise to this improvement. { G. W. Hamilton. A Hierarchy of Program Transformers. Presents the main idea of distillation as building a hierarchy of program transformers in which the transformer at each level of the hierarchy builds on top of the transform- ers at lower levels. { Michael Dever and G. W. Hamilton. A Comparison of Program Transforma- tion Systems. Compares positive supercompilation, distillation and higher- level supercompilation. Program inversion is one of the favorite topics of metacomputation. { Nikolai N. Nepejvoda. Reversivity, Reversibility and Retractability. Analyses three essentially different but usually mixed notions of program invertibility and presents an outline of their logics. { Nikolay Shilov. Inverting Dynamic Programming. Considers Dynamic Pro- gramming as a case of inversion of a specific class of programs. Towards practical metacomputation and applications { Dimitur Krustev. A Metacomputation Toolkit for a Subset of F# and Its Application to Software Testing: Towards Metacomputation for the Masses. Presents an on-going experiment to develop a practical metacomputation toolkit for F# and also addresses a potential practical application | auto- matic generation of software test sets. { Neil D. Jones. Obfuscation by Partial Evaluation of Distorted Interpreters (Invited Talk). Investigates the possibility of program obfuscation by pro- gram specialization. { Gavin E. Mendel-Gleason and G. W. Hamilton. Development of the Pro- ductive Forces. Demonstrates how the productivity of a program, which is required in theorem provers such as Coq or Agda, can be derived by super- compiling the program and checking that the residual program satisfies a syntactic property referred to as guardedness condition. { Alexei Adamovich. Optimization of Imperative Functional Parallel Programs with Non-local Program Transformations. Presents a method of nonlocal op- timizing transformation of a typical parallel application solving massively parallel problem in the T-System being under development in Program Sys- tems Institute. Practical metaprogramming in Scala { Eugene Burmako and Martin Odersky. Scala Macros, a Technical Report. Presents a minimalistic macro system for Scala, integrated with the static type system of the host language. { Alexander A. Slesarenko. Lightweight Polytypic Staging of DSLs in Scala. Describes Lightweight Polytypic Staging, a new approach to the implemen- tation of deep embedding of DSLs in Scala, and demonstrates its usefulness for efficient implementation of nested data parallelism as flat data paral- lelism. The files of the papers and presentations of this and previous workshops on metacomputation as well as other information can be found at the META sites: { META 2008: http://meta2008.pereslavl.ru/ { META 2010: http://meta2010.pereslavl.ru/ { META 2012: http://meta2012.pereslavl.ru/ June 2012 Andrei Klimov Sergei Romanenko Organization Workshop Chair Sergei Abramov, Ailamazyan Program Systems Institute of RAS, Russia Program Committee Chairs Andrei Klimov, Keldysh Institute of Applied Mathematics of RAS, Russia Sergei Romanenko, Keldysh Institute of Applied Mathematics of RAS, Russia Program Committee Mikhail Bulyonkov, A. P. Ershov Institute of Informatics Systems of RAS, Russia Robert Gl¨uck, University of Copenhagen, Denmark Geoff Hamilton, Dublin City University, Republic of Ireland Arkady Klimov, Institute for Design Problems in Microelectronics of RAS, Russia Dimitur Krustev, IGE+XAO Balkan, Bulgaria Alexei Lisitsa, Liverpool University, Great Britain Gavin Mendel-Gleason, Dublin City University, Republic of Ireland Neil Mitchell, Standard Charted, United Kingdom Andrei Nemytykh, Ailamazyan Program Systems Institute of RAS, Russia Johan Nordlander, Lulea University of Technology, Sweden Peter Sestoft, IT University of Copenhagen, Denmark Alexander Slesarenko, Keldysh Institute of Applied Mathematics of RAS, Russia Morten Sørensen, Formalit, Denmark Walid Taha, Computer and Electrical Engineering Halmstad University, Sweden Invited Speaker Neil D. Jones, Professor Emeritus of the University of Copenhagen, Denmark Sponsoring Organizations Russian Academy of Sciences Russian Foundation for Basic Research (grant 12-07-06044-ã) Table of Contents Optimization of Imperative Functional Parallel Programs with Non-local Program Transformations ::::::::::::::::::::::::::::::::: 11 Alexei Adamovich Scala Macros, a Technical Report ::::::::::::::::::::::::::::::::::: 23 Eugene Burmako and Martin Odersky A Comparison of Program Transformation Systems ::::::::::::::::::: 33 Michael Dever and G. W. Hamilton Overgraph Representation for Multi-Result Supercompilation ::::::::::: 48 Sergei A. Grechanik A Hierarchy of Program Transformers ::::::::::::::::::::::::::::::: 66 G. W. Hamilton Obfuscation by Partial Evaluation of Distorted Interpreters (Invited Talk) 87 Neil D. Jones Superlinear Speedup by Program Transformation (Extended Abstract) :: 88 Neil D. Jones and G. W. Hamilton Why Multi-Result Supercompilation Matters: Case Study of Reachability Problems for Transition Systems ::::::::::::::::::::::::
Recommended publications
  • A Morphic Based Live Programming Graphical User Interface Implemented in Python
    Final Thesis PyMorphic - a Morphic based Live Programming Graphical User Interface implemented in Python by Anders Osterholm¨ LIU-KOGVET-D--06/12--SE 23th August 2006 PyMorphic - a Morphic based Live Programming Graphical User Interface implemented in Python Final Thesis performed at Human Centered Systems division in the Department of Computer and Information Science at Link¨oping University by Anders Osterholm¨ LIU-KOGVET-D--06/12--SE 23th August 2006 Examiner: Dr. Mikael Kindborg Department of Computer and Information Science at Link¨oping University Abstract Programming is a very complex activity that has many simultaneous learn- ing elements. The area of Live-programming offers possibilities for enhanc- ing programming work by speeding up the feedback loop and providing means for reducing the cognitive load on the working memory during the task. This could allow for better education for novice programmers. In this work a number of systems with a shared aim of providing educational tools for scholars from compulsory level to undergraduate college were studied. The common approach in the majority of the tools was to use program ab- stractions like tangible morphs, playing cards, capsules for code segments, and visual stories. For the user these abstractions and tools offer better focus on the constructive and creative side of programming because they relieve the user from the cumbersome work of writing program code, but they also sacrifice some of the expressiveness of a low-level language. A Live programming system, called PyMorphic, based on the Morphic model was built in the Python programming language. Two different so- lutions, based on the Wx toolkit for Python, were constructed and evalu- ated.
    [Show full text]
  • Feihong Hsu 217 S
    Feihong Hsu 217 S. Leavitt St., #1S Chicago, IL 60612 Cell: 847.219.6000, Home: 312.738.3179 [email protected] www.cs.uic.edu/~fhsu EDUCATION: University of Illinois at Chicago Expected graduation in May 2004 Master of Science in Computer Science GPA: 4.80/5.00 University of Illinois at Urbana-Champaign Graduated December 2000 Bachelor of Science in Mathematics & Computer Science GPA: 3.78/4.00 Courses : Software Engineering, Database Systems, User Interface Design, Computer Networks, Object-Oriented Languages & Environments, Computer Architecture, Numerical Methods, Combinatorial Algorithms, Programming Languages & Compilers, Artificial Intelligence EXPERIENCE: Teaching Assistant , Introduction to Programming , August 2002-December 2003 University of Illinois at Chicago, Computer Science Department http://logos.cs.uic.edu/102 • Teach up to 30 students in weekly lab sections (C/C++/Java). • Develop online material, quizzes, lab assignments. Assist in writing exam problems. • Proposed and implemented new hands-on approach to labs, causing students to become visibly more engaged in the material. • Designed assignment in which students programmed an image manipulation application which included convolution and distortion filters. Teaching Assistant , Computer Literacy , January 2004-Present University of Illinois at Chicago, Computer Science Department http://wiggins.cs.uic.edu/cs100 • Most duties are similar to above. • Propose course topics and determine direction of the course Research Assistant , Team Engineering Collaboratory (TEC) , May 2000-December 2001 University of Illinois at Urbana-Champaign, Speech Communications Department http://www.spcomm.uiuc.edu/Projects/TECLAB/ • Continued development of Blanche, a modeling and simulation environment for the study of social networks. • Managed two undergrad programmers. Maintained project web page and distributions.
    [Show full text]
  • Nordic ID Morphic User Manual
    Nordic ID Morphic User Manual Nordic ID International Headquarters Phone: +358 2 727 7700 Myllyojankatu 2A Fax: +358 2 727 7720 FI-24100 SALO Email: [email protected] FINLAND www.nordicid.com Table of Contents 3.3 Stylus and Touch Screen............................ 20 3.3.1 Input Panel: Soft Keyboard ................ 21 (i) A few words of caution..................................... 4 3.4 Rebooting your Nordic ID Morphic ............ 21 3.4.1 Soft-resetting your device................... 21 (ii) Trademarks......................................................... 4 3.4.2 Hard-resetting your device ................. 22 (iii) Safety precautions .......................................... 5 3.5 Registry ......................................................... 22 Laser beam ........................................................... 5 3.6 Non-volatile Storage.................................... 23 Note of caution about the laser beam in 3.7 Control Panel................................................ 23 European languages............................................ 6 3.7.1 Accessing Control Panel..................... 24 3.7.2 Opening Applet .................................... 24 Battery.................................................................... 7 3.7.3 Closing Applet ...................................... 24 Wall charger.......................................................... 8 3.7.4 Closing Control Panel ......................... 24 Medical devices.................................................... 8 3.8 Control Panel Applets
    [Show full text]
  • Pharo Morphic Application Framework
    Pharo Morphic Application Framework [email protected] Abstract The purpose of this framework is to have a comprehensive Pharo Application hierarchy to easily construct an enterprise ready application, that is scalable and built out as modules that link together. Morphic View Framework: Simplify creating Morphic UI with creating views from Components/ Parts / Modular UI construction: Create multiple pieces of independent views and compose it into one composite application view easily with: • Specs based View Construction • Simple Morphic View • Panels Composition: Complex GUI • API for: View attributes initializations intervention in intermediate steps • SupervisoryController aka MVP Presenter • Locale based translation integrated • LoggerManager to easily plugin Toothpick logger • Configuration based constants from external properties file / defaults code based.. • Named Prototype to optimize space/ time complexities as well as extension to dependency injection • Keyboard Event Handler at view level • Mouse Listener at a view level • Flexible Explicit View Construction Additionally incorporate existing/create standard frameworks, possibly as plugins or independent package, for: • Evolve a UI Builder that is a simple drag n drop capability of widgets • Complete RPC capabilites over XMLRPC for various purposes vis: • a JDBC connector along with an example complimentary Groovy Server backend / Groovy Client code References: 1. Various Smalltalk implementations: MVC architecture leading to the SupervisoryController architecture of MVP. 2. Spring Framework 3. General Enterprise Application Architecture patterns Motivation: Smalltalk is a beautiful and enjoyable language. Morphic is a wonderful but most under exploited UI framework that has immense potential to exponentially grow with contribution from the world of developers. Enterprise developers today are not experts, but casual programmers who depend on existing frameworks, patterns to adapt quickly.
    [Show full text]
  • Static and Runtime API Usage Analysis on .NET Diplomarbeit
    Fachbereich 4: Informatik Static and Runtime API Usage Analysis on .NET Diplomarbeit zur Erlangung des Grades eines Diplom-Informatikers im Studiengang Informatik vorgelegt von Rufus Linke Erstgutachter: Prof. Dr. Ralf Lämmel Institut für Informatik, AG Softwaresprachen Zweitgutachter: Dipl. Math. Ekaterina Pek Institut für Informatik, AG Softwaresprachen Koblenz, im März 2011 IchERKLÄRUNG versichere, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Ja Nein Mit der Einstellung der Arbeit in die Bibliothek bin ich einver- standen. Der Veröffentlichung dieser Arbeit im Internet stimme ich zu. ........................................................................................ (Ort, Datum) (Unterschrift) TheABSTRACT reuse of existing software libraries and frameworks, commonly referenced by their API, has generally been established in modern software development. But as software evolves, so do APIs and thus various reasons for an existing project to migrate from one API to another can occur. To support research on such API migration, this work gathers fundamental API usage data from real world projects. Such data can be helpful to identify the most significant aspects of an API and those that need to be treated cautiously when performing transformations. The present work uses a corpus of 18 manually selected and mature open-source soft- ware projects for this purpose. The analysis methods are driven by both static and dy- namic approaches. A bytecode-based process statically analyzes the structure of a soft- ware to discover its external API feature usages. Then, a dynamic analysis takes advan- tage of instrumentation to collect data about the execution of the static feature references as well as additional information that is only available at runtime like the type of the receiver object of a virtual method call.
    [Show full text]
  • The Road to Live Programming: Insights from the Practice
    The Road to Live Programming: Insights From the Practice Juraj Kubelka Romain Robbes Alexandre Bergel Pleiad @ DCC, University of Chile SwSE @ Free University of Pleiad @ DCC, University of Chile Santiago, Chile Bozen-Bolzano Santiago, Chile Bozen-Bolzano, Italy ABSTRACT with LIVE 2013 being the most popular workshop at ICSE 2013 [5] Live Programming environments allow programmers to get feed- (see Section 2 for background on Live Programming). back instantly while changing software. Liveness is gaining atten- While some see Live Programming as “the future of program- tion among industrial and open-source communities; several IDEs ming”, some of its proponents have more concrete and immediate offer high degrees of liveness. While several studies looked athow issues. Microsoft Research’s Sean McDirmid [6] wrote: “The biggest programmers work during software evolution tasks, none of them challenge instead is live programming’s usefulness: how can its consider live environments. We conduct such a study based on an feedback significantly improve programmer performance?” analysis of 17 programming sessions of practitioners using Pharo, While the full vision of Live Programming is yet to be imple- a mature Live Programming environment. The study is comple- mented and made available at scale to practitioners, many elements mented by a survey and subsequent analysis of 16 programming of it are in use on a daily basis in some developer communities. sessions in additional languages, e.g., JavaScript. We document the In particular, many of the Live Programming concepts have been approaches taken by developers during their work. We find that present for decades in the Smalltalk and Lisp development environ- some liveness features are extensively used, and have an impact on ments; Smalltalk and Lisp feature high degrees of liveness.
    [Show full text]
  • Heapvision:Debugging by Interactive Heap Navigation
    HeapVision:Debugging by Interactive Heap Navigation Jibin Ou Master’s Thesis March 2014 Supervisor: Prof. Dr. Otmar Hilliges, Prof. Dr. Martin Vechev Co-supervisor: Prof. Dr. Jan Borchers Abstract With the proliferation of online source code repositories such as GitHub and BitBucket, pro- grammers have instant access to countless code examples. With the availability of these re- sources the focus in software development shifts away from writing code towards understand- ing source code. Many common algorithms, that see a lot of reuse across different problem domains, involve complex manipulations of data structures and hence the program’s heap (e.g., sorting algorithms). Understanding these manipulations and the effect onto the heap’s struc- ture is a cognitively demanding and complex task. However, despite the importance of such algorithms for many applications, there is little tool support build into current IDEs (Integrated development environment) to help programmers in understanding and debugging such algo- rithms and data structures. In particular, there currently does not exist any sophisticated tool to visually explore the heap structure and to interactively experience the impact of the algorithms instructions on the heap throughout the execution of the program. In the course of this thesis we have developed a tool called HeapVision, which allows for in- spection of and interaction with dynamic visual representations of the heap structure. The interface allows programmers to more easily understand how a data structure and it’s content are modified by a particular sequence of instructions. Furthermore, we have developed a novel pen and touch based interface that allows developers to more directly interact with the running process and to concentrate on the essence of the program.
    [Show full text]
  • Neuromorphic Vision: Sensors to Event-Based Algorithms Q2 7
    Journal Code Article ID Dispatch: 15-FEB-19 CE: D, Subramani WIDM 1310 No. of Pages: 34 ME: Received: 6 September 2018 Revised: 23 January 2019 Accepted: 24 January 2019 DOI: 10.1002/widm.1310 1 2 3 ADVANCED REVIEW 4 5 6 Neuromorphic vision: Sensors to event-based algorithms Q2 7 8 1,2 3 2 9 A. Lakshmi | Anirban Chakraborty | Chetan S. Thakur Q1 Q3 10 11 1Centre for Artificial Intelligence and Robotics, Regardless of the marvels brought by the conventional frame-based cameras, they 12 Defence Research and Development Organization, Bangalore, India have significant drawbacks due to their redundancy in data and temporal latency. 13 2Department of Electronic Systems Engineering, This causes problem in applications where low-latency transmission and high- 14 Indian Institute of Science, Bangalore, India speed processing are mandatory. Proceeding on this line of thought, the neurobio- 15 3 Department of Computational and Data Sciences, logical principles of the biological retina have been adapted to accomplish data 16 Indian Institute of Science, Bangalore, India Q4 sparsity and high dynamic range at the pixel level. These bio-inspired neuro- 17 Correspondence morphic vision sensors alleviate the more serious bottleneck of data redundancy by 18 Chetan Singh Thakur, Department of Electronic Systems Engineering, Indian Institute of Science, responding to changes in illumination rather than to illumination itself. This paper 19 Bangalore 560012, India. reviews in brief one such representative of neuromorphic sensors, the activity- 20 Email: [email protected] driven event-based vision sensor, which mimics human eyes. Spatio-temporal 21 encoding of event data permits incorporation of time correlation in addition to spa- 22 tial correlation in vision processing, which enables more robustness.
    [Show full text]
  • Towards Left Duff S Mdbg Holt Winters Gai Incl Tax Drupal Fapi Icici
    jimportneoneo_clienterrorentitynotfoundrelatedtonoeneo_j_sdn neo_j_traversalcyperneo_jclientpy_neo_neo_jneo_jphpgraphesrelsjshelltraverserwritebatchtransactioneventhandlerbatchinsertereverymangraphenedbgraphdatabaseserviceneo_j_communityjconfigurationjserverstartnodenotintransactionexceptionrest_graphdbneographytransactionfailureexceptionrelationshipentityneo_j_ogmsdnwrappingneoserverbootstrappergraphrepositoryneo_j_graphdbnodeentityembeddedgraphdatabaseneo_jtemplate neo_j_spatialcypher_neo_jneo_j_cyphercypher_querynoe_jcypherneo_jrestclientpy_neoallshortestpathscypher_querieslinkuriousneoclipseexecutionresultbatch_importerwebadmingraphdatabasetimetreegraphawarerelatedtoviacypherqueryrecorelationshiptypespringrestgraphdatabaseflockdbneomodelneo_j_rbshortpathpersistable withindistancegraphdbneo_jneo_j_webadminmiddle_ground_betweenanormcypher materialised handaling hinted finds_nothingbulbsbulbflowrexprorexster cayleygremlintitandborient_dbaurelius tinkerpoptitan_cassandratitan_graph_dbtitan_graphorientdbtitan rexter enough_ram arangotinkerpop_gremlinpyorientlinkset arangodb_graphfoxxodocumentarangodborientjssails_orientdborientgraphexectedbaasbox spark_javarddrddsunpersist asigned aql fetchplanoriento bsonobjectpyspark_rddrddmatrixfactorizationmodelresultiterablemlibpushdownlineage transforamtionspark_rddpairrddreducebykeymappartitionstakeorderedrowmatrixpair_rddblockmanagerlinearregressionwithsgddstreamsencouter fieldtypes spark_dataframejavarddgroupbykeyorg_apache_spark_rddlabeledpointdatabricksaggregatebykeyjavasparkcontextsaveastextfilejavapairdstreamcombinebykeysparkcontext_textfilejavadstreammappartitionswithindexupdatestatebykeyreducebykeyandwindowrepartitioning
    [Show full text]
  • An EMF-Like UML Generator for C++
    An EMF-like UML Generator for C++ Sven Jager,¨ Ralph Maschotta, Tino Jungebloud, Alexander Wichmann and Armin Zimmermann Systems and Software Engineering Group, Computer Science and Automation Department, Technische Universitat¨ Ilmenau, Ilmenau, Germany Keywords: Model based Software Development, Code Generation, Meta Modeling, C++, UML, MOF, Ecore. Abstract: Model-driven architecture is a well-known approach for the development of complex software systems. The most famous tool chain is provided by Eclipse with the tools of the Eclipse modeling project. Like Eclipse itself, these tools are based on Java. However, there are numerous legacy software packages written in C++, which often use only an implicit meta-model. A real C++ implementation of this meta-model would be necessary instead to be used at run time. This paper presents a generator for C++ to create the classes, meta-model packages, and factories to realize modeling, transformation, validation, and comparison of UML models. It gives an overview of its workflow and major challenges. Moreover, a comparison between Java and C++ implementations is given, considering different benchmarks. 1 INTRODUCTION et al., 2013). Such a C++ meta-model could be used, for instance, to configure dialog properties at runtime, to realize a runtime Object Constraint Lan- The Model Driven Architecture (MDA) approach as guage (OCL) (OMG, 2012) for the checking of model defined by the Object Management Group (OMG) elements, or to execute a behavior which is described is a well-known family of standards which unifies by activity diagrams. every step of the development of an application from Platform-Independent Model (PIM) through There are mainly two possibilities to create such Platform-Specific Models (PSM) to generated code meta-model representations.
    [Show full text]
  • An Introduction to Morphic: the Squeak User Interface Framework an Introduction to Morphic: the Squeak User Interface Framework
    1 An Introduction to Morphic: The Squeak User Interface Framework An Introduction to Morphic: The Squeak User Interface Framework John Maloney Walt Disney Imagineering Introduction Morphic is a user interface framework that makes it easy and fun to build lively interactive user interfaces. Morphic handles most of the drudgery of display updating, event dispatching, drag and drop, animation, and automatic layout, thus freeing the programmer to focus on design instead of mechanics. Some user interface frameworks require a lot of boilerplate code to do even simple things. In morphic, a little code goes a long way, and there is hardly any wasted effort. Morphic facilitates building user interfaces at many levels. At its most basic level, morphic makes it easy to create custom widgets. For example, a math teacher might create a morph that continuously shows the x and y components of a vector as the head of the vector is dragged around (Figure 1). To try this for yourself, evaluate “HeadingMorph new openInWorld” in a workspace. The HeadingMorph widget can be implemented in just 5 methods, two for display, two for mouse input, and one for initialization. (The version in the Squeak image includes five additional methods that are not essential.) The process of creating a new morph is easy, because the different aspects of its behavior—its appearance, its response to user inputs, its menu, its drag and drop behavior, and so forth—can be added one at a time. Since the class Morph implements reasonable defaults for every aspect of morph behavior, one can start with an empty subclass of Morph and extend its behavior incrementally, testing along the way.
    [Show full text]
  • Software Independence Revisited
    Chapter 1 Software Independence Revisited Ronald L. Rivest Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology (MIT) Cambridge, MA 02139 [email protected] Madars Virza Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology (MIT) Cambridge, MA 02139 [email protected] CONTENTS 1.1 Introduction ....................................................... 4 1.2 Problem: Software complexity of voting systems .................... 4 1.2.1 The difficulty of evaluating complex software for errors ..... 5 1.2.2 The need for software-independent approaches ............. 6 1.3 Definition and rationale for software-independence .................. 6 1.3.1 Refinements and elaborations of software-independence .... 7 1.3.2 Examples of software-independent approaches ............. 8 1.4 How does one test for software-independence? ...................... 9 1.5 Discussion ......................................................... 10 1.5.1 Implications for testing and certification .................... 10 1.5.2 Related issues ............................................. 10 3 4 ⌅ Real-World Electronic Voting: Design, Analysis and Deployment 1.6 Evidence-based elections ........................................... 11 1.7 The use of a public ledger .......................................... 11 1.8 End-to-end verifiable voting systems ............................... 12 1.9 Program verification ............................................... 15 1.10 Verifiable computation and zero-knowledge proofs .................
    [Show full text]