fbpx
Wikipedia

Esoteric programming language

An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language (particularly functional programming or procedural programming languages), or as a joke. The use of the word esoteric distinguishes them from languages that working developers use to write software. The creators of most esolangs do not intend them to be used for mainstream programming, although some esoteric features, such as visuospatial syntax,[1] have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.[citation needed]

Usability is rarely a goal for designers of esoteric programming languages; often their design leads to quite the opposite. Their usual aim is to remove or replace conventional language features while still maintaining a language that is Turing-complete, or even one for which the computational class is unknown.

History edit

The earliest, and still the canonical example of an esoteric programming language, is INTERCAL,[2] designed in 1972 by Don Woods and James M. Lyon, who said that their intention was to create a programming language unlike any with which they were familiar.[3][4] It parodied elements of established programming languages of the day such as Fortran, COBOL and assembly language.

For many years, INTERCAL was represented only by paper copies of the INTERCAL manual. Its revival in 1990 as an implementation in C under Unix stimulated a wave of interest in the intentional design of esoteric computer languages.

In 1993, Wouter van Oortmerssen created FALSE, a small stack-oriented programming language with syntax designed to make the code inherently obfuscated, confusing and unreadable. Its compiler is only 1024 bytes in size.[5] This inspired Urban Müller to create an even smaller language, the now-infamous Brainfuck, which consists of only eight recognized characters. Along with Chris Pressey's Befunge (like FALSE, but with a two-dimensional instruction pointer), Brainfuck is now one of the best-supported esoteric programming languages, with canonical examples of minimal Turing tarpits and needlessly obfuscated language features. Brainfuck is related to the P′′ family of Turing machines.

Common features edit

While esoteric programming languages differ in many ways, there are some common traits that characterize many languages, such as parody, minimalism, and the goal of making programming difficult.[6] Many esoteric programming languages, such as brainfuck, and similar, use single characters as commands, however, it is not uncommon for languages to read line by line like conventional programming languages.

Unique data representations edit

Conventional imperative programming languages typically allow data to be stored in variables, but esoteric languages may utilize different methods of storing and accessing data. Languages like Brainfuck and Malbolge only permit data to be read through a single pointer, which must be moved to a location of interest before data is read. Others, like Befunge and Shakespeare, utilize one or more stacks to hold data, leading to a manner of execution akin to Reverse Polish notation. Finally, there are languages which explore alternative forms of number representation: the Brainfuck variant Boolfuck only permits operations on single bits, while Malbolge and INTERCAL variant TriINTERCAL replace bits altogether with a base 3 ternary system.[7]

Unique instruction representations edit

Esoteric languages also showcase unique ways of representing program instructions. Some languages, such as Befunge and Piet, represent programs in two or more dimensions, with program control moving around in multiple possible directions through the program.[8][page needed] This differs from conventional languages in which a program is a set of instructions usually encountered in sequence. Other languages modify instructions to appear in an unusual form, often one that can be read by humans with an alternate meaning to the underlying instructions. Shakespeare achieves this by making all programs resemble Shakespearian plays. Chef achieves the same by having all programs be recipes.[7] Chef is particularly notable in that some have created programs that successfully function both as a program and as a recipe, demonstrating the ability of the language to produce this double meaning.[9]

Difficulty to read and write edit

Many esoteric programming languages are designed to produce code that is deeply obfuscated, making it difficult to read and to write.[10] The purpose of this may be to provide an interesting puzzle or challenge for program writers: Malbolge for instance was explicitly designed to be challenging, and so it has features like self-modifying code and highly counterintuitive operations.[10] On the other hand, some esoteric languages become difficult to write due to their other design choices. Brainfuck is committed to the idea of a minimalist instruction set, so even though its instructions are straightforward in principle, the code that arises is difficult for a human to read. INTERCAL's difficulty arises as a result of the choice to avoid operations used in any other programming language, which stems from its origin as a parody of other languages.[10]

Parody and spoof edit

One of the aims of esoteric programming languages is to parody or spoof existing languages and trends in the field of programming.[10] For instance, the first esoteric language INTERCAL began as a spoof of languages used in the 1960s, such as APL, Fortran, and COBOL. INTERCAL's rules appear to be the inverse of rules in these other languages.[11] However, the subject of parody is not always another established programming language. Shakespeare can be viewed as spoofing the structure of Shakespearean plays, for instance. The language Ook! is a parody of Brainfuck, where Brainfuck's eight commands are replaced by various orangutang sounds like "Ook. Ook?"[7]

