Simon Gauvin

I am a Ph.D. candidate in the Faculty of Computer Science, Dalhousie University under the supervision of Dr. Phil Cox..

Member of:

Email: gauvins at

Areas of Research Teaching Reseach Projects Other Interesting Projects

Areas of Research


Research Projects

Theory of Controlled Dataflow Languages

Languages such as Prograph, VEE, and Simulink have been used to develop hundreds of real-world industrial-strength applications by thousands of developers. Today languages such as LabVIEW and Yahoo Pipes continue to provide increased functionality and speed of development over textual languages in their respective domains. The visual languages above all implement the dataflow model of programming. This reseach is an attempt to define the common characteristics of these languauges, we call Controlled Dataflow Languages(CDLs) and to develop a formal theory by which such languages can be described, analyzed, and developed.

Some related publications:

Exception Handling in Visual Dataflow Languages

The ability to handle execptional circumstances during execution is a common feature in today's modern programming languages and one that has been largly ignored in CDLs. The issue is twofold: first, the computing model of dataflow complicates the traditional exception handling mechanism, secondly, the visual nature of dataflow makes the representation of exceptions and their handlers difficult to express elegantly. This research seeks to address these two issues.

Some related publications:

Parallel Programming with Visual Dataflow Languages

Although dataflow is inherently a parallel computing model visual dataflow languages have not supported parallel programming directly. Automatic parallelism detection is an option, however, in many cases simple choices by programmers to sparringly use parallelism can be of great benefit. In this research we explore means by which we can include explicit parallel contructs that give programmers control over their visual dataflow programs.

Some related publications:

ReactoGraph: A Visual Dataflow Language for User Interface Design

ReactoGraph was the result of asking the question: "can we combine visual programming and visual interfaces in a way to reduce the cognitive load associated with the non-visual representation of an interface element's behavior?" Called the Gulf of Connectivity we showed how the behavior, expressed as a textual program, was visually disconnected to the visual element that it defined. By visually attaching behaviors to interface elements we can reduce this gulf with the result that the element's behavior is more easily understood and programmed. ReactoGraph consisted of combining following techniques:

Some publications that relate to ReactoGraph:

Vivid: A Software Framework for Controlled Dataflow Languages

The Vivid Framework is a component based software framework designed for the development of visual programming languages. The framework implements visual language elements as components. This allows elements to be quickly mixed and matched by the language developer during design. The framework is being developed in Java and uses JavaBeans as a component model.

A programming language is sometimes the best solution to provide user access to functionality of complex systems that need to be customized beyond the capabilities of wizards and where macros, decision branching, and iteration are required. Using Vivid a complex system that needs a programming interface can be made simpler for users by taking advantage of the simplicity of a visual dataflow programming language over conventional textual programming languages. See and example of Insertion Sort using a procedural (right) vs. functional (left) approach. Some example areas where visual languages can be used as interfaces with Vivid are:

Some publications that relate to Vivid:

A Data Flow Virtual Machine (DVM) for Parallel and Distributed Computing

The DVM is a virtual machine used to execute code of visual dataflow languages such as those developed with Vivid. It is written in C and designed to run on Linux, Windows and MacOSX. It uses an object based interpreter and an XML representation of source code. This project is presently in the early research stage and is a work in progress.

Some publications that relate to the DVM:

Other Interesting Projects...

Prograph is a pioneering step in the development of visual programming. It was the first and only commercially available general purpose VPL. It sports a full language, primitive OS access, GUI builder, Application Framework, OOP, interactive debugger and compiler and runs on Windows and Macintosh OSs. Although no longer commercially supported you can still get a version for Windows from here:

BeOS.: The Be Operating System

Perhaps the least known and most advanced desktop user friendly operating system available today. The Linux people could learn a few things from this OS to make Linux far more usable for the average person.

Copyright  © 2001-2008  Simon Gauvin. All Rights Reserved. 

Modified: Tue Mar 11 13:54:55 ADT 2008