A-DU

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

A-DU is a thematic esolang currently under development by User:Salpynx based on Linear A balance ledger tablets. It is sort of like Grocery List, with more complex syntax, and fewer operations. A-DU (๐˜‡๐˜ฌ) means something like Assessment in Linear A. Most of the meanings and structure and inspiration for the Linear A aspect of this language comes from the work and resources provided online by John G. Younger. A huge thank you to him, and apologies if he ever reads this! Other sources are listed in the #Bibliography.

Overview

A-DU is a cell based language. Cells store a number and a fractional component of one kind of commodity.

Cell selection is provided by the rules governing item storage which forces the cell pointer to shift. A Cell can only store one commodity type, and there are rules that decide where to store a new commodity based on its class.

Output is available via two KEYWORDs, KU-RO for character output, and PO-TO-KU-RO for numeric (number + fraction) output.

INPUT is provided by KI-RO. Input can either be character or numeric.

Code is organised in blocks grouped by a NAME in the statement column. There are two levels of NAME: TOPONYMs (places) and ANTHROPONYMs (people). This allows for one level of nesting, i.e. people can be grouped by a place. Since the code is in the form of a a balance ledger it is important that totals add up. If a total at the end of a code block does not match the value in the current pointed to cell for a commodity, or grand-total for a NAME, the code will loop back over that block until the condition is met.

Code Structure

Code is written on 'tablets' that have at least one side ('obverse'), and optionally a 'reverse'.

Heading line, obverse:

 A-DU <1-2 word title in Linear-A syllabary>

The obverse represents the main program and commodities collected, or additions.

Heading line, reverse:

 <title> โ€ข U-MI-NA-SI โ€ข

The reverse will have NAME blocks that correspond to NAMEs on the obverse and represent commodites owed, or subtractions.

Each side has 4 columns

  1. statement (a NAME, or KEYWORD)
  2. logogram (representing a commodity to store)
  3. number
  4. fraction (optional)

KEYWORDS in statement column 1

  • KU-RO OUTPUT total
  • PO-TO-KU-RO NUM-OUTPUT grand-total
  • KI-RO INPUT owed

Commodities are listed in blocks belonging to a NAME.

Commodities are stored in storage cells. Amounts are represented by whole numbers, and (optional) fractions. Each storage cell can store only one kind of commodity.

There are multiple classes of commodity. Three main classes are: Livestock, Agricultural, Liquids. Additionally there are Humans (professions / workers), and man-made commodities (like cloth, armour, and weapons). There are also modifiers which extend the number of commodities that can be used for storage.

Rules for allocating storage cells

Livestock are stored to the left of Agricultural produce, which are stored to the left of Liquids.

 BOS	1
 GRA	2

Will store one ox (BOS) in cell 0, storing 2 measures of grain (GRA) moves the cell one to the right. From here, BOS will move left, a Liquid will move right, another Livestock will move 2 right, another Agricultural will move 3 right. If a commodity is already stored, the pointer moves to the nearest cell already containing that commodity.

  • Livestock
    • BOS - Oxen
    • OVIS - Sheep
    • CAP - Goats
  • Agricultural
    • GRA - Grain
    • FIC - Figs
    • OLIV - Olives
  • Liquids
    • VIN - Wine
    • OLE - Olive Oil
  • Other
    • VIR - People / professions
    • TELA - Cloth

Examples

Cat

A-DU KA-TU
SA-RAโ‚‚  VIR     1
KI-RO
KU-RO           1

Original script (requires Linear A unicode font)

๐˜‡๐˜ฌ ๐˜พ๐˜น
๐˜ž๐˜ฝ ๐™‡ ๐„‡
๐™‚๐˜ธ
๐™‚๐˜ ใ€€ ๐„‡

Truth-machine

A-DU TWO-TU
SA-RAโ‚‚  CAP     1
KI-RO
KA-PA
PO-TO-KU-RO

Hello World

A-DU HA-RO WO-RU-DU
SA-RAโ‚‚  BOS      72
KU-RO            72
        BOS      29
KU-RO           101
        BOS       7
KU-RO           108
KU-RO           108
        GRA     111
KU-RO           111
        VIN      44
KU-RO            44
        CAP      32
KU-RO            32
        VIN      43
KU-RO            87
KU-RO   GRA     111
        GRA       3
KU-RO           114
KU-RO   BOS     108
        VIN      13
KU-RO           100
        CAP       1
KU-RO            33

Variable length loop

This is a two sided tablet, the reverse contains decrements (owed by KA-PA). The program prompts for numeric input, then outputs a countdown from that number to zero. SA-RAโ‚‚ and KA-PA are the two NAME labels.

A-DU WA-RU-PU
SA-RAโ‚‚  VIR     1
KI-RO
KA-PA

WA-RU-PU โ€ข U-MI-NA-SI โ€ข
KA-PA   VIR     1
PO-TO-KU-RO

External resources

Bibliography