Tahled

From Esolang
Jump to navigation Jump to search

Tahled is an Esolang designed by PSTF.

Overview

The sole form of data storage in Tahled is the unsigned dword.[1] Tahled has a "tape" of 30,000 of these unsigned dwordss, and a memory pointer to keep track of which value is currently being accessed.

Source code for Tahled is entered in the form of words, in any natural language. Words are considered to consist of any number of alphabetic characters and apostrophes, and any character that is not either of these is ignored and treated as a delimiter. Apostrophes do not delimit words or add to the letter count. Each word is then converted to numbers as follows:

  • If a word is less than 10 letters long, it is converted to that single digit.
  • If a word is exactly 10 letters long, it is converted to the digit 0.
  • If a word is more than 10 letters long, it is converted to the number which subtract 10 from the length of that word in mode 1, or the word length in mode 2.

Punctuations are ignored.

Each digit then turns into an instruction, and then the program is executed. The list of instructions is as follows:

Value Brainfuck Equivalent Description
1 [ If the current cell is equal to 0, jump execution to after the matching 2.
2 ] If the current cell is not equal to 0, jump execution to the matching 1.
3 + Increment the value of the current cell by next_digit. If next_digit is 0, the value used instead is 10.
4 - Decrement the value of the current cell by next_digit. If next_digit is 0, the value used instead is 10.
5 > Increment the memory pointer by next_digit. If next_digit is 0, the value used instead is 10.
6 < Decrement the memory pointer by next_digit. If next_digit is 0, the value used instead is 10.
7 . Output the value of the current byte as an ASCII character.
8 , Read a character from the input stream, and write its ASCII value to the current byte. (Note: This fails to update the current byte upon end of input.)
9 N/A Set the current byte to a random value from 0 to 255.
0 N/A End program execution here. This does not end program execution if it is used as an argument for 3, 4, 5, or 6.

Examples

Hello, world!

Mode 2

The proverbial "unconsciousness"

I was already aware,
I had understood fully.

I saw the devil,
I was perfectly still
involuntarily I paused.

There said I:
My sheer consciousness
of certain given circumstances,
I noticed,
It's nothing
     nothing
     nothing any man wouldn't learn!

A way of finding these,
I know not.

Nothing common or typical,
and yet (somehow)
very little thought,
will normally resolve every contradiction.

A foolish heart is an eternal misfortune.

XKCD Random Number

Mode 1

Ute querazisali msi querazisali, 
dle suzlielasri wis kojamideese, 
ake querazisali spi Resistancio rep querazisali sil rispaaleder y.
Dekut Darhahidliz siu Darhahidliz sia susowopriel jel susowopriel met susowopriel,
Remfi susowopriel lat siajelwpeis cal siajelwpeis miz siajelwpeis wer siajelwpeis the dsilaklisos get siajelwpeis
metis quariejsizl keo characterse chi Hallelujahe cho Multahtande cha siajelwpeis lis Resizlepias 
pri siajelwpeis Von Dialikilisuliei Tet.
Miria siajelwpeis ssi Ralmapraaat elt Suspendeium ale Pythagorase siv ventuzislai 
sia siajelwpeis pir Godlisuriiz don siajelwpeis dun siajelwpeis fyo siajelwpeis jet Laapizrroka,
Faste siajelwpeis vei siajelwpeis daa siajelwpeis dee nilbaltutis bis nilbaltutis 
lai nilbaltutis ris nilbaltutis api nilbaltutis lei nilbaltutis vun nilbaltutis sti nilbaltutis sil nilbaltutis 
Tit nilbaltutis.
Feotum Dileturaziz riazil suntitalpin shamat suntitalpin kalsis suntitalpin viosur suntitalpin bila suntitalpin ip?
Solze vaiclmmdiya jundz zelvehtaals?
Los suntitalpin kat suntitalpin, 
Lat: suntitalpin zia Sundaltital Vashile!

See also

  1. I wish this Esolang can support Unicode.