|
12 | 12 |
|
13 | 13 | <div class="page"> |
14 | 14 |
|
15 | | -<h1>Escher language</h1> |
| 15 | +<h1>Escher programming language</h1> |
16 | 16 |
|
17 | | -<p>Web pages and links form a graph. Data-center computers and cables form a graph. |
18 | | -Application processes and connections form a graph. Facebook users and |
19 | | -friendships form a graph. Facebook groups and memberships form a graph. |
20 | | -Neurons and synapses form a graph. Threads and shared data structures form a graph. |
| 17 | +<h2>Motivation</h2> |
| 18 | + |
| 19 | +<p>Web pages and links form a graph. |
| 20 | +Data-center computers and cables form a graph. |
| 21 | +Application processes and connections form a graph. |
| 22 | +Facebook users and friendships form a graph. |
| 23 | +Facebook groups and memberships form a graph. |
| 24 | +Neurons and synapses form a graph. |
| 25 | +Threads and shared data structures form a graph. |
21 | 26 | Processes and sockets form a graph. |
22 | 27 |
|
23 | 28 | <p>Not only are all of the above situations visually described by graphs, but also |
24 | 29 | their essential behavior (as best as we understand it) is the same in all cases: |
25 | | -Independent processing units, pairwise-interlinked by sequential channels — both channels |
26 | | -and processors emerging and disappearing asynchronously. |
| 30 | +They are comprised of independent processing units, |
| 31 | +which are pairwise-interlinked by sequential channels, |
| 32 | +while both channels and processors are emerging and disappearing asynchronously. |
27 | 33 |
|
28 | 34 | <p>Three decades ago, before the above examples were within practical reach, |
29 | | -a British gentleman—named <a href="http://en.wikipedia.org/wiki/Tony_Hoare">Tony |
30 | | -Hoare</a>—had noticed that this essential behavior was exhibited by virtually |
31 | | -all identifiable interacting physical (as well as man-made abstract) entities: People interacting with people, |
32 | | -people interacting with vending machines, components of vending |
33 | | -machines interacting with each other, animals interacting with animals, |
34 | | -cells interacting with cells, proteins interacting with proteins, and so on. |
| 35 | +a British gentleman — named <a href="http://en.wikipedia.org/wiki/Tony_Hoare">Tony |
| 36 | +Hoare</a> — had noticed that this essential behavior was exhibited by virtually |
| 37 | +all identifiable interacting physical (as well as man-made abstract) entities: |
| 38 | +People interacting with people, |
| 39 | +people interacting with vending machines, |
| 40 | +components of vending machines interacting with each other, |
| 41 | +animals interacting with animals, |
| 42 | +cells interacting with cells, |
| 43 | +proteins interacting with proteins, |
| 44 | +and so on. |
35 | 45 |
|
36 | 46 | <p>He called this high-level behavioral model of the world (or discernible subsystems thereof) |
37 | 47 | <a href="http://en.wikipedia.org/wiki/Communicating_sequential_processes">Communicating Sequential Processes</a>. |
38 | 48 | Hoare's model is nothing more and nothing less than a minimal abstraction of how |
39 | | -we see and understand (and subsequently will to control) the world from an |
40 | | -observer—i.e. third person—point of view. |
| 49 | +we see and understand (and subsequently will to control) the world |
| 50 | +from an observer — i.e. third person — point of view. |
41 | 51 |
|
42 | | -<p>I prefer to call such systems <em>circuits</em> both for brevity and for the fact that |
| 52 | +<p>I prefer to call such systems <em>circuits</em>, both for brevity and for the fact that |
43 | 53 | electrical circuits were probably the first man-made manifestation of communicating sequential |
44 | 54 | processes that was rich, flexible and not present in untouched nature. |
45 | 55 |
|
46 | 56 | <p>Today's connected Internet services and devices are no different than electrical components on |
47 | 57 | a circuit: They are independent processing units communicating via sequential streams of |
48 | 58 | data, as opposed to sequential streams of changes in electrical voltage. The difference |
49 | | -between circuits analog and digital is entirely linguistic: It is the difference between a |
| 59 | +between analog and digital circuits is entirely linguistic: It is the difference between a |
50 | 60 | floating-point number (the voltage) and a data structure (a digital message). |
51 | 61 |
|
52 | 62 | <p>If it is indeed the case that most things that we program or that we program about |
53 | 63 | are circuits at the end of the day, then it is only appropriate to complement Hoare's |
54 | | -model of everything with an appropriate programming language. This is the goal of Escher. |
| 64 | +model of everything with an appropriate programming language. |
| 65 | +This is the goal of Escher. |
55 | 66 |
|
56 | 67 | <h2>Sources</h2> |
57 | 68 |
|
|
0 commit comments