Formatting code for ToyProgrammingLanguages
======Toy programming languages======
=====What makes a programming language a toy?=====
A key distinction in a toy programming language is that it has arbitrary restrictions in its design, especially restrictions that make it difficult to perform operations or functions that programmers take for granted in high-level languages (and even some low-level ones!).
Despite having such maddening constraints, a toy language will usually be "Turing-complete," which in simple terms means that it //is// capable of solving any problem that is computationally possible. ([[Wiki:TuringComplete See c2.com for a better definition and discussion of Turing completeness.]]) Thus the toy language poses an implicit challenge to the programmer: creating a program in the language that works within its artificial constraints yet can still solve practical problems.
It could also be argued that instructional languages such as Logo could be considered toy languages due to their limited design objective (in this case, teaching a new student the basics of programming). Such languages may or may not be Turing-complete.
=====Origin of the term=====
The definition for "toy language" appeared in editions of Eric S. Raymond's //Jargon File// as early as version 3.0.0: "A language useful for instructional purposes or as a proof-of-concept for some aspect of computer-science theory, but inadequate for general-purpose programming." Any earlier usages have yet to be researched by me.
=====Examples of toy languages=====
To be added: specific information on languages such as Befunge and Brainf--k.
=====What makes a programming language a toy?=====
A key distinction in a toy programming language is that it has arbitrary restrictions in its design, especially restrictions that make it difficult to perform operations or functions that programmers take for granted in high-level languages (and even some low-level ones!).
Despite having such maddening constraints, a toy language will usually be "Turing-complete," which in simple terms means that it //is// capable of solving any problem that is computationally possible. ([[Wiki:TuringComplete See c2.com for a better definition and discussion of Turing completeness.]]) Thus the toy language poses an implicit challenge to the programmer: creating a program in the language that works within its artificial constraints yet can still solve practical problems.
It could also be argued that instructional languages such as Logo could be considered toy languages due to their limited design objective (in this case, teaching a new student the basics of programming). Such languages may or may not be Turing-complete.
=====Origin of the term=====
The definition for "toy language" appeared in editions of Eric S. Raymond's //Jargon File// as early as version 3.0.0: "A language useful for instructional purposes or as a proof-of-concept for some aspect of computer-science theory, but inadequate for general-purpose programming." Any earlier usages have yet to be researched by me.
=====Examples of toy languages=====
To be added: specific information on languages such as Befunge and Brainf--k.