From: Jason Eisner Date: Thu, 15 Aug 2013 12:48:29 +0000 (-0400) Subject: expanded overview slightly X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=79da32c10474b0a4768b966a423a177bfd14c110;p=dyna2 expanded overview slightly --- diff --git a/README.md b/README.md index d9ce4fb..3fc812e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,20 @@ Dyna ---- -Dyna is a small, high-level declarative programming language. Dyna programs -specify a collection of named data items. These item's can be queried, much like -a database. Dyna's power comes from the ability to define an item's value by -relating other items with an equation. These possibly recursive equations -specify the logical structure of a computation. Thus, Dyna provides a unified -way of specifying both data and algorithms. Dyna's algorithms are reactive---a -change to an item's value efficiently propagates throughout the dynabase so that -all equations are satisfied. +Dyna is a small, high-level declarative programming language. A Dyna +program specifies a collection of named data items. These items can +be queried, much like a database. Dyna's power comes from the ability +to define an item's value by rule from the values of other items, much +like a spreadsheet. Thus, Dyna provides a unified way of specifying +both data and algorithms. Dyna's algorithms are reactive: a change to +an item's value efficiently propagates to related items, changing +their values for future queries. + +The definitions in a Dyna program simply state the logical structure +of a computation. They do not have to specify implementation details +such as data structures or execution order. The definitions can be +recursive. They can involve pattern matching on the names of related +items, as in Prolog, and they can aggregate values from many matches. Background and Tutorials ------------------------