Examples edit

Befunge edit

Befunge allows the instruction pointer to roam in multiple dimensions through the code. For example, the following program displays "Hello World" by pushing the characters in reverse order onto the stack, then printing the characters in a loop which circulates clockwise through the instructions >, :, v, _, ,, and ^.

 "dlroW olleH">:v   ^,_@ 

There are many versions of Befunge, the most common being Befunge-93, which is named as such because it was released in 1993.[12]

Binary lambda calculus edit

Binary lambda calculus is designed from an algorithmic information theory perspective to allow for the densest possible code with the most minimal means, featuring a 29-byte self interpreter, a 21-byte prime number sieve, and a 112-byte Brainfuck interpreter.[13]

Brainfuck edit

Brainfuck is designed for extreme minimalism and leads to obfuscated code, with programs containing only eight distinct characters. The following program outputs "Hello, world!":[14]

++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++  ..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+. 

All characters other than +-<>,.[] are ignored.

Chicken edit

Chicken has just three tokens, the word "chicken", " " (the space character), and the newline character. The compiler interprets the amount of "chickens" on a line as an opcode instruction which it uses to manipulate data on a stack. A simple chicken program can contain dozens of lines with nothing but the word "chicken" repeated countless times.[15] Chicken was invented by Torbjörn Söderstedt who drew his inspiration for the language from a parody of a scientific dissertation.[16][17][18]

Chef edit

Chef is a stack-oriented programming language created by David Morgan-Mar, designed to make programs look like cooking recipes.[19] Programs consist of a title, a list of variables and their data values, and a list of stack manipulation instructions.[20] A joking design principle states that "program recipes should not only generate valid output, but be easy to prepare and delicious", and Morgan-Mar notes that an example "Hello, World!" program with "101 eggs" and "111 cups oil" would produce "a lot of food for one person."[20][21]

FRACTRAN edit

A FRACTRAN program is an ordered list of positive fractions together with an initial positive integer input  . The program is run by multiplying the integer   by the first fraction   in the list for which   is an integer. The integer   is then replaced by   and the rule is repeated. If no fraction in the list produces an integer when multiplied by  , the program halts. FRACTRAN was invented by mathematician John Conway.[22]

GolfScript edit

Programs in GolfScript, a language created for code golf, consist of lists of items, each of which is pushed onto the stack as it is encountered, with the exception of variables which have code blocks as their value, in which case the code is executed.[23]

INTERCAL edit

INTERCAL, short for "Compiler Language With No Pronounceable Acronym", was created in 1972 as a parody to satirize aspects of the various programming languages at the time.[4]

JSFuck edit

JSFuck is an esoteric programming style of JavaScript, where code is written using only six characters: [, ], (, ), !, and +. Unlike Brainfuck, which requires its own compiler or interpreter, JSFuck is valid JavaScript code, meaning JSFuck programs can be run in any web browser or engine that interprets JavaScript.[24][25] It has been used in a number of cross-site scripting (XSS) attacks on websites such as eBay due to its ability to evade cross-site scripting detection filters.[26]

LOLCODE edit

LOLCODE is designed to resemble the speech of lolcats. The following is the "Hello World" example:

HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE 

While the semantics of LOLCODE is not unusual, its syntax has been described as a linguistic phenomenon, representing an unusual example of informal speech and internet slang in programming.[27]

Malbolge edit

Malbolge (named after the 8th circle of Hell) was designed to be the most difficult and esoteric programming language. Among other features, code is self-modifying by design and the effect of an instruction depends on its address in memory.[28]

Piet edit

 
Piet program that prints 'Piet'
 
A "Hello World" program in Piet

Piet is a language designed by David Morgan-Mar, whose programs are bitmaps that look like abstract art.[29] The execution is guided by a "pointer" that moves around the image, from one continuous coloured region to the next. Procedures are carried out when the pointer exits a region.

