CosmicOS version cosmic.0.2

(latest version always available at CosmicOS homepage)

This version of CosmicOS transitions to a more functional core, to
simplify notation.  Using functional style also means we don't have to
deal with side-effects too early.

All the lessons are terser than they should be.  Effort is being 
devoted to getting a fairly comprehensive skeleton before 
fleshing out the individual lessons as much as they might need to be.

The generated message consists of a sequence of 8 symbols.
Each symbol has a meaning with respect to a simple functional
programming language.

  number   symbol   meaning
    0         0     evaluates to the number zero
    1         .     function that adds one to its argument (on right)
    2         :     function that multiplies its argument (on right) by two
    3         (     marks beginning of an expression - e.g. to replace argument
    4         )     marks end of an expression
    5         ?     creates a one-parameter function; takes two arguments,
                    first is an identifier, second argument is value
                    of function (can be an expression that uses identifier)
    6         ^     takes numeric argument (on right) and makes it an 
    7         ;     end of statement

reasonably readable form of message
generator of message
final form of message
tarball of all files

Estimate of message entropy: 2.4 kB.

Index of lessons

(all lessons)

0 (MATH) introduce counting
1 (MATH) now show equality
2 (MATH) now show other comparisons
3 (MATH) introduce the NOT logical operator
4 (MATH) introduce the AND logical operator
5 (MATH) introduce the OR logical operator
6 (MATH) use equality for truth values
7 (MATH) introduce addition
8 (MATH) introduce subtraction
9 (MATH) introduce multiplication
10 (MATH) introduce doubling as a special case of multiplication
11 (MATH) introduce a simple form of binary notation
12 (MATH) demonstrate idea of leaving gaps in an expression
13 (MATH) show some simple function calls
14 (MATH) show mechanisms for branching
15 (MATH) show an example of recursive evaluation
16 (MATH) introduce universal quantifier
17 (MATH) introduce existential quantifier
18 (MATH) introduce logical implication
19 (MATH) introduce sets and set membership