diff options
Diffstat (limited to 'index.html')
-rw-r--r-- | index.html | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/index.html b/index.html index 27e76540..38a7ca62 100644 --- a/index.html +++ b/index.html @@ -92,7 +92,17 @@ allowing whitespace in reagents. <br/><a href='html/017parse_tree.cc.html'>017parse_tree.cc</a>: a new syntax for representing complex types as trees using whitespace and parentheses (s-expressions). - +<br/><a href='html/018type_abbreviations.cc.html'>018type_abbreviations.cc</a>: +the core types of Mu are designed to be fully explicit and familiar to +non-programmers at the cost of some verbosity: <tt>number</tt>, +<tt>character</tt>, <tt>boolean</tt>, etc. Once learners get acclimatized, +we can teach them abbreviated forms that are familiar to veteran programmers: +<tt>num</tt>, <tt>char</tt>, <tt>bool</tt>. Mu's facility for type +abbreviations is extensible: learners can abbreviate <tt>number</tt> to +<tt>n</tt> if they so choose, thereby exploring such trade-offs. You can also +create abbreviations suitable for a specific program, like abbreviating +<tt>address:array:address:array:character</tt> to <tt>board</tt> for say a +tic-tac-toe or chess program. Think C's <tt>typedef</tt> statement. <br/><a href='html/020run.cc.html'>020run.cc</a>: executing Mu recipes by executing the list of instructions they contain. Future layers will define more primitive operations that can be used in instructions. @@ -113,7 +123,8 @@ than high-level languages can. <p/>Support for various data structures: heterogeneous compound types called <a href='html/030container.cc.html'><em>containers</em></a>, akin to records or structs, homogeneous <a href='html/032array.cc.html'>arrays</a> of a single -type of value, and <a href='html/033exclusive_container.cc.html'><em>exclusive containers</em></a>, +type of value (type <tt>array</tt> conventionally abbreviated as <tt>@</tt>), +and <a href='html/033exclusive_container.cc.html'><em>exclusive containers</em></a>, akin to C unions but with a tag so each value knows its ‘kind’. Out of these primitive types, Mu builds the usual and growing menagerie of data structures: <a href='html/064list.mu.html'>linked lists</a> permitting @@ -138,7 +149,8 @@ pointing to it. This eliminates a whole class of undefined behavior and security vulnerabilities that plague C. Compared to Rust, Mu pays some additional runtime cost in exchange for C-like flexibility (you can copy addresses around all you like, and write from any copy of an address) and -simpler implementation (no static analysis). +simpler implementation (no static analysis). Mu by convention abbreviates type +<tt>address</tt> to <tt>&</tt>. <p/>Support for higher-order recipes that can pass <a href='html/071recipe.cc.html'>recipes</a> around like any other value. |