There are 20 colours for which behaviour is specified: 18 "colourful" colours, which are ordered by a 6-step hue cycle and a 3-step brightness cycle; and black and white, which are not ordered. When exiting a "colourful" colour and entering another one, the performed procedure is determined by the number of steps of change in hue and brightness. Black cannot be entered; when the pointer tries to enter a black region, the rules of choosing the next block are changed instead. If all possible rules are tried, the program terminates. Regions outside the borders of the image are also treated as black. White does not perform operations, but allows the pointer to "pass through". The behaviour of colours other than the 20 specified is left to the compiler or interpreter.[29][non-primary source needed]

Variables are stored in memory as signed integers in a single stack. Most specified procedures deal with operations on that stack, while others deal with input/output and with the rules by which the compilation pointer moves.[30]

Piet was named after the Dutch painter Piet Mondrian.[31] The original intended name, Mondrian, was already taken by an open-source statistical data-visualization system.[29]

REON-4213 edit

The REON-4213 programming language is an example of a mixed esoteric language, programming language, and musical language blended together and used in the video game series of Ar tonelico. This unique format allows a video game to broach the subject of programming in an entertaining manner that is suitable for younger audiences.

Although this language cannot be used to express application code it uses concepts from real programming languages such as C++ and JavaScript to introduce the ideas and structures of software code.

Rockstar edit

Rockstar is a computer programming language designed for creating programs that are also hair metal power ballads. It was created by Dylan Beattie.[32][33][34]

Shakespeare edit

Shakespeare is designed to make programs look like Shakespearean plays. For example, the following statement declares a point in the program which can be reached via a GOTO-type statement:[citation needed]

 Act I: Hamlet's insults and flattery. 

Storyteller edit

Storyteller is a computer programming language designed to make programs look like rich, emotional narrative.[35]

Unlambda edit

Unlambda is a minimalist functional programming language based on SKI calculus, but combined with first-class continuations and imperative I/O (with input usually requiring the use of continuations).[36]

Whitespace edit

Whitespace uses only whitespace characters (space, tab, and return), ignoring all other characters, which can therefore be used for comments. This is the reverse of many traditional languages, which do not distinguish between different whitespace characters, treating tab and space the same. It also allows Whitespace programs to be hidden in the source code of programs in languages like C.[citation needed]

Cultural context edit

The cultural context of esolangs has been studied by Geoff Cox, who writes that esolangs "shift attention from command and control toward cultural expression and refusal",[37] seeing esolangs as similar to code art and code poetry, such as Mez Breeze's mezangelle, a belief shared by others in field.[38] Daniel Temkin describes Brainfuck as "refusing to ease the boundary between human expression and assembly code and thereby taking us on a ludicrous journey of logic,"[39] exposing the inherent conflict between human thinking and computer logic by deconstructing their relationship. He connects programming within an esolang to performing an event score such as those of the Fluxus movement, where playing out the irregular rules of the logic in code makes the point of view of the language clear.[40]

