Efficient abstractions for visualization and interaction

Abstractions, such as functions and methods, are an essential tool for any programmer. Abstractions encapsulate the details of a computation: the programmer only needs to know what the abstraction achieves, not how it achieves it. However, using abstractions can come at a cost: the resulting program may be inefficient. This can lead to programmers not using some abstractions, instead writing the entire functionality from the ground up. In this thesis, we present several results that make this situation less likely when programming interactive visualizations. We present results that make abstractions more efficient in the areas of graphics, layout and events.

[1]  Thomas Bäck,et al.  Mixed-integer evolution strategies for parameter optimization and their applications to medical image analysis , 2005 .

[2]  Karina R. Olmos Joffré Strategies for Context Sensitive Program Transformation , 2009 .

[3]  D. Costa Formal models for component connectors , 2010 .

[4]  Shriram Krishnamurthi,et al.  Embedding Dynamic Dataflow in a Call-by-Value Language , 2006, ESOP.

[5]  Martin Odersky,et al.  Deprecating the Observer Pattern with Scala.React , 2012 .

[6]  Ohad Kammar,et al.  Handlers in action , 2013, ICFP.

[7]  Tim K. Cocx,et al.  Algorithmic tools for data-oriented law enforcement , 2009 .

[8]  Andrzej Filinski,et al.  Representing monads , 1994, POPL '94.

[9]  Jan A. Bergstra,et al.  Algebra of Communicating Processes with Abstraction , 1985, Theor. Comput. Sci..

[10]  Mark Timmer,et al.  Efficient modelling, generation and analysis of Markov automata , 2013 .

[11]  J. K. Berendsen,et al.  Abstraction, prices and probability in model checking timed automata , 2010 .

[12]  M. D. Berg,et al.  Optimal Geometric Data Structures , 2007 .

[13]  John Hughes,et al.  Generalising monads to arrows , 2000, Sci. Comput. Program..

[14]  David S. Ebert,et al.  Texturing & modeling : a procedural approach : 日本語版 , 2009 .

[15]  Jja Jeroen Keiren,et al.  Advanced reduction techniques for model checking , 2013 .

[16]  Henrik Nilsson,et al.  The Yampa arcade , 2003, Haskell '03.

[17]  W. Kuijper Compositional Synthesis of Safety Controllers , 2012 .

[18]  A. J. van dePloeg Monadic Functional Reactive Programming , 2013 .

[19]  H. Hansen Coalgebraic Modelling : Applications in Automata theory and Modal logic , 2009 .

[20]  J. van den Bos,et al.  Gathering evidence: Model-driven software engineering in automated digital forensics , 2014 .

[21]  B. J. Arnoldus,et al.  An illumination of the template enigma : software code generation with templates , 2011 .

[22]  Tom Staijen,et al.  Graph-based Specification and Verification for Aspect-Oriented Languages , 2010 .

[23]  Michael Jünger,et al.  Drawing rooted trees in linear time , 2006, Softw. Pract. Exp..

[24]  Werner Heijstek,et al.  Architecture design in global and model-centric software development , 2012 .

[25]  Amr Sabry,et al.  Extensible effects: an alternative to monad transformers , 2013, Haskell '13.

[26]  Antony Courtney,et al.  Genuinely Functional User Interfaces , 2001 .

[27]  Mitchell Wand,et al.  Relating models of backtracking , 2004, ICFP '04.

[28]  Joost Winter,et al.  Coalgebraic Characterizations of Automata-Theoretic Classes , 2014 .

[29]  Ralf Hinze,et al.  Deriving backtracking monad transformers , 2000, ICFP '00.

[30]  Adrianus Johannus Paulus Jeckmans Cryptographically-Enhanced Privacy for Recommender Systems , 2014 .

[31]  Emmanuel Pietriga,et al.  A toolkit for addressing HCI issues in visual language environments , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[32]  Hossein Rahmani,et al.  Analysis of protein-protein interaction networks by means of annotated graph mining algorithms , 2012 .

[33]  J. van den Berg,et al.  Reasoning about Java programs in PVS using JML , 2009 .

[34]  Bn Bogdan Vasilescu Social aspects of collaboration in online software communities , 2014 .

[35]  Conal Elliott Beautiful differentiation , 2009, ICFP.

