Software Visualization in Prolog

Total Page:16

File Type:pdf, Size:1020Kb

Software Visualization in Prolog Software Visualization in Prolog Calum A. McK. Grant Queens’ College, Cambridge Dissertation submitted for the degree of Doctor of Philosphy December 1999 Copyright ­c Calum Grant 1999. Vmax and SVT are copyright ­c Calum Grant 1999. All rights reserved. Permission is hereby granted to distribute this document without modifica- tion in any format or electronic storage system. Declaration This dissertation is the result of my own work and includes nothing which is the outcome of work done in collaboration. I hereby declare that my dissertation/thesis entitled Software Visualization in Prolog is not substantially the same as any that I have submitted for a degree or diploma or other qualification at any other University. I further state that no part of my dissertation/thesis has already been or is being concurrently submitted for any such degree, diploma or other qualification. This dissertation is approximately 44 000 words long, excluding appendices. Acknowledgments Thanks to everyone who has helped me complete this work, and in particular Peter Robinson my supervisor, the EPSRC for funding this work, the proof-readers, and all members of the Rainbow Group for their help and ideas. Thanks also to the departmental secretaries and to my parents. Trademarks AVS Express is a registered trademark of Advanced Visual Systems, Inc. Borland is a registered trademark of Inprise Corp. C++ Builder is a trademark of Inprise Corp. Delphi is a trademark of Inprise Corp. Genitor is a registered trademark of Genitor Corp. IBM Visualization Data Explorer is a trademark of International Business Machines, Inc. Java is a trademark of Sun Microsystems, Inc. LabVIEW is a trademark of National Instruments, Corp. Linux is a registered trademark of Linus Torvalds. Microsoft is a registered trademark of Microsoft Corp. Motif is a trademark of Open Software Foundation, Inc. OpenGL is a registered trademark of Silicon Graphics, Inc. Open Inventor is a trademark of Silicon Graphics, Inc. Pentium is a trademark of Intel Corp. Prograph is a trademark of Pictorius International. UNIX is a trademark of X/Open Company, Ltd. Visual Basic is a trademark of Microsoft Corp. Visual FoxPro is a trademark of Microsoft Corp. Visual Studio is a trademark of Microsoft Corp. Windows is a trademark of Microsoft Corp. X Window System is a trademark of Massachusetts Institute of Technology. All other trademarks are the properties of their respective owners. 2 Software Visualization in Prolog Calum A. McK. Grant Abstract Software visualization (SV) uses computer graphics to communicate the structure and behaviour of complex software and algorithms. One of the important issues in this field is how to specify SV, because existing systems are very cumbersome to specify and implement, which limits their effectiveness and hinders SV from being integrated into professional software development tools. In this dissertation the visualization process is decomposed into a series of formal mappings, which provides a formal foundation, and allows separate aspects of visu- alization to be specified independently. The first mapping specifies the information content of each view. The second mapping specifies a graphical representation of the information, and a third mapping specifies the graphical components that make up the graphical representation. By combining different mappings, completely dif- ferent views can be generated. The approach has been implemented in Prolog to provide a very high level speci- fication language for information visualization, and a knowledge engineering envi- ronment that allows data queries to tailor the information in a view. The output is generated by a graphical constraint solver that assembles the graphical components into a scene. This system provides a framework for SV called Vmax. Source code and run-time data are analyzed by Prolog to provide access to information about the program structure and run-time data for a wide range of highly interconnected browsable views. Different views and means of visualization can be selected from menus. An automatic legend describes each view, and can be interactively modified to cus- tomize how data is presented. A text window for editing source code is synchronized with the graphical view. Vmax is a complete Java development environment and end user SV system. Vmax compares favourably to existing SV systems in many taxonometric criteria, including automation, scope, information content, graphical output form, specifica- tion, tailorability, navigation, granularity and elision control. The performance and scalability of the new approach is very reasonable. We conclude that Prolog provides a formal and high level specification language that is suitable for specifying all aspects of a SV system. 3 4 Contents 1 Introduction 11 1.1 Aims . ....................................... 12 1.2 Work Done . ................................... 13 1.3 Results . ....................................... 14 1.4 Contribution . ................................... 14 1.5 Notation and Typography . ............................ 16 1.6 Dissertation Overview . ............................ 16 2 Previous Work 17 2.1 Basic Definitions . ............................ 17 2.2 Benefits of Software Visualization . ........................ 18 2.3 Taxonomies of Software Visualization . .................... 19 2.4 Software Visualization Systems . ........................ 22 2.4.1 Development Tools . ............................ 22 2.4.2 Visual Programming Systems . .................... 25 2.4.3 Code Visualization Systems ........................ 25 2.4.4 Algorithm Animation Systems . .................... 27 2.4.5 Run-time Visualization Systems . .................... 31 2.4.6 Architectures . ............................ 32 2.5 Specification . ................................... 33 2.5.1 Visual Language Theory . ........................ 33 2.5.2 Numerical Data . ............................ 34 2.5.3 Specification Languages for SV . .................... 34 2.6 Information Visualization . ............................ 34 2.6.1 Perception . ............................ 35 2.6.2 Representations . ............................ 35 2.6.3 Architectures . ............................ 36 2.6.4 Graphical Layout . ............................ 36 2.7 Research Directions . ............................ 36 2.8 Conclusions . ................................... 37 3 A Model of Information Visualization 39 3.1 Introduction . ................................... 39 3.2 Representing Data . ............................ 41 3.3 Specifying View Content . ............................ 42 3.4 Specifying Visual Content . ............................ 44 3.5 A Visual Type System . ............................ 46 5 6 CONTENTS 3.6 Specifying Graphical Constraints . ..................... 48 3.7 Generating Views . ................................ 49 3.8 Specifying Interaction ................................ 50 3.8.1 Actions . ................................ 50 3.8.2 Reactions . ................................ 51 3.9 Chapter Summary . ................................ 52 4 Semantic Visualization Tool 53 4.1 Introduction . .................................... 53 4.2 Architecture . .................................... 54 4.3 Running SVT .................................... 54 4.4 View Manipulation . ................................ 55 4.5 Generating Visualizations . ............................ 56 4.5.1 Acquiring the Visual Primitives . ..................... 57 4.5.2 Generating the Scene Graph . ..................... 58 4.5.3 Structuring The Scene Graph . ..................... 58 4.5.4 Graphical Layout . ............................ 60 4.5.5 Graphical Layout Algorithms . ..................... 60 4.6 Expanding the Graphical Vocabulary . ..................... 62 4.6.1 Specifying Visual Objects . ..................... 64 4.7 Interaction . .................................... 69 4.7.1 Disambiguating Actions . ..................... 70 4.7.2 Menus .................................... 71 4.7.3 Navigation . ................................ 71 4.7.4 Selecting Graphical Form . ..................... 72 4.7.5 Modifying the Action Relation . ..................... 73 4.8 The Legend . .................................... 75 4.8.1 Displaying the Legend . ..................... 76 4.8.2 Modifying the Visualization Relation . ................. 76 4.9 The Bookmarks . ................................ 77 4.10 The Preview Window ................................ 77 4.11 Chapter Summary . ................................ 79 5 A Tool for Software Visualization 81 5.1 Introduction . .................................... 81 5.2 Architecture . .................................... 82 5.3 Text Processing . ................................ 82 5.4 Directory Visualization . ............................ 84 5.4.1 MIME Types ................................ 88 5.5 Analyzing Java Source Code ............................ 88 5.5.1 Constructing the Program Database . ................. 88 5.5.2 Analyzing the Program Database . ..................... 90 5.6 Java Visualization . ................................ 91 5.6.1 Visualizing Files, Classes and Packages . ................. 91 5.6.2 Visualizing Cross-references . ..................... 99 5.6.3 Visualizing Methods ............................104 CONTENTS 7 5.7 Analyzing Run-time Data . ............................113 5.7.1 Adding Trace Points ............................113 5.7.2 Generating the Trace File . ........................113 5.7.3 Reading the Trace File . ........................115 5.8
Recommended publications
  • ALGORITHMS for ARTIFICIAL INTELLIGENCE in Apl2 By
    MAY 1986 REVISED Nov­ 1986 TR 03·281 ALGORITHMS FOR ARTIFICIAL INTELLIGENCE IN APl2 By DR­ JAMES A· BROWN ED EUSEBI JANICE COOK lEO H­ GRONER INTERNATIONAL BUSINESS MACHINES CORPORATION GENERAL PRODUCTS DIVISION SANTA TERESA LABORATORY SAN JOSE~ CALIFORNIA ABSTRACT Many great advances in science and mathematics were preceded by notational improvements. While a g1yen algorithm can be implemented in any general purpose programming language, discovery of algorithms is heavily influenced by the notation used to Lnve s t Lq a t.e them. APL2 c o nce p t.ua Lly applies f unc t Lons in parallel to arrays of data and so is a natural notation in which to investigate' parallel algorithins. No c LaLm is made that APL2 1s an advance in notation that will precede a breakthrough in Artificial Intelligence but it 1s a new notation that allows a new view of the pr-obl.ems in AI and their solutions. APL2 can be used ill problems tractitionally programmed in LISP, and is a possible implementation language for PROLOG-like languages. This paper introduces a subset of the APL2 notation and explores how it can be applied to Artificial Intelligence. 111 CONTENTS Introduction. • • • • • • • • • • 1 Part 1: Artificial Intelligence. • • • 2 Part 2: Logic... · • 8 Part 3: APL2 ..... · 22 Part 4: The Implementations . · .40 Part 5: Going Beyond the Fundamentals .. • 61 Summary. .74 Conclus i ons , . · .75 Acknowledgements. • • 76 References. · 77 Appendix 1 : Implementations of the Algorithms.. 79 Appendix 2 : Glossary. • • • • • • • • • • • • • • • • 89 Appendix 3 : A Summary of Predicate Calculus. · 95 Appendix 4 : Tautologies. · 97 Appendix 5 : The DPY Function.
    [Show full text]
  • Techniques for Visualization and Interaction in Software Architecture Optimization
    Institute of Software Technology Reliable Software Systems University of Stuttgart Universitätsstraße 38 D–70569 Stuttgart Masterarbeit Techniques for Visualization and Interaction in Software Architecture Optimization Sebastian Frank Course of Study: Softwaretechnik Examiner: Dr.-Ing. André van Hoorn Supervisor: Dr.-Ing. André van Hoorn Dr. J. Andrés Díaz-Pace, UNICEN, ARG Dr. Santiago Vidal, UNICEN, ARG Commenced: March 25, 2019 Completed: September 25, 2019 CR-Classification: D.2.11, H.5.2, H.1.2 Abstract Software architecture optimization aims at improving the architecture of software systems with regard to a set of quality attributes, e.g., performance, reliability, and modifiability. However, particular tasks in the optimization process are hard to automate. For this reason, architects have to participate in the optimization process, e.g., by making trade-offs and selecting acceptable architectural proposals. The existing software architecture optimization approaches only offer limited support in assisting architects in the necessary tasks by visualizing the architectural proposals. In the best case, these approaches provide very basic visualizations, but often results are only delivered in textual form, which does not allow for an efficient assessment by humans. Hence, this work investigates strategies and techniques to assist architects in specific use cases of software architecture optimization through visualization and interaction. Based on this, an approach to assist architects in these use cases is proposed. A prototype of the proposed approach has been implemented. Domain experts solved tasks based on two case studies. The results show that the approach can assist architects in some of the typical use cases of the domain. Con- ducted time measurements indicate that several hundred architectural proposals can be handled.
    [Show full text]
  • Utgåvenoteringar För Fedora 11
    Fedora 11 Utgåvenoteringar Utgåvenoteringar för Fedora 11 Dale Bewley Paul Frields Chitlesh Goorah Kevin Kofler Rüdiger Landmann Ryan Lerch John McDonough Dominik Mierzejewski David Nalley Zachary Oglesby Jens Petersen Rahul Sundaram Miloslav Trmac Karsten Wade Copyright © 2009 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. 1 Utgåvenoteringar For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
    [Show full text]
  • Multi-Touch Table User Interfaces for Co-Located Collaborative Software Visualization
    Multi-touch Table User Interfaces for Co-located Collaborative Software Visualization Craig Anslow School of Engineering and Computer Science Victoria University of Wellington, New Zealand [email protected] ABSTRACT Integrated Development Environments (IDE) like Eclipse, Most software visualization systems and tools are designed and the web. These design decisions do not allow users in from a single-user perspective and are bound to the desktop, a co-located environment (within the same room) to easily IDEs, and the web. Few tools are designed with sufficient collaborate, communicate, or be aware of each others activi- support for the social aspects of understanding software such ties to analyse software [19]. Multi-touch user interfaces are as collaboration, communication, and awareness. This re- an interactive technique that allows single or multiple users search aims at supporting co-located collaborative software to collaboratively control graphical displays with more than analysis using software visualization techniques and multi- one finger, mouse pointer, or tangible object on various kinds touch tables. The research will be conducted via qualitative of surfaces and devices. user experiments which will inform the design of collabora- tive software visualization applications and further our un- The goal of this research is to investigate whether multi- derstanding of how software developers work together with touch interaction techniques are more effective for co-located multi-touch user interfaces. collaborative software visualization than existing single user desktop interaction techniques. The research will be con- ACM Classification: H1.2 [User/Machine Systems]: Hu- ducted by user experiments to observe how users interact man Factors; H5.2 [Information interfaces and presentation]: and collaborate with a multi-touch software visualization ap- User Interfaces.
    [Show full text]
  • Event Management for the Development of Multi-Agent Systems Using Logic Programming
    Event Management for the Development of Multi-agent Systems using Logic Programming Natalia L. Weinbachy Alejandro J. Garc´ıa [email protected] [email protected] Laboratorio de Investigacio´n y Desarrollo en Inteligencia Artificial (LIDIA) Departamento de Ciencias e Ingenier´ıa de la Computacio´n Universidad Nacional del Sur Av. Alem 1253, (8000) Bah´ıa Blanca, Argentina Tel: (0291) 459-5135 / Fax: (0291) 459-5136 Abstract In this paper we present an extension of logic programming including events. We will first describe our proposal for specifying events in a logic program, and then we will present an implementation that uses an interesting communication mechanism called \signals & slots". The idea is to provide the application programmer with a mechanism for handling events. In our design we consider how to define an event, how to indicate the occurrence of an event, and how to associate an event with a service predicate or handler. Keywords: Event Management. Event-Driven Programming. Multi-agent Systems. Logic Programming. 1 Introduction An event represents the occurrence of something interesting for a process. Events are useful in those applications where pieces of code can be executed automatically when some condition is true. Therefore, event management is helpful to develop agents that react to certain occurrences produced by changes in the environment or caused by another agents. Our aim is to support event management in logic programming. An event can be emitted as a result of the execution of certain predicates, and will result in the execution of the service predicate or handler. For example, when programming a robot behaviour, an event could be associated with the discovery of an obstacle in its trajectory; when this event occurs (generated by some robot sensor), the robot might be able to react to it executing some kind of evasive algorithm.
    [Show full text]
  • A Systematic Literature Review of Software Visualization Evaluation T ⁎ L
    The Journal of Systems & Software 144 (2018) 165–180 Contents lists available at ScienceDirect The Journal of Systems & Software journal homepage: www.elsevier.com/locate/jss A systematic literature review of software visualization evaluation T ⁎ L. Merino ,a, M. Ghafaria, C. Anslowb, O. Nierstrasza a Software Composition Group, University of Bern, Switzerland b School of Engineering and Computer Science, Victoria University of Wellington, New Zealand ARTICLE INFO ABSTRACT Keywords: Context:Software visualizations can help developers to analyze multiple aspects of complex software systems, but Software visualisation their effectiveness is often uncertain due to the lack of evaluation guidelines. Evaluation Objective: We identify common problems in the evaluation of software visualizations with the goal of for- Literature review mulating guidelines to improve future evaluations. Method:We review the complete literature body of 387 full papers published in the SOFTVIS/VISSOFT con- ferences, and study 181 of those from which we could extract evaluation strategies, data collection methods, and other aspects of the evaluation. Results:Of the proposed software visualization approaches, 62% lack a strong evaluation. We argue that an effective software visualization should not only boost time and correctness but also recollection, usability, en- gagement, and other emotions. Conclusion:We call on researchers proposing new software visualizations to provide evidence of their effec- tiveness by conducting thorough (i) case studies for approaches that must be studied in situ, and when variables can be controlled, (ii) experiments with randomly selected participants of the target audience and real-world open source software systems to promote reproducibility and replicability. We present guidelines to increase the evidence of the effectiveness of software visualization approaches, thus improving their adoption rate.
    [Show full text]
  • Visualization of the Static Aspects of Software: a Survey Pierre Caserta, Olivier Zendra
    Visualization of the Static aspects of Software: a survey Pierre Caserta, Olivier Zendra To cite this version: Pierre Caserta, Olivier Zendra. Visualization of the Static aspects of Software: a survey. IEEE Trans- actions on Visualization and Computer Graphics, Institute of Electrical and Electronics Engineers, 2011, 17 (7), pp.913-933. 10.1109/TVCG.2010.110. inria-00546158v2 HAL Id: inria-00546158 https://hal.inria.fr/inria-00546158v2 Submitted on 28 Oct 2011 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 17, NO. 7, JULY 2011 913 Visualization of the Static Aspects of Software: A Survey Pierre Caserta and Olivier Zendra Abstract—Software is usually complex and always intangible. In practice, the development and maintenance processes are time- consuming activities mainly because software complexity is difficult to manage. Graphical visualization of software has the potential to result in a better and faster understanding of its design and functionality, thus saving time and providing valuable information to improve its quality. However, visualizing software is not an easy task because of the huge amount of information comprised in the software.
    [Show full text]
  • A View of the Fifth Generation and Its Impact
    AI Magazine Volume 3 Number 4 (1982) (© AAAI) Techniques and Methodology A View of the Fifth Generation And Its Impact David H. D. Warren SRI International Art$icial Intellagence Center Computer Scaence and Technology Davzsaon Menlo Park, Calafornia 94025 Abstract is partly secondhand. I apologise for any mistakes or misin- terpretations I may therefore have made. In October 1981, .Japan announced a national project to develop highly innovative computer systems for the 199Os, with the title “Fifth Genera- tion Computer Systems ” This paper is a personal view of that project, The fifth generation plan its significance, and reactions to it. In late 1978 the Japanese Ministry of International Trade THIS PAPER PRESENTS a personal view of the <Japanese and Industry (MITI) gave ETL the task of defining a project Fifth Generation Computer Systems project. My main to develop computer syst,ems for the 199Os, wit,h t,he title sources of information were the following: “Filth Generation.” The prqject should avoid competing with IBM head-on. In addition to the commercial aspects, The final proceedings of the Int,ernational Conference it should also enhance Japan’s international prestige. After on Fifth Generat,ion Computer Systems, held in Tokyo in October 1981, and the associated Fifth Generation various committees had deliberated, it was finally decided research reports distributed by the Japan Information to actually go ahead with a “Fifth Generation Computer Processing Development Center (JIPDEC); Systems” project in 1981. The project formally started in April, 1982. Presentations by Koichi Furukawa of Electrotechnical The general technical content of the plan seems to be Laboratory (ETL) at the Prolog Programming Environ- largely due to people at ETL and, in particular, to Kazuhiro ments Workshop, held in Linkoping, Sweden, in March 1982; Fuchi.
    [Show full text]
  • CSC384: Intro to Artificial Intelligence  Brief Introduction to Prolog
    CSC384: Intro to Artificial Intelligence Brief Introduction to Prolog Part 1/2: Basic material Part 2/2 : More advanced material 1 Hojjat Ghaderi and Fahiem Bacchus, University of Toronto CSC384: Intro to Artificial Intelligence Resources Check the course website for several online tutorials and examples. There is also a comprehensive textbook: Prolog Programming for Artificial Intelligence by Ivan Bratko. 2 Hojjat Ghaderi and Fahiem Bacchus, University of Toronto What‟s Prolog? Prolog is a language that is useful for doing symbolic and logic-based computation. It‟s declarative: very different from imperative style programming like Java, C++, Python,… A program is partly like a database but much more powerful since we can also have general rules to infer new facts! A Prolog interpreter can follow these facts/rules and answer queries by sophisticated search. Ready for a quick ride? Buckle up! 3 Hojjat Ghaderi and Fahiem Bacchus, University of Toronto What‟s Prolog? Let‟s do a test drive! Here is a simple Prolog program saved in a file named family.pl male(albert). %a fact stating albert is a male male(edward). female(alice). %a fact stating alice is a female female(victoria). parent(albert,edward). %a fact: albert is parent of edward parent(victoria,edward). father(X,Y) :- %a rule: X is father of Y if X if a male parent of Y parent(X,Y), male(X). %body of above rule, can be on same line. mother(X,Y) :- parent(X,Y), female(X). %a similar rule for X being mother of Y A fact/rule (statement) ends with “.” and white space ignored read :- after rule head as “if”.
    [Show full text]
  • An Architecture for Making Object-Oriented Systems Available from Prolog
    An Architecture for Making Object-Oriented Systems Available from Prolog Jan Wielemaker and Anjo Anjewierden Social Science Informatics (SWI), University of Amsterdam, Roetersstraat 15, 1018 WB Amsterdam, The Netherlands, {jan,anjo}@swi.psy.uva.nl August 2, 2002 Abstract It is next to impossible to develop real-life applications in just pure Prolog. With XPCE [5] we realised a mechanism for integrating Prolog with an external object-oriented system that turns this OO system into a natural extension to Prolog. We describe the design and how it can be applied to other external OO systems. 1 Introduction A wealth of functionality is available in object-oriented systems and libraries. This paper addresses the issue of how such libraries can be made available in Prolog, in particular libraries for creating user interfaces. Almost any modern Prolog system can call routines in C and be called from C (or other impera- tive languages). Also, most systems provide ready-to-use libraries to handle network communication. These primitives are used to build bridges between Prolog and external libraries for (graphical) user- interfacing (GUIs), connecting to databases, embedding in (web-)servers, etc. Some, especially most GUI systems, are object-oriented (OO). The rest of this paper concentrates on GUIs, though the argu- ments apply to other systems too. GUIs consist of a large set of entities such as windows and controls that define a large number of operations. These operations often involve destructive state changes and the behaviour of GUI components normally involves handling spontaneous input in the form of events. OO techniques are very well suited to handle this complexity.
    [Show full text]
  • Translingual Obfuscation
    Translingual Obfuscation Pei Wang, Shuai Wang, Jiang Ming, Yufei Jiang, and Dinghao Wu College of Information Sciences and Technology The Pennsylvania State University fpxw172, szw175, jum310, yzj107, [email protected] Abstract—Program obfuscation is an important software pro- Currently the state-of-the-art obfuscation technique is to tection technique that prevents attackers from revealing the incorporate with process-level virtualization. For example, programming logic and design of the software. We introduce obfuscators such as VMProtect [10] and Code Virtualizer [4] translingual obfuscation, a new software obfuscation scheme replace the original binary code with new bytecode, and a which makes programs obscure by “misusing” the unique custom interpreter is attached to interpret and execute the features of certain programming languages. Translingual ob- bytecode. The result is that the original binary code does fuscation translates part of a program from its original lan- not exist anymore, leaving only the bytecode and interpreter, guage to another language which has a different program- making it difficult to directly reverse engineer [39]. How- ming paradigm and execution model, thus increasing program ever, recent work has shown that the decode-and-dispatch complexity and impeding reverse engineering. In this paper, execution pattern of virtualization-based obfuscation can we investigate the feasibility and effectiveness of translingual be a severe vulnerability leading to effective deobfusca- obfuscation with Prolog, a logic programming language. We tion [24], [66], implying that we are in need of obfuscation implement translingual obfuscation in a tool called BABEL, techniques based on new schemes. which can selectively translate C functions into Prolog pred- We propose a novel and practical obfuscation method icates.
    [Show full text]
  • Evocells - a Treemap Layout Algorithm for Evolving Tree Data
    Initial State EvoCells - A Treemap Layout Algorithm for Evolving Tree Data Willy Scheibel, Christopher Weyand and Jurgen¨ Dollner¨ NextHasso State Plattner Institute Faculty of Digital Engineering, University of Potsdam, Potsdam, Germany Initial | State Keywords: Treemap Layout Algorithm, Time-varying Tree-structured Data, Treemap Layout Metrics. Abstract: We propose the rectangular treemap layout algorithm EvoCells that maps changes in tree-structured data onto an initial treemap layout. Changes in topology and node weights are mapped to insertion, removal, growth, and shrinkage of the layout rectangles. Thereby, rectangles displace their neighbors and stretche their enclosing rectangles with a run-time complexity of O(nlogn). An evaluation using layout stability metrics on the open source ElasticSearch software system suggests EvoCells as a valid alternative for stable treemap layouting. 1 INTRODUCTION regard to algorithmic complexity and layout stability, together with a case-study in the domain of software Tree-structured data is subject to constant change. analytics based on the software system ElasticSearch. In order to manage change, understanding the evo- lution is important. An often used tool to commu- Initial State nicate structure and characteristics of tree-structured data is the treemap (Shneiderman, 1992). Most lay- outs are based on a recursive partition of a given ini- tial 2D rectangular area proportional to the summed weights of the nodes. Besides topology and associ- ated weights, additional visual variables can be used (Carpendale, 2003), including extrusion of the 2D layout to 3D cuboids. The restricted use of the third dimension is reflected by the term 2.5D treemaps (Limberger et al., 2017b). When used over time, treemap layouts are faced Next State by their inherent instability regarding even minor changes to the nodes’ weights used for the spatial layouting, impeding the creation and use of a mental map (Misue et al., 1995).
    [Show full text]