Esolang:Featured languages/Candidates

From Esolang
Jump to navigation Jump to search

To propose a language to be featured, edit the list of candidates, adding the language as a list item consisting of a link to the language's article. The entry should be added in alphabetical order, symbols first, like the language list.

Process

Any user (whether registered or anonymous) can suggest one language to be featured by listing it on this page; however, suggesting your own languages is forbidden. Every so often (we're not sure of the exact time span yet), an administrator will choose a language from the available candidates, roughly according to the following criteria:

  • The language's article should be well-written and formatted, with all the relevant details. If you want to suggest a language with a rough article, improve the article first! In particular, a language's article must contain at least a brief specification for it to be considered.
  • Languages with examples on the page are given preference to those without, unless no examples can be provided.
  • Languages with linked implementations are given preference to those without, again unless an implementation is impossible.
  • Languages with more novel concepts and themes are given preference. That is, languages with obscure paradigms are given preference to those that have many siblings and, for example, two stack-based languages are unlikely to be featured consecutively.
  • Languages that have not already been featured are strongly preferred, unless it has been a long time since it was previously featured, or significant new developments have occurred that warrant a second featuring.

Beyond those criteria, the choice of language is up to the discretion of the administrator. Once the language is selected, the administrator will write a blurb for the main page, feature the language, and remove it from the list of candidates. If none of the candidates meet the criteria, then the current language will likely stay until more are proposed; if a significant amount of time has passed since the featured language change, then the administrator can select a language per their own whims (and this process should be reviewed!).

Periodically, the list of candidates will be blanked, and people will be allowed to submit candidate languages once again, with the caveat that the same person cannot submit the same language twice in a row. This will be done infrequently, so make your suggestion count.

List of candidates

  • 1+ is a stack-based esoteric programming language conceived by User:Parcly Taxel where 1 is the only literal. It only has 15 possible diverse syntactic items, however despite this restricted set of instructions, it is actually very easy and user-friendly to program in. For an easy language one would expect a full set of arithmetic instructions, but 1+ only has two of them: + (addition) and * (multiplication), and this concept has beed derived from the concept of integer complexity, and it is possible to produce any numeric constant using only these two arithmetic operations. 1+ is unique as well; it has special stack-manipulating instructions such as \ (rotate the stack downwards) and / (rotate the stack upwards), which is uncommon in more normal stack-based languages such as Forth. This allows programmers to manipulate the stack much more easily, thus ensuring the easiness of programming in this. Control flow is also relatively simple, and there are only two of them that exist in 1+: # (a goto instruction in 1+) and (|) (the way to define subprocedures). The goto instruction is capable of producing conditional statements because the * instruction can multiply a constant conditionally based on whether it is 0, and the subprocedure syntax is there for making programming even easier and higher-level. (more…)
- TwilightSparkle 12:24, 5 March 2019 (UTC)
  • Befunge is an esoteric programming language invented by Chris Pressey in 1993 where code is stored in a two-dimensional grid of instructions, each encoded by an ASCII character. The instruction pointer can travel through the grid in any of the four cardinal directions. Control flow instructions change the direction of execution. Data is stored on a Forth-like stack, as well as in the same grid that store the instructions. Befunge is popular in the esoteric programming community: there are several interpreters and compilers, there is at least one IRC bot written in Befunge, and at some point new users on this wiki were required to solve a befunge captcha. (more…)
(Currently not proposed; left here for the feature paragraph.)
  • bitch is a minimalistic esoteric programming language created by User:Helen in 2019 inspired by Arphimigon's BITCHWISE. Data is stored on only one accumulator. Only bitwise operations, input and output, and basic control flow can be performed using it. It is designed to be an absolute pain to program in: bitwise limitations of the commands in bitch significantly increases the difficulty of creating a useful algorithm using it. However, it was successfully proven to be Turing-complete(via compiling to the Turing machine), which went beyond the expectations of many people. bitch has rapidly gained popularity in the esoteric community; it was just a few months before people on IRC start to talk frequently about it. It has been shown to be very useful for writing programs: any finite-state automaton can be simulated using it; simulating a push-down automata will be very easy via ] for push and [ for pop; the bounded random-access memory is also very convenient.(more…)
- A 12:24, 5 March 2019 (UTC)
  • Mascarpone is a stack-based, self-redefining programming language designed by Chris Pressey in 2007 as a successor to Emmental. In Mascarpone, meta-circular interpreters are first-class values; the interpreter currently being used to interpret the program may be pushed onto the stack ("reified") and manipulated, and an interpreter on the stack may be popped and used as the interpreter for the following part of the program ("deified").

-Слон из ЖЕЛЕЗА (talk) 08:05, 25 February 2024 (UTC)

  • Nopfunge is an esoteric programming language invented by Hubert Lamontagne in 2015. Nopfunge code is stored in a two-dimensional grid of instructions, and part of the code is periodic, infinitely repeated towards the right and bottom. The instruction pointer can travel through the grid in any of the four cardinal directions. There are only five instructions: four to change the direction of execution to a given direction, and a NOP that leaves the direction unchanged. Despite this, Nopfunge is Turing-complete, because it can simulate a Minsky machine with two counters (a Turing machine with two read-only tapes). (more…)
(I have removed my proposal of Befunge because I expect that other esolangers will propose it, and spend my one vote in a more useful way.) – b_jonas 18:08, 2 January 2020 (UTC)
  • Underload is an esoteric programming language invented by User:ais523 that is only Turing complete using the self-interpret command. It uses a stack to store values and the only value that can be stored there is the code block. It has 8 commands, but only 3 of them are actually needed: make a new block (), duplicate the top of the stack :, and run the block on top of the stack ^. This very restricted yet Turing complete instruction set makes Underload very useful for proving other esoteric programming languages with self-interpretation Turing complete. For example, a previously featured language Emmental was proved Turing complete by writing an Underload interpreter in it. (more…) Camto 21:06, 13 March 2019 (UTC)
  • Pxem, designed and published by "nk." (formerly "ぬこ"; nuko) in 2008 but had been lost and forgotten for some years to revive in 2018, is an esoteric programming language where code is stored to not only content of source file, but also to filename. This feature enables you to program with source files with no content. For example, an empty file named Hello, world!.pxe outputs the string Hello, world!. This language is essentially a stack-based language. Each built-in command is consist of a period (.) and a character. Pxem stores datum as integers to a stack and a heap. Pxem has two ways of changing control-flows: (a) to use while-loop, and (b) to code subroutine in content of file and call it recursively. While many other stack-based languages has arithmetic commands depending on in what order two top items of stack are stacked, those of Pxem depends on ordering on two integers stacked on top. Unlike many other stack-based languages, Pxem has a built-in to reverse the order of items contained in stack, which enables you to use the stack as a deque. It is also uncommon in viewpoint of parsing tokens that literal datum consists of a string is pushed to stack in reverse order. (more...)
----YamTokTpaFa (talk) 07:57, 6 July 2020 (UTC)