[36]  Sander Vermolen,et al.  Software Language Evolution , 2008, 2008 15th Working Conference on Reverse Engineering.

[37]  YingLiang Ma,et al.  Point inversion and projection for NURBS curve and surface: Control polygon approach , 2003, Comput. Aided Geom. Des..

[38]  Frank W. Takes Algorithms for analyzing and mining real-world graphs , 2014 .

[39]  Emmanuele Zambon,et al.  Towards optimal IT availability planning: methods and tools , 2011 .

[40]  Paul Hudak,et al.  A language for declarative robotic programming , 1999, Proceedings 1999 IEEE International Conference on Robotics and Automation (Cat. No.99CH36288C).

[41]  Henrik Nilsson,et al.  Safe functional reactive programming through dependent types , 2009, ICFP.

[42]  Andrew Kennedy Drawing Trees , 1996, J. Funct. Program..

[43]  Giulio Casciola,et al.  Reparametrization of NURBS Curves , 1996, Int. J. Shape Model..

[44]  Fpm Frank Stappers Bridging formal models : an engineering perspective , 2012 .

[45]  van Mf Marcel Amstel,et al.  Assessing and improving the quality of model transformations , 2012 .

[46]  Jerzy Karczmarczuk,et al.  Geometric Modelling in Functional Style , 1999 .

[47]  Conal Elliott,et al.  Push-pull functional reactive programming , 2009, Haskell.

[48]  Arjan Kuijper,et al.  Visual Analysis of Large Graphs , 2010, Eurographics.

[49]  Marcin Czenko,et al.  TuLiP : reshaping trust management , 2009 .

[50]  Paul Hudak,et al.  Arrows, Robots, and Functional Reactive Programming , 2002, Advanced Functional Programming.

[51]  Somayeh Malakuti Khah Olun Abadi Event composition model: achieving naturalness in runtime enforcement , 2011 .

[52]  Farhad Arbab,et al.  Model Checking of Component Connectors , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[53]  Conal Elliott,et al.  Programming graphics processors functionally , 2004, Haskell '04.

[54]  Conal Elliott,et al.  Functional Implementations of Continuos Modeled Animation , 1998, PLILP/ALP.

[55]  M. Sheelagh T. Carpendale,et al.  A framework for unifying presentation space , 2001, UIST '01.

[56]  Wouter Meulemans,et al.  Similarity measures and algorithms for cartographic schematization , 2014 .

[57]  Olivier Bau,et al.  Representation-Independent In-Place Magnification with Sigma Lenses , 2010, IEEE Transactions on Visualization and Computer Graphics.

[58]  C. J. Boogerd,et al.  Focusing Automatic Code Inspections , 2010 .

[59]  Conal Elliott,et al.  Functional Image Synthesis , 2001 .

[60]  J. Kwisthout,et al.  The Computational Complexity of Probabilistic Networks , 2009 .

[61]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[62]  Ralf Hinze,et al.  Finger trees: a simple general-purpose data structure , 2005, Journal of Functional Programming.

[63]  Tim K. Cocx,et al.  Metrics and visualisation for crime analysis and genomics , 2005 .

[64]  Aah Ammar Osaiweran Formal development of control software in the medical systems domain , 2012 .

[65]  Scw Bas Ploeger,et al.  Improved verification methods for concurrent systems , 2009 .

[66]  Paul Hudak,et al.  Monad transformers and modular interpreters , 1995, POPL '95.

[67]  Jarke J. van Wijk,et al.  Botanical visualization of huge hierarchies , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[68]  Axel Belinfante,et al.  JTorX: exploring model-based testing , 2014 .

[69]  M. S. Greiler,et al.  Test Suite Comprehension for Modular and Dynamic Systems , 2013 .

[70]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[71]  A. Morali,et al.  IT architecture-based confidentiality risk assessment in networks of organizations , 2011 .

[72]  S. Georgievska Probability and Hiding in Concurrent Processes ( thesis abstract ) , 2011 .

[73]  J. Endrullis Termination and Productivity , 2010 .

[74]  Koen Claessen Parallel Parsing Processes , 2004, J. Funct. Program..

[75]  Mitchell Wand,et al.  The mystery of the tower revealed: A nonreflective description of the reflective tower , 1988, LISP Symb. Comput..

[76]  Sander van der Burg,et al.  A Reference Architecture for Distributed Software Deployment , 2013 .

