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.
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:
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).
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.
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
orOR
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:Visual formalisms and Higraphs
Original paper
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).
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