1,156 research outputs found
Confluent Orthogonal Drawings of Syntax Diagrams
We provide a pipeline for generating syntax diagrams (also called railroad
diagrams) from context free grammars. Syntax diagrams are a graphical
representation of a context free language, which we formalize abstractly as a
set of mutually recursive nondeterministic finite automata and draw by
combining elements from the confluent drawing, layered drawing, and smooth
orthogonal drawing styles. Within our pipeline we introduce several heuristics
that modify the grammar but preserve the language, improving the aesthetics of
the final drawing.Comment: GD 201
Multi-level Visualization of Concurrent and Distributed Computation in Erlang
This paper describes a prototype visualization system
for concurrent and distributed applications programmed
using Erlang, providing two levels of granularity of view. Both
visualizations are animated to show the dynamics of aspects of
the computation.
At the low level, we show the concurrent behaviour of the
Erlang schedulers on a single instance of the Erlang virtual
machine, which we call an Erlang node. Typically there will be
one scheduler per core on a multicore system. Each scheduler
maintains a run queue of processes to execute, and we visualize
the migration of Erlang concurrent processes from one run queue
to another as work is redistributed to fully exploit the hardware.
The schedulers are shown as a graph with a circular layout. Next
to each scheduler we draw a variable length bar indicating the
current size of the run queue for the scheduler.
At the high level, we visualize the distributed aspects of the
system, showing interactions between Erlang nodes as a dynamic
graph drawn with a force model. Speci?cally we show message
passing between nodes as edges and lay out nodes according to
their current connections. In addition, we also show the grouping
of nodes into âs_groupsâ using an Euler diagram drawn with
circles
A Programming System for End-user Functional Programming
This research involves the construction of a programming system, HASKEU,
to support end-user programming in a purely functional programming language.
An end-user programmer is someone who may program a computer
to get their job done, but has no interest in becoming a computer programmer.
A purely functional programming language is one that does not require
the expression of statement sequencing or variable updating. The end-user is
offered two views of their functional program. The primary view is a visual
one, in which the program is presented as a collection of boxes (representing
processes) and lines (representing data
flow). The secondary view is a textual
one, in which the program is presented as a collection of written function definitions. It is expected that the end-user programmer will begin with the visual
view, perhaps later moving on to the textual view. The task of the programming
system is to ensure that the visual and textual views are kept consistent
as the program is constructed. The foundation of the programming system
is a implementation of the Model-View-Controller (MVC) design pattern as a
reactive program using the elegant Functional Reactive Programming (FRP)
framework. Human-Computer Interaction (HCI) principles and methods are
considered in all design decisions. A usabilty study was made to find out the
effectiveness of the new system
A DSEL for Studying and Explaining Causation
We present a domain-specific embedded language (DSEL) in Haskell that
supports the philosophical study and practical explanation of causation. The
language provides constructs for modeling situations comprised of events and
functions for reliably determining the complex causal relationships that emerge
between these events. It enables the creation of visual explanations of these
causal relationships and a means to systematically generate alternative,
related scenarios, along with corresponding outcomes and causes. The DSEL is
based on neuron diagrams, a visual notation that is well established in
practice and has been successfully employed for causation explanation and
research. In addition to its immediate applicability by users of neuron
diagrams, the DSEL is extensible, allowing causation experts to extend the
notation to introduce special-purpose causation constructs. The DSEL also
extends the notation of neuron diagrams to operate over non-boolean values,
improving its expressiveness and offering new possibilities for causation
research and its applications.Comment: In Proceedings DSL 2011, arXiv:1109.032
PLACES'10: The 3rd Workshop on Programmng Language Approaches to concurrency and Communication-Centric Software
Paphos, Cyprus. March 201
A complete proof of the safety of NĂścker's strictness analysis
This paper proves correctness of NĂścker's method of strictness analysis, implemented in the Clean compiler, which is an effective way for strictness analysis in lazy functional languages based on their operational semantics. We improve upon the work of Clark, Hankin and Hunt did on the correctness of the abstract reduction rules. Our method fully considers the cycle detection rules, which are the main strength of NĂścker's strictness analysis. Our algorithm SAL is a reformulation of NĂścker's strictness analysis algorithm in a higher-order call-by-need lambda-calculus with case, constructors, letrec, and seq, extended by set constants like Top or Inf, denoting sets of expressions. It is also possible to define new set constants by recursive equations with a greatest fixpoint semantics. The operational semantics is a small-step semantics. Equality of expressions is defined by a contextual semantics that observes termination of expressions. Basically, SAL is a non-termination checker. The proof of its correctness and hence of NĂścker's strictness analysis is based mainly on an exact analysis of the lengths of normal order reduction sequences. The main measure being the number of 'essential' reductions in a normal order reduction sequence. Our tools and results provide new insights into call-by-need lambda-calculi, the role of sharing in functional programming languages, and into strictness analysis in general. The correctness result provides a foundation for NĂścker's strictness analysis in Clean, and also for its use in Haskell
Hierarchical Communication Diagrams
Formal modelling languages range from strictly textual ones like process algebra scripts to visual modelling languages based on hierarchical graphs like coloured Petri nets. Approaches equipped with visual modelling capabilities make developing process easier and help users to cope with more complex systems. Alvis is a modelling language that combines possibilities of formal models verification with flexibility and simplicity of practical programming languages. The paper deals with hierarchical communication diagrams - the visual layer of the Alvis modelling language. It provides all necessary information to model system structure with Alvis, to manipulate a model hierarchy and to understand a model semantics. All considered concepts are discussed using illustrative examples
Visual programming with Interaction Nets
Programming directly with diagrams offers potential advantages such as visual intuitions, identification of errors (debugging), and insight into the dynamics of the algorithm. The purpose of this paper is to put forward one particular graphical formalism, interaction nets, as a candidate for visual programming which has not only all the desired properties that one would expect, but also has other benefits as a language, for instance sharing computation.Fundação para a Ciência e a Tecnologia (FCT
- âŚ