14 research outputs found

    Declarative Support for Prototyping Interactive Systems

    Get PDF
    The development of complex, multi-user, interactive systems is a difficult process that requires both a rapid iterative approach, and the ability to reason carefully about system designs. This thesis argues that a combination of declarative prototyping and formal specification provides a suitable way of satisfying these requirements. The focus of this thesis is on the development of software tools for prototyping interactive systems. In particular, it uses a declarative approach, based on the functional programming paradigm. This thesis makes two contributions. The most significant contribution is the presentation of FranTk, a new Graphical User Interface language, embedded in the functional language Haskell. It is suitable for prototyping complex, concurrent, multi-user systems. It allows systems to be built in a high level, structured manner. In particular, it provides good support for specifying real-time properties of such systems. The second contribution is a mechanism that allows a formal specification to be derived from a high level FranTk prototype. The approach allows this to be done automatically. This specification can then be checked, with tool support, to verify some safety properties about a system. To avoid the state space explosion problem that would be faced when verifying an entire system, we focus on partial verification. This concentrates on key areas of a design: in particular this means that we only derive a specification from parts of a prototype. To demonstrate the scalability of both the prototyping and verification approaches, this thesis uses a series of case studies including a multi-user design rationale editor and a prototype data-link Air Traffic Control system

    Asynchronous functional reactive programming for GUIs

    Full text link

    Preliminary proceedings of the 2001 ACM SIGPLAN Haskell workshop

    Get PDF
    This volume contains the preliminary proceedings of the 2001 ACM SIGPLAN Haskell Workshop, which was held on 2nd September 2001 in Firenze, Italy. The final proceedings will published by Elsevier Science as an issue of Electronic Notes in Theoretical Computer Science (Volume 59). The HaskellWorkshop was sponsored by ACM SIGPLAN and formed part of the PLI 2001 colloquium on Principles, Logics, and Implementations of high-level programming languages, which comprised the ICFP/PPDP conferences and associated workshops. Previous Haskell Workshops have been held in La Jolla (1995), Amsterdam (1997), Paris (1999), and Montr´eal (2000). The purpose of the Haskell Workshop was to discuss experience with Haskell, and possible future developments for the language. The scope of the workshop included all aspects of the design, semantics, theory, application, implementation, and teaching of Haskell. Submissions that discussed limitations of Haskell at present and/or proposed new ideas for future versions of Haskell were particularly encouraged. Adopting an idea from ICFP 2000, the workshop also solicited two special classes of submissions, application letters and functional pearls, described below

    Testing SPECT Motion Correction Algorithms

    Get PDF
    Frequently, testing of Single Photon Emission Computed Tomography (SPECT) motion correction algorithms is done either by using simplistic deformations that do not accurately simulate true patient motion or by applying the algorithms directly to data acquired from a real patient, where the true internal motion is unknown. In this work, we describe a way to combine these two approaches by using imaging data acquired from real volunteers to simulate the data that the motion correction algorithms would normally observe. The goal is to provide an assessment framework which can both: simulate realistic SPECT acquisitions that incorporate realistic body deformations and provide a ground truth volume to compare against. Every part of the motion correction algorithm needs to be exercised: from parameter estimation of the motion model, to the final reconstruction results. In order to build the ground truth anthropomorphic numerical phantoms, we acquire high resolution MRI scans and motion observation data of a volunteer in multiple different configurations. We then extract the organ boundaries using thresholding, active contours, and morphology. Phantoms of radioactivity uptake and density inside the body can be generated from these boundaries to be used to simulate SPECT acquisitions. We present results on extraction of the ribs, lungs, heart, spine, and the rest of the soft tissue in the thorax using our segmentation approach. In general, extracting the lungs, heart, and ribs in images that do not contain the spine works well, but the spine could be better extracted using other methods that we discuss. We also go in depth into the software development component of this work, describing the C++ coding framework we used and the High Level Interactive GUI Language (HLING). HLING solved a lot of problems but introduced a fair bit of its own. We include a set of requirements to provide a foundation for the next attempt at developing a declarative and minimally restrictive methodology for writing interactive image processing applications in C++ based on lessons learned during the development of HLING

    Capturing route experiences

    Get PDF
    Tese de mestrado, Informática, Universidade de Lisboa, Faculdade de Ciências, 2014Several systems currently exist to support creation of location-based stories and capturing of life experiences. However, it has been shown that there is a trade-off between fully committing to the authoring process and “staying in the moment”, which produces strain and increases authoring effort. The present work addresses this problem by leveraging the large amount of third party content, readily available through various web services. More concretely, we re-imagine in-situ storytelling process, providing authors with suggestions of external story elements, such as Foursquare1 venues, which they can embed directly into the story. We explore whether with this approach authors are able to balance between producing novel and reusing existing content, saving time and effort whenever necessary. Results from our two user studies suggest that suggestions can potentially reduce the authoring effort, but only provided they are relevant enough. At the same time, they can significantly improve the viewing experience, provided they are content-rich: Foursquare venues, encompassing photos, reviews and comments, are a good example. We also found that authors valued stories’ individuality more than viewers, as the former were somewhat reluctant to “dilute” their personal content with external data, whereas the latter appreciated the social aspects contributed by suggestions

    Guaranteeing Responsiveness and Consistency in Dynamic, Asynchronous Graphical User Interfaces

    Get PDF
    This dissertation proposes a programming model for Graphical User Interfaces (GUIs) that relieves the programmer of a difficult and error-prone task: orchestrating concurrent responses to events to ensure data dependencies are always enforced correctly. In this programming model, rather than defining program responses to events, the programmer defines the data dependencies that exist in the GUI and the methods by which those dependencies may be enforced – a run-time system uses this specification to generate responses to events. The approach gives the following guarantee: the same sequence of events produces the same results, regardless of the timing of those events. The dissertation demonstrates the benefits of the proposed programming model with implementations of several example user interfaces. At the core of this programming model is a data structure known as a property model. A property model composes responses to individual events into a single reactive program that runs asynchronously. The program's results are used to update the GUI. The program is constructed in a manner that respects all data dependencies, thereby guaranteeing that results are consistent regardless of the length of time taken by individual responses. The core reactive program may be extended with features that support additional functionality, such as access to prior variable values, optional data dependencies, and identifying unused variables. The dissertation defines the semantics of the construction and execution of this reactive program formally. The dissertation shows how property models may be defined as a composition of reusable components. This is essential for modeling GUIs whose structures change in response to user events by the addition or removal of components. Components can contain data and dependencies as well as templates that describe how dependencies arise from composition with other components. Furthermore, templates can be written for arrays of components to define dependencies that arise among them. One key task of the property model is planning by which methods dependencies will be enforced. The dissertation describes how a specialized planner can be constructed that is able to create a plan for a specific property model. This specialized planner is essentially a Deterministic Finite-state Automaton (DFA), and can be orders of magnitude faster than a general-purpose planner

    Computer-Assisted Lighting Design and Control

    Get PDF
    This dissertation shows that computer-based lighting control systems can support the lighting design process considerably better than traditional consoles. It describes the Lula Project, a new software package for lighting design and control, that implements this level of support. Lula's focus is on the conceptual ideas behind a lighting design rather than the concrete lighting fixtures used to put it on stage. Among the innovative aspects of the system are its model for designing static lighting looks and its subsystem for programmable continuous animated lighting. Lula's application design is centered around the idea of componential lighting design that allows the user to express a lighting design as a hierarchy of components. Lula is a result of the rigorous application of high-level software engineering techniques and implementation technology from the general realm of functional programming. The high-level structure of the application rests upon stratified design, algebraic modelling, and domain-specific languages. Among the implementation techniques instrumental to Lula are automatic memory management, higher-order programming, functional data structures, data-directed programming, parametric inheritance, and concurrent programming.Computer-basierte Systeme für Beleuchtungssteuerung sind in der Lage, den Lichtdesigner weitaus besser zu unterstützen als es derzeit marktübliche Steuerkonsolen tun. Das Thema dieser Dissertation ist ein solches System, das Projekt Lula. Lula ist eine neue Software für Lichtregie und Beleuchtungssteuerung, welche die Modellierung der konzeptuellen Elemente eines Lichtdesigns ermöglicht, unabhängig von der konkreten Realisierung auf der Bühne. Unter den innovativen Aspekten des Systems ist das Modell für den Entwurf statischer Beleuchtungsszenen sowie das Subsystem für programmierbare, stetig animierte Beleuchtung. Das übergeordnete Prinzip bei Lula ist komponentenbasierte Lichtregie, die es dem Benutzer erlaubt, ein Lichtdesign als eine Hierarchie von Komponenten auszudrücken. Lula ist das Resultat konsequenter Anwendung von Entwurfs- und Implementierungs-Techniken aus dem Bereich der funktionalen Programmierung. Die High-Level-Struktur des Systems baut auf stratifiziertes Design, algebraische Modellierung und anwendungsspezifische Programmiersprachen. Unter den Implementationstechniken, die entscheidend bei der Entwicklung von Lula waren, befinden sich automatische Speicherverwaltung, Higher-Order-Programmierung, funktionale Datenstrukturen, datengesteuerte Programmierung, parametrische Vererbung und nebenläufige Programmierung
    corecore