TLWNN
From Esolang
- The title of this article is incorrect because of technical limitations. There should be no title.
The Language With No Name is a programming language devised by User:Smjg. It has no name because names are not used in the language. In spite of this, "TLWNN" is frequently used as a placeholder for a name when talking about this language.
TLWNN is a dynamically typed stack-based language. It has two stacks: the main stack and the auxiliary stack. In the absence of names, all data and procedures are accessed through these stacks.
The only numeric type is the arbitrary-precision rational number. Characters are represented by their Unicode codepoints, and strings are represented by continued fractions.
TLWNN has a runtime library of arithmetical and other procedures. These procedures have, like TLWNN and everything else in it, no names.
[edit] Code examples
The following is an example of how to write the "Hello, world!" program in TLWNN.
72! 101! 108*!! 111! 44! 32! 119! 111! 114! 108! 100! 33! 10!
Any number in TLWNN code pushes that number to the main stack. The operation performed by ! depends on what is at the top of the main stack - in this instance it outputs the character corresponding to the number. The * instruction is more interesting - it duplicates what is at the top of the stack.
This more complicated program, which outputs a number of asterisks specified by the programmer, illustrates how to implement a loop.
!<<<@@> Output 100 asterisks [42! \*\>1>! decrement the counter *\[]<<<*>>\1>! check for termination *! now do it again ] *!
Anything in square brackets is a procedure. In order to loop, a procedure needs a copy of itself to duplicate and then call again. The complexity is due to the need to move various objects around the stacks in order to do the counting.
The above example also illustrates TLWNN's way of doing comments - they are simply alphabetic characters in the code.