References edit

  1. ^ McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). "Visualisation of Live Code". In Electronic Visualisation and the Arts, London: 2010.
  2. ^ Matthew Fuller, Software Studies, MIT Press, 2008
  3. ^ Eric S. Raymond (1996). The New Hacker's Dictionary. MIT Press. p. 258. ISBN 978-0-262-68092-9.
  4. ^ a b Woods, Donald R.; Lyon, James M. (1973), The INTERCAL Programming Language Reference Manual, Muppetlabs.com, retrieved 1 May 2023
  5. ^ "Interview with Wouter van Oortmerssen". Esoteric.codes. 1 July 2015. Retrieved 1 May 2023.
  6. ^ Fuller, Matthew (2008). Software studies: a lexicon. MIT Press. ISBN 978-0-262-06274-9. OCLC 1156851190.
  7. ^ a b c Morr, Sebastian. "Esoteric Programming Languages." (2015).
  8. ^ Cox 2013.
  9. ^ Mike (31 March 2013). "Baking a Hello World Cake". Products of Mike's Mind. Retrieved 1 May 2023.
  10. ^ a b c d Mateas, M. and Montfort, N. A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics. In Digital Arts and Culture: Digital Experience: Design, Aesthetics, Practice (DAC 2005), Copenhagen, Denmark, 2005.
  11. ^ Gaboury, Jacob (2018). "Critical Unmaking: Toward a Queer Computation". In Jentery Sayers (ed.). The Routledge Companion to Media Studies and Digital Humanities. New York: Routledge. pp. 483–491. doi:10.4324/9781315730479-50. ISBN 978-1-315-73047-9.
  12. ^ "Languages".
  13. ^ John Tromp. "Most functional". The International Obfuscated C Code Contest.
  14. ^ "El Brainfuck". copy.sh. Retrieved 30 November 2022.
  15. ^ ""Hello world" in Esoteric Programming Languages? (Esolangs)". DEV Community 👩‍💻👨‍💻. 25 July 2020. Retrieved 4 December 2022.
  16. ^ "Weirdest Programming Languages | Programming". www.omnesgroup.com. 8 August 2018. Retrieved 4 December 2022.
  17. ^ "8 Goofy Programming Languages". 27 April 2022.
  18. ^ Hongkiat.com (8 September 2021). "10 Most Bizarre Programming Languages, Vol. 2". Hongkiat. Retrieved 4 December 2022.
  19. ^ Cozens, Simon (2005). Advanced Perl programming. O'Reilly Media. p. 269. ISBN 978-0-596-00456-9. A final Acme curiosity, and one of my favourites, is Acme::Chef, an implementation of David Morgan-Mar's Chef programming language. In Chef, programs are expressed in the form of recipes: ...
  20. ^ a b Morgan-Mar, David (24 March 2011). "Chef". DM's Esoteric Programming Languages. Self-published. Retrieved 1 May 2023.
  21. ^ Morgan-Mar, David (28 June 2014). "Chef - Hello World". DM's Esoteric Programming Languages. Self-published. Retrieved 1 May 2023.
  22. ^ Kneusel, Ronald (2022). Strange Code: Esoteric Languages That Make Programming Fun Again. No Starch Press. p. 217. ISBN 978-1718502406.
  23. ^ Smith, Darren (2007). "GolfScript Tutorial".
  24. ^ Bailey, Jane (29 February 2016). "Bidding on Security". The Daily WTF. Retrieved 2 March 2020.
  25. ^ "Exploring JSF*ck". alligator.io. Retrieved 2 March 2020.
  26. ^ Dan Goodin (3 February 2016). "eBay has no plans to fix "severe" bug that allows malware distribution [Updated]". Ars Technica.
  27. ^ Zabenkov, A.A.; Morel Morel, D.A. (2014). "Esoteric programming languages as a state-of-the-art semiotic trend". Experientia Est Optima Magistra: Collected Arts. 3. Belgorod State University: 170.
  28. ^ Temkin, Daniel (3 November 2014). "Interview with Ben Olmstead". esoteric.codes. Retrieved 7 January 2021.
  29. ^ a b c Morgan-Mar, David (25 January 2008). "Piet". Retrieved 1 May 2023.
  30. ^ Kneusel, Ronald (2022). Strange Code: Esoteric Languages That Make Programming Fun Again. No Starch Press. pp. 246–247. ISBN 978-1718502406.
  31. ^ Cox 2013, p. 6
  32. ^ "rockstar: home". codewithrockstar.com.
  33. ^ Lewrypublished, Fraser (1 August 2018). "Meet the boffin behind a computer programming language based on power ballads". loudersound.
  34. ^ Doctorow, Cory (25 July 2018). "Rockstar: a programming language whose code takes the form of power ballads". Boing Boing.
  35. ^ "Storyteller". www.github.com.
  36. ^ Chu-Carroll, Mark C. (11 August 2006). "Friday Pathological Programming: Unlambda, or Programming Without Variables". Good Math, Bad Math (blog). ScienceBlogs.
  37. ^ Cox 2013, p. 5
  38. ^ "The true meaning of esoteric programming languages". Apifonica. Retrieved 30 November 2023.
  39. ^ Temkin, Daniel (15 January 2014). "Glitch && Human/Computer Interaction". NOOART: The Journal of Objectless Art (1).
  40. ^ Temkin, Daniel (8 May 2013). "brainfuck". Media-N Journal (Spring 2013). Retrieved 1 May 2023.

Bibliography edit

  • Paloque-Bergès, Camille (2009). "Langages ésotériques". Poétique des codes sur le réseau informatique. Archives contemporaines. ISBN 978-2-914610-70-4.
  • Cox, Geoff (2013). Speaking Code: Coding as Aesthetic and Political Expression. MIT Press. ISBN 978-0-262-01836-4.
  • Kneusel, Ronald (2022). Strange Code: Esoteric Languages That Make Programming Fun Again. No Starch Press. ISBN 978-1718502406.

