Udage

From Esolang

Jump to: navigation, search

Udage is an esoteric programming language primarily designed by Gs30ng, originally presenting what the author calls the "pattern programming paradigm."

Contents

[edit] Abstract

The core concept of the language is that no specific word or character is assigned to represent an instruction, but rather a pattern of characters is: if there is a Udage program with, say, the character A and you replace all A's with B's, the source code will still do exactly same thing (unless, of course, B has already been used in the original code, which would result in a collision which may change the meaning of the code drastically). All kinds of characters (in implementation, probably just all Unicode characters) can be used to write the source code: even MIDI audio or digital images.

[edit] Language overview

Note: this language is still being specified. This section describes version 0.22 specification.

In the language there is a memory space called udage, consisting of all the symbols available and a tape.

The tape is a linear memory space with unbounded cells, each containing a bit value, 0 or 1. Udages are a sort of pointer which moves on the tape and reads/writes bit values, so each udage has a pointer value that represents which cell it is on currently. Initially all bit values and pointer values are 0.

In the beginning all udages point to cell 0, which is a special value meaning it points to itself. If there are 256 symbols, the udages initially point to 256 different cells, although they all have a pointer value of 0.

The term "udage" (pronounced yer-da-gee) is from Korean word "여닫이" (Yeodaji), which refers to a door with a hinge. This is inspired by the peculiarity of the variable: it can represent 0 or 1, analogous to a door being open or closed, and it can point to a cell on the tape (every door leads to somewhere else).

[edit] Instructions

Syntax WHAT IT DOES
A changes bit value.
AABC changes pointer value.
AAAB...CCC executes repeatedly while condition is met.
AAAA...A inputs/outputs.

The whole specification translated in English is available on http://gs30ng.exca.net/udage/specification

[edit] See also

There are also some languages that have been inspired by Udage:

[edit] External resources

Personal tools