[77]  Trajce Dimkov,et al.  Alignment of organizational security policies: Theory and Practice , 2012 .

[78]  Henrik Nilsson,et al.  Functional reactive programming, continued , 2002, Haskell '02.

[79]  Philip Wadler,et al.  Views: a way for pattern matching to cohabit with data abstraction , 1987, POPL '87.

[80]  Amr Sabry,et al.  Backtracking, interleaving, and terminating monad transformers: (functional pearl) , 2005, ICFP '05.

[81]  M Muhammad Atif,et al.  Formal modeling and verification of distributed failure detectors , 2011 .

[82]  Georgeta Igna,et al.  Performance analysis of real-time task systems using timed automata , 2013 .

[83]  Andy Gill,et al.  ChalkBoard: Mapping Functions to Polygons , 2009, IFL.

[84]  Simon Peyton Jones,et al.  Pictures: A Structured Graphics Model , 1996 .

[85]  van den,et al.  Composition and synchronization of real-time components upon one processor , 2013 .

[86]  van Pja Paul Tilburg From computability to executability : a process-theoretic view on automata theory , 2011 .

[87]  Charles Wetherell,et al.  Tidy Drawings of Trees , 1979, IEEE Transactions on Software Engineering.

[88]  K. Tsirogiannis,et al.  Analysis of flow and visibility on triangulated terrains , 2011 .

[89]  Wouter Swierstra,et al.  Data types à la carte , 2008, Journal of Functional Programming.

[90]  Antony Courtney,et al.  Frappé: Functional Reactive Programming in Java , 2001, PADL.

[91]  Paul Hudak,et al.  FVision: A Declarative Language for Visual Tracking , 2001, PADL.

[92]  Lennart C. L. Kats,et al.  Building Blocks for Language Workbenches , 2011 .

[93]  Ross Paterson,et al.  A new notation for arrows , 2001, ICFP '01.

[94]  Miguel E. Andrés,et al.  Quantitative Analysis of Information Leakage in Probabilistic and Nondeterministic Systems , 2011, ArXiv.

[95]  Zef Hemel Methods and Techniques for the Design and Implementation of Domain-Specific Languages , 2012 .

[96]  Shriram Krishnamurthi,et al.  Flapjax: a programming language for Ajax applications , 2009, OOPSLA 2009.

[97]  Jean G. Vaucher Pretty‐printing of trees , 1980, Softw. Pract. Exp..

[98]  Minh Tri Ngo,et al.  Qualitative and Quantitative Information Flow Analysis for Multi-threaded Programs , 2014 .

[99]  Gerhard de Koning Gans,et al.  Outsmarting smart cards , 2013 .

[100]  Jock D. Mackinlay,et al.  Cone Trees: animated 3D visualizations of hierarchical information , 1991, CHI.

[101]  Ben Shneiderman,et al.  Tree-maps: a space-filling approach to the visualization of hierarchical information structures , 1991, Proceeding Visualization '91.

[102]  Chris Okasaki,et al.  Simple and efficient purely functional queues and deques , 1995, Journal of Functional Programming.

[103]  Janis Voigtländer,et al.  Asymptotic Improvement of Computations over Free Monads , 2008, MPC.

[104]  Mohammed G. Khatib MEMS-Based Storage Devices : Integration in Energy-Constrained Mobile Systems , 2009 .

[105]  Steve Awodey,et al.  Category Theory , 2006 .

[106]  Li Xiaohong,et al.  An improved generalized tree layout algorithm , 2010, 2010 2nd International Asia Conference on Informatics in Control, Automation and Robotics (CAR 2010).

[107]  Lacramioara Astefanoaei,et al.  An executable theory of multi-agent systems refinement , 2011 .

[108]  Eduardo Zambon,et al.  Abstract Graph Transformation - Theory and Practice , 2013 .

[109]  Alan Jeffrey,et al.  Causality for free!: parametricity implies causality for functional reactive programs , 2013, PLPV.

[110]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[111]  Mauro Jaskelioff,et al.  Modular Monad Transformers , 2009, ESOP.

[112]  van der,et al.  Domain specific languages and their type systems , 2014 .

[113]  Hasan Sözer,et al.  Architecting Fault-Tolerant Software Systems , 2009 .

