ivanreese / visual-programming-codex

Waypoints to the past and future of visual programming.
1.32k stars 57 forks source link

David Harel's research on Visual formalisms, Statecharts, Live Sequence Charts, & Behavioral Programming #88

Open ChrisShank opened 2 years ago

ChrisShank commented 2 years ago

One of the things that I think is missing from this codex is David Harel's research on visual formalisms, statecharts, live sequence charts, ect. and all of the research and "practical" branches that stem from that foundation. So I will attempt to provide an narrow overview of the this history of his work and many of the branches that stem from it.

Structured Flowcharts

Some of Harel's earliest work is on "structured flowcharts". It seemed to focus on giving flowcharts of procedural code a more structured visual syntax.

image

And/Or Programms

Building off the research above and crucial for his later work on statecharts is a paper called And/Or Programs: A New Approach to Structured Programming. It defined a language for decomposing typical programming constructs into a tree of AND or OR nodes. This language was both mathematically rigorous and visualizable as a tree. It was likely this was the first time that Harel attempted to visualize parallelism. Below is an example of a factorial algorithm:

image

Visual formalisms and Higraphs

Original paper

image

Reactive Systems

A later paper called "On the Development of Reactive Systems" provides a framing for much of the research he would publish later on. It points out a new dichotomy between transformative systems and reactive systems (pictured below).

image

Statecharts

Original Paper History of Statecharts(written by Harel)

Implementations

(This is a non-exhaustive list, there are many others out there. Happy to add more of them)

Live Sequence Charts (LSCs) and Scenario-Based Programming

ivanreese commented 2 years ago

Yes, that is definitely a missing piece. Thank you for the request and for providing so much supporting material.