Babble

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

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.