[114]  Anthony Bloesch,et al.  Aesthetic layout of generalized trees , 1993, Softw. Pract. Exp..

[115]  Pim Vullers,et al.  Efficient implementations of attribute-based credentials on smart cards , 2014 .

[116]  Henrik Nilsson,et al.  Dynamic optimization for functional reactive programming using generalized algebraic data types , 2005, ICFP '05.

[117]  Edward M. Reingold,et al.  Tidier Drawings of Trees , 1981, IEEE Transactions on Software Engineering.

[118]  John Hughes,et al.  A Novel Representation of Lists and its Application to the Function "reverse" , 1986, Inf. Process. Lett..

[119]  Donald E. Knuth,et al.  Optimum binary search trees , 1971, Acta Informatica.

[120]  José Proença,et al.  Synchronous Coordination of Distributed Components , 2011 .

[121]  B. Lijnse,et al.  TOP to the rescue. Task-oriented programming for incident response applications , 2005 .

[122]  M. J. de Mol,et al.  Reasoning about functional programs : Sparkle, a proof assistant for Clean , 2009 .

[123]  Peter J. Stuckey,et al.  Solving linear arithmetic constraints for user interface applications , 1997, UIST '97.

[124]  van Mj Muck Weerdenburg,et al.  Efficient rewriting techniques , 2009 .

[125]  Sebastiaan Gijsbert Marinus Cornelissen,et al.  Evaluating Dynamic Analysis Techniques for Program Comprehension , 2009 .

[126]  L. Lensink,et al.  Applying formal methods in software development , 2013 .

[127]  Saeed Sedghi,et al.  Towards Provably Secure Efficiently Searchable Encryption , 2012 .

[128]  Yanjing Wang,et al.  Epistemic Modelling and Protocol Dynamics , 2010 .

[129]  Ali Mesbah,et al.  Analysis and Testing of Ajax-based Single-page Web Applications , 2009 .

[130]  Akrivi Katifori,et al.  Ontology visualization methods—a survey , 2007, CSUR.

[131]  Ron Goldman,et al.  Implicit representation of parametric curves and surfaces , 1984, Comput. Vis. Graph. Image Process..

[132]  Kab Kevin Verbeek Algorithms for cartographic visualization , 2012 .

[133]  Edward M. Reingold,et al.  The complexity of drawing trees nicely , 2004, Acta Informatica.

[134]  Christian Krause,et al.  Reconfigurable Component Connectors , 2011 .

[135]  Sven Moen,et al.  Drawing dynamic trees , 1990, IEEE Software.

[136]  Paul Hudak,et al.  Lambda in Motion: Controlling Robots with Haskell , 1999, PADL.

[137]  de A. Bruin,et al.  Service-oriented discovery of knowledge : foundations, implementations and applications , 2010 .

[138]  Paul Klint,et al.  Towards a One-Stop-Shop for Analysis, Transformation and Visualization of Software , 2011, SLE.

[139]  Mjm Marcel Roeloffzen Kinetic data structures in the black-box model , 2013 .

[140]  John Q. Walker,et al.  A node‐positioning algorithm for general trees , 1990, Softw. Pract. Exp..

[141]  Damiano Bolzoni,et al.  Revisiting Anomaly-based Network Intrusion Detection Systems , 2009 .

[142]  Chuan-Kai Lin,et al.  Programming monads operationally with Unimo , 2006, ICFP '06.

[143]  Bas Basten,et al.  Ambiguity Detection for Programming Language Grammars , 2011 .

[144]  Youzou Miyadera,et al.  Depth-First Layout Algorithm for Trees , 1998, Inf. Process. Lett..

[145]  Jerzy Karczmarczuk Functional Approach to Texture Generation , 2002, PADL.

[146]  Z Zvezdan Protic,et al.  Configuration management for models : generic methods for model comparison and model co-evolution , 2011 .

[147]  C.P.T. deGouw,et al.  Combining Monitoring with Run-Time Assertion Checking , 2013 .

