From f344b250f6f062a1a1902bf69b23ebf9b565de0e Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 17 Sep 2016 15:01:51 -0700 Subject: 3395 --- index.html | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'index.html') 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.
017parse_tree.cc: a new syntax for representing complex types as trees using whitespace and parentheses (s-expressions). - +
018type_abbreviations.cc: +the core types of Mu are designed to be fully explicit and familiar to +non-programmers at the cost of some verbosity: number, +character, boolean, etc. Once learners get acclimatized, +we can teach them abbreviated forms that are familiar to veteran programmers: +num, char, bool. Mu's facility for type +abbreviations is extensible: learners can abbreviate number to +n if they so choose, thereby exploring such trade-offs. You can also +create abbreviations suitable for a specific program, like abbreviating +address:array:address:array:character to board for say a +tic-tac-toe or chess program. Think C's typedef statement.
020run.cc: 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.

Support for various data structures: heterogeneous compound types called containers, akin to records or structs, homogeneous arrays of a single -type of value, and exclusive containers, +type of value (type array conventionally abbreviated as @), +and exclusive containers, 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: linked lists 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 +address to &.

Support for higher-order recipes that can pass recipes around like any other value. -- cgit 1.4.1-2-gfad0