External links edit

  • Esolang, the esoteric programming languages wiki
  • Obfuscated Programming Languages at Curlie

esoteric, programming, language, esoteric, programming, language, sometimes, shortened, esolang, programming, language, designed, test, boundaries, computer, programming, language, design, proof, concept, software, hacking, interface, another, language, partic. An esoteric programming language sometimes shortened to esolang is a programming language designed to test the boundaries of computer programming language design as a proof of concept as software art as a hacking interface to another language particularly functional programming or procedural programming languages or as a joke The use of the word esoteric distinguishes them from languages that working developers use to write software The creators of most esolangs do not intend them to be used for mainstream programming although some esoteric features such as visuospatial syntax 1 have inspired practical applications in the arts Such languages are often popular among hackers and hobbyists citation needed Usability is rarely a goal for designers of esoteric programming languages often their design leads to quite the opposite Their usual aim is to remove or replace conventional language features while still maintaining a language that is Turing complete or even one for which the computational class is unknown Contents 1 History 2 Common features 2 1 Unique data representations 2 2 Unique instruction representations 2 3 Difficulty to read and write 2 4 Parody and spoof 3 Examples 3 1 Befunge 3 2 Binary lambda calculus 3 3 Brainfuck 3 4 Chicken 3 5 Chef 3 6 FRACTRAN 3 7 GolfScript 3 8 INTERCAL 3 9 JSFuck 3 10 LOLCODE 3 11 Malbolge 3 12 Piet 3 13 REON 4213 3 14 Rockstar 3 15 Shakespeare 3 16 Storyteller 3 17 Unlambda 3 18 Whitespace 4 Cultural context 5 References 6 Bibliography 7 External linksHistory editThe earliest and still the canonical example of an esoteric programming language is INTERCAL 2 designed in 1972 by Don Woods and James M Lyon who said that their intention was to create a programming language unlike any with which they were familiar 3 4 It parodied elements of established programming languages of the day such as Fortran COBOL and assembly language For many years INTERCAL was represented only by paper copies of the INTERCAL manual Its revival in 1990 as an implementation in C under Unix stimulated a wave of interest in the intentional design of esoteric computer languages In 1993 Wouter van Oortmerssen created FALSE a small stack oriented programming language with syntax designed to make the code inherently obfuscated confusing and unreadable Its compiler is only 1024 bytes in size 5 This inspired Urban Muller to create an even smaller language the now infamous Brainfuck which consists of only eight recognized characters Along with Chris Pressey s Befunge like FALSE but with a two dimensional instruction pointer Brainfuck is now one of the best supported esoteric programming languages with canonical examples of minimal Turing tarpits and needlessly obfuscated language features Brainfuck is related to the P family of Turing machines Common features editWhile esoteric programming languages differ in many ways there are some common traits that characterize many languages such as parody minimalism and the goal of making programming difficult 6 Many esoteric programming languages such as brainfuck and similar use single characters as commands however it is not uncommon for languages to read line by line like conventional programming languages Unique data representations edit Conventional imperative programming languages typically allow data to be stored in variables but esoteric languages may utilize different methods of storing and accessing data Languages like Brainfuck and Malbolge only permit data to be read through a single pointer which must be moved to a location of interest before data is read Others like Befunge and Shakespeare utilize one or more stacks to hold data leading to a manner of execution akin to Reverse Polish notation Finally there are languages which explore alternative forms of number representation the Brainfuck variant Boolfuck only permits operations on single bits while Malbolge and INTERCAL variant TriINTERCAL replace bits altogether with a base 3 ternary system 7 Unique instruction representations edit Esoteric languages also showcase unique ways of representing program instructions Some languages such as Befunge and Piet represent programs in two or more dimensions with program control moving around in multiple possible directions through the program 8 page needed This differs from conventional languages in which a program is a set of instructions usually encountered in sequence Other languages modify instructions to appear in an unusual form often one that can be read by humans with an alternate meaning to the underlying instructions Shakespeare achieves this by making all programs resemble Shakespearian plays Chef achieves the same by having all programs be recipes 7 Chef is particularly notable in that some have created programs that successfully function both as a program and as a recipe demonstrating the ability of the language to produce this double meaning 9 Difficulty to read and write edit Many esoteric programming languages are designed to produce code that is deeply obfuscated making it difficult to read and to write 10 The purpose of this may be to provide an interesting puzzle or challenge for program writers Malbolge for instance was explicitly designed to be challenging and so it has features like self modifying code and highly counterintuitive operations 10 On the other hand some esoteric languages become difficult to write due to their other design choices Brainfuck is committed to the idea of a minimalist instruction set so even though its instructions are straightforward in principle the code that arises is difficult for a human to read INTERCAL s difficulty arises as a result of the choice to avoid operations used in any other programming language which stems from its origin as a parody of other languages 10 Parody and spoof edit One of the aims of esoteric programming languages is to parody or spoof existing languages and trends in the field of programming 10 For instance the first esoteric language INTERCAL began as a spoof of languages used in the 1960s such as APL Fortran and COBOL INTERCAL s rules appear to be the inverse of rules in these other languages 11 However the subject of parody is not always another established programming language Shakespeare can be viewed as spoofing the structure of Shakespearean plays for instance The language Ook is a parody of Brainfuck where Brainfuck s eight commands are replaced by various orangutang sounds like Ook Ook 7 Examples editSee also List of programming languages by type Esoteric languages Befunge edit Befunge allows the instruction pointer to roam in multiple dimensions through the code For example the following program displays Hello World by pushing the characters in reverse order onto the stack then printing the characters in a loop which circulates clockwise through the instructions gt v and dlroW olleH gt v There are many versions of Befunge the most common being Befunge 93 which is named as such because it was released in 1993 12 Binary lambda calculus edit Binary lambda calculus is designed from an algorithmic information theory perspective to allow for the densest possible code with the most minimal means featuring a 29 byte self interpreter a 21 byte prime number sieve and a 112 byte Brainfuck interpreter 13 Brainfuck edit Brainfuck is designed for extreme minimalism and leads to obfuscated code with programs containing only eight distinct characters The following program outputs Hello world 14 gt gt gt lt lt lt gt gt gt lt lt gt gt All characters other than span class nb span span class nv lt gt span span class nt span span class k span are ignored Chicken edit Chicken has just three tokens the word chicken the space character and the newline character The compiler interprets the amount of chickens on a line as an opcode instruction which it uses to manipulate data on a stack A simple chicken program can contain dozens of lines with nothing but the word chicken repeated countless times 15 Chicken was invented by Torbjorn Soderstedt who drew his inspiration for the language from a parody of a scientific dissertation 16 17 18 Chef edit Chef is a stack oriented programming language created by David Morgan Mar designed to make programs look like cooking recipes 19 Programs consist of a title a list of variables and their data values and a list of stack manipulation instructions 20 A joking design principle states that program recipes should not only generate valid output but be easy to prepare and delicious and Morgan Mar notes that an example Hello World program with 101 eggs and 111 cups oil would produce a lot of food for one person 20 21 FRACTRAN edit A FRACTRAN program is an ordered list of positive fractions together with an initial positive integer input n displaystyle n nbsp The program is run by multiplying the integer n displaystyle n nbsp by the first fraction f displaystyle f nbsp in the list for which n f displaystyle nf nbsp is an integer The integer n displaystyle n nbsp is then replaced by n f displaystyle nf nbsp and the rule is repeated If no fraction in the list produces an integer when multiplied by n displaystyle n nbsp the program halts FRACTRAN was invented by mathematician John Conway 22 GolfScript edit Programs in GolfScript a language created for code golf consist of lists of items each of which is pushed onto the stack as it is encountered with the exception of variables which have code blocks as their value in which case the code is executed 23 INTERCAL edit INTERCAL short for Compiler Language With No Pronounceable Acronym was created in 1972 as a parody to satirize aspects of the various programming languages at the time 4 JSFuck edit JSFuck is an esoteric programming style of JavaScript where code is written using only six characters and Unlike Brainfuck which requires its own compiler or interpreter JSFuck is valid JavaScript code meaning JSFuck programs can be run in any web browser or engine that interprets JavaScript 24 25 It has been used in a number of cross site scripting XSS attacks on websites such as eBay due to its ability to evade cross site scripting detection filters 26 LOLCODE edit LOLCODE is designed to resemble the speech of lolcats The following is the Hello World example HAI CAN HAS STDIO VISIBLE HAI WORLD KTHXBYE While the semantics of LOLCODE is not unusual its syntax has been described as a linguistic phenomenon representing an unusual example of informal speech and internet slang in programming 27 Malbolge edit Malbolge named after the 8th circle of Hell was designed to be the most difficult and esoteric programming language Among other features code is self modifying by design and the effect of an instruction depends on its address in memory 28 Piet edit nbsp Piet program that prints Piet nbsp A Hello World program in Piet Piet is a language designed by David Morgan Mar whose programs are bitmaps that look like abstract art 29 The execution is guided by a pointer that moves around the image from one continuous coloured region to the next Procedures are carried out when the pointer exits a region There are 20 colours for which behaviour is specified 18 colourful colours which are ordered by a 6 step hue cycle and a 3 step brightness cycle and black and white which are not ordered When exiting a colourful colour and entering another one the performed procedure is determined by the number of steps of change in hue and brightness Black cannot be entered when the pointer tries to enter a black region the rules of choosing the next block are changed instead If all possible rules are tried the program terminates Regions outside the borders of the image are also treated as black White does not perform operations but allows the pointer to pass through The behaviour of colours other than the 20 specified is left to the compiler or interpreter 29 non primary source needed Variables are stored in memory as signed integers in a single stack Most specified procedures deal with operations on that stack while others deal with input output and with the rules by which the compilation pointer moves 30 Piet was named after the Dutch painter Piet Mondrian 31 The original intended name Mondrian was already taken by an open source statistical data visualization system 29 REON 4213 edit The REON 4213 programming language is an example of a mixed esoteric language programming language and musical language blended together and used in the video game series of Ar tonelico This unique format allows a video game to broach the subject of programming in an entertaining manner that is suitable for younger audiences Although this language cannot be used to express application code it uses concepts from real programming languages such as C and JavaScript to introduce the ideas and structures of software code Rockstar edit Rockstar is a computer programming language designed for creating programs that are also hair metal power ballads It was created by Dylan Beattie 32 33 34 Shakespeare edit Shakespeare is designed to make programs look like Shakespearean plays For example the following statement declares a point in the program which can be reached via a GOTO type statement citation needed Act I Hamlet s insults and flattery Storyteller edit Storyteller is a computer programming language designed to make programs look like rich emotional narrative 35 Unlambda edit Unlambda is a minimalist functional programming language based on SKI calculus but combined with first class continuations and imperative I O with input usually requiring the use of continuations 36 Whitespace edit Whitespace uses only whitespace characters space tab and return ignoring all other characters which can therefore be used for comments This is the reverse of many traditional languages which do not distinguish between different whitespace characters treating tab and space the same It also allows Whitespace programs to be hidden in the source code of programs in languages like C citation needed Cultural context editThe cultural context of esolangs has been studied by Geoff Cox who writes that esolangs shift attention from command and control toward cultural expression and refusal 37 seeing esolangs as similar to code art and code poetry such as Mez Breeze s mezangelle a belief shared by others in field 38 Daniel Temkin describes Brainfuck as refusing to ease the boundary between human expression and assembly code and thereby taking us on a ludicrous journey of logic 39 exposing the inherent conflict between human thinking and computer logic by deconstructing their relationship He connects programming within an esolang to performing an event score such as those of the Fluxus movement where playing out the irregular rules of the logic in code makes the point of view of the language clear 40 References edit McLean A Griffiths D Collins N and Wiggins G 2010 Visualisation of Live Code In Electronic Visualisation and the Arts London 2010 Matthew Fuller Software Studies MIT Press 2008 Eric S Raymond 1996 The New Hacker s Dictionary MIT Press p 258 ISBN 978 0 262 68092 9 a b Woods Donald R Lyon James M 1973 The INTERCAL Programming Language Reference Manual Muppetlabs com retrieved 1 May 2023 Interview with Wouter van Oortmerssen Esoteric codes 1 July 2015 Retrieved 1 May 2023 Fuller Matthew 2008 Software studies a lexicon MIT Press ISBN 978 0 262 06274 9 OCLC 1156851190 a b c Morr Sebastian Esoteric Programming Languages 2015 Cox 2013 Mike 31 March 2013 Baking a Hello World Cake Products of Mike s Mind Retrieved 1 May 2023 a b c d Mateas M and Montfort N A Box Darkly Obfuscation Weird Languages and Code Aesthetics In Digital Arts and Culture Digital Experience Design Aesthetics Practice DAC 2005 Copenhagen Denmark 2005 Gaboury Jacob 2018 Critical Unmaking Toward a Queer Computation In Jentery Sayers ed The Routledge Companion to Media Studies and Digital Humanities New York Routledge pp 483 491 doi 10 4324 9781315730479 50 ISBN 978 1 315 73047 9 Languages John Tromp Most functional The International Obfuscated C Code Contest El Brainfuck copy sh Retrieved 30 November 2022 Hello world in Esoteric Programming Languages Esolangs DEV Community 25 July 2020 Retrieved 4 December 2022 Weirdest Programming Languages Programming www omnesgroup com 8 August 2018 Retrieved 4 December 2022 8 Goofy Programming Languages 27 April 2022 Hongkiat com 8 September 2021 10 Most Bizarre Programming Languages Vol 2 Hongkiat Retrieved 4 December 2022 Cozens Simon 2005 Advanced Perl programming O Reilly Media p 269 ISBN 978 0 596 00456 9 A final Acme curiosity and one of my favourites is Acme Chef an implementation of David Morgan Mar s Chef programming language In Chef programs are expressed in the form of recipes a b Morgan Mar David 24 March 2011 Chef DM s Esoteric Programming Languages Self published Retrieved 1 May 2023 Morgan Mar David 28 June 2014 Chef Hello World DM s Esoteric Programming Languages Self published Retrieved 1 May 2023 Kneusel Ronald 2022 Strange Code Esoteric Languages That Make Programming Fun Again No Starch Press p 217 ISBN 978 1718502406 Smith Darren 2007 GolfScript Tutorial Bailey Jane 29 February 2016 Bidding on Security The Daily WTF Retrieved 2 March 2020 Exploring JSF ck alligator io Retrieved 2 March 2020 Dan Goodin 3 February 2016 eBay has no plans to fix severe bug that allows malware distribution Updated Ars Technica Zabenkov A A Morel Morel D A 2014 Esoteric programming languages as a state of the art semiotic trend Experientia Est Optima Magistra Collected Arts 3 Belgorod State University 170 Temkin Daniel 3 November 2014 Interview with Ben Olmstead esoteric codes Retrieved 7 January 2021 a b c Morgan Mar David 25 January 2008 Piet Retrieved 1 May 2023 Kneusel Ronald 2022 Strange Code Esoteric Languages That Make Programming Fun Again No Starch Press pp 246 247 ISBN 978 1718502406 Cox 2013 p 6 rockstar home codewithrockstar com Lewrypublished Fraser 1 August 2018 Meet the boffin behind a computer programming language based on power ballads loudersound Doctorow Cory 25 July 2018 Rockstar a programming language whose code takes the form of power ballads Boing Boing Storyteller www github com Chu Carroll Mark C 11 August 2006 Friday Pathological Programming Unlambda or Programming Without Variables Good Math Bad Math blog ScienceBlogs Cox 2013 p 5 The true meaning of esoteric programming languages Apifonica Retrieved 30 November 2023 Temkin Daniel 15 January 2014 Glitch amp amp Human Computer Interaction NOOART The Journal of Objectless Art 1 Temkin Daniel 8 May 2013 brainfuck Media N Journal Spring 2013 Retrieved 1 May 2023 Bibliography editPaloque Berges Camille 2009 Langages esoteriques Poetique des codes sur le reseau informatique Archives contemporaines ISBN 978 2 914610 70 4 Cox Geoff 2013 Speaking Code Coding as Aesthetic and Political Expression MIT Press ISBN 978 0 262 01836 4 Kneusel Ronald 2022 Strange Code Esoteric Languages That Make Programming Fun Again No Starch Press ISBN 978 1718502406 External links edit nbsp Wikimedia Commons has media related to Esoteric programming languages Esolang the esoteric programming languages wiki Obfuscated Programming Languages at Curlie Retrieved from https en wikipedia org w index php title Esoteric programming language amp oldid 1220002349, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.