Babble

Concept
According to Saussure, a symbol may be absolutely arbitrary (using 3 to mean the number after 2), or only relatively arbitrary, like the compound word "screwdriver", which is built from component parts that already have denotations ("screw" and "driver").

In Babble:
 * 1) There are no relatively arbitrary signs -- each symbol is both entirely arbitrary until it's explicitly defined
 * 2) Any sign is applied globally and permanently, across every Babble program running anywhere

Language Overview
Babble (not to be confused with Babel) has two types of functions: anonymous and named. Named functions have a global scope -- globally global, in that, once defined, they are available from any Babble program running anywhere. They can never be changed.

A small selection of symbols will be defined when the language goes live (1, 0, +). All other symbols are available to be defined by anyone. If I decide to use the symbol 27 to mean -4.39428, someone will have to come up with a different symbol for 27, perhaps twenty-seven, unless that too is already used. If a function has no inputs and only refers to other constants, it cannot be defined twice (if someone decides to define 28 to mean the number 27, assigning another symbol for 27 will be return an error).

Implementation to follow. It will probably be a LISPy language.