[148]  J. V. van Wijk,et al.  Cushion treemaps: visualization of hierarchical information , 1999, Proceedings 1999 IEEE Symposium on Information Visualization (InfoVis'99).

[149]  van Mpwj Michiel Osch Model-based testing of hybrid systems , 2007 .

[150]  Haim Kaplan,et al.  Purely functional, real-time deques with catenation , 1999, JACM.

[151]  Md. Saidur Rahman,et al.  A linear algorithm for compact box‐drawings of trees , 2003, Networks.

[152]  D. E. Nadales Agut,et al.  A Compositional Interchange Format for Hybrid Systems: Design and Implementation , 2012 .

[153]  Marijn Paul Schraagen,et al.  Aspects of record linkage , 2014 .

[154]  Hendrik Michaël van der Bijl,et al.  On changing models in model-based testing , 2011 .

[155]  Frédo Durand,et al.  Decoupling algorithms from schedules for easy optimization of image processing pipelines , 2012, ACM Trans. Graph..

[156]  Ljp Luc Engelen From napkin sketches to reliable software , 2012 .

[157]  Mari Antonius Cornelis Dekker,et al.  Flexible Access Control for Dynamic Collaborative Environments , 2009 .

[158]  Mohammad Mahdi Jaghoori,et al.  Time At Your Service: Schedulability Analysis of Real-Time and Distributed Services , 2010 .

[159]  Benno Stein,et al.  On the Generalized Box-Drawing of Trees — Survey and New Technology — , 2007 .

[160]  Carst Tankink Documentation and formal mathematics : web technology meets theorem proving , 2013 .

[161]  Kim Marriott,et al.  Compact Layout of Layered Trees , 2007, ACSC.

[162]  Arthur I. Baars,et al.  Embedded Compilers , 2009 .

[163]  Stephanie Kemper,et al.  Modelling and analysis of real-time coordination patterns , 2011 .

[164]  Adriaan Middelkoop,et al.  Inference of Program Properties with Attribute Grammars, Revisited , 2012 .

[165]  Simon L. Peyton Jones,et al.  A monadic framework for delimited continuations , 2007, J. Funct. Program..

[166]  Uzi Vishkin,et al.  On Finding Lowest Common Ancestors: Simplification and Parallelization , 1988, AWOC.

[167]  Jeremy Gibbons,et al.  Deriving Tidy Drawings of Trees , 1996, J. Funct. Program..

[168]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[169]  Tingting Han,et al.  Diagnosis, Synthesis and Analysis of Probabilistic Models , 2009, Ausgezeichnete Informatikdissertationen.

[170]  Christoph M. Hoff Implicit Curves and Surfaces in CAGD , 1992 .

[171]  Young-Joo Moon,et al.  Stochastic models for quality of service of component connectors , 2011 .

[172]  Philip J. Schneider,et al.  An algorithm for automatically fitting digitized curves , 1990 .

[173]  A. Rodriguez Yakushev,et al.  Towards Getting Generic Programming Ready for Prime Time , 2009 .

[174]  Alfons Laarman,et al.  Scalable multi-core model checking , 2014 .

[175]  Hugo Jonker,et al.  Security matters : privacy in voting and fairness in digital exchange , 2009 .

[176]  Mao Lin Huang,et al.  A space-optimized tree visualization , 2002, IEEE Symposium on Information Visualization, 2002. INFOVIS 2002..

[177]  Cor-Paul Bezemer,et al.  Performance Optimization of Multi-Tenant Software Systems , 2014 .

[178]  Ronald Middelkoop,et al.  Capturing and exploiting abstract views of states in OO verification , 2011 .

[179]  Dina Hadžiosmanović,et al.  The process matters: cyber security in industrial control systems , 2014 .

[180]  Ramana Rao,et al.  A focus+context technique based on hyperbolic geometry for visualizing large hierarchies , 1995, CHI '95.

[181]  Lionel Mamane,et al.  Interactive mathematical documents: creation and presentation , 2004 .

[182]  Taolue Chen Clocks, Dice and Processes , 2009 .

[183]  Gheorghe Paun Spiking Neural P Systems: A Tutorial , 2007, Bull. EATCS.

[184]  Conor McBride,et al.  Applicative programming with effects , 2008, J. Funct. Program..

[185]  Cynthia Kop Higher Order Termination: Automatable Techniques for Proving Termination of Higher-Order Term Rewriting Systems , 2012 .

[186]  R.S.S. O'Connor,et al.  Incompleteness & completeness : formalizing logic and analysis in type theory , 2005 .

[187]  Marcel Verhoef,et al.  Modeling and validating distributed embedded real-time control systems , 2009 .