Toy language
From Wikipedia, the free encyclopedia
This article or section appears to have been copied and pasted from a source, possibly in violation of a copyright. Please edit this article to remove any copyrighted text and to be an original source, following the Guide to layout and the Manual of Style. Remove this template after editing. |
This article does not cite any references or sources. (August 2007) Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. |
For the toy language named TOY, see TOY (computer simulation).
A toy language is a term for a computer programming language that it not considered to fulfill the robustness or completeness requirement of a computer programming language. As such it is not considered a suitable language for creating solid and reliable programs for use in production environments.
Usually such a language is limited in one or several ways. By this, it is meant that one of its major limitations is its number of programming constructs or concepts supported. The language can still be complete in the eyes of the creator or its community of users. The grade of completeness in this context is related to real life use, as opposed to its mathematical completeness. Another typical limitation of toy languages is that they do not necessarily have a set of support libraries/functions/utilities that are considered a requirement for creating production quality programs.
A toy language has many uses. One such use is in computer languages research. Some uses are as frameworks for researching new programming constructs or as a prototype for new language concepts or paradigms. Another notable use is as a learning or demonstration tool, e.g. in universities, for programming constructs and techniques not available in main stream languages. As such there is a considerable amount of personal feelings for the language by both its opponents and proponents.
As an example, many would argue that the Scheme programming language is a toy language, as it is mostly used in academia. A view that many share is that even though it is complete in its own right, it has limited capability in real life projects. As such, other languages with similar properties but extended capabilities are preferred, such as Lisp. Another, somewhat similar example, is the Lava programming language, which is purely experimental.
[edit] Distinguishing Features of Toy Languages
While it is not always readily obvious whether a programming language is a toy language, there is at least one criterion that is generally applied: if a compiler or interpreter for the language can be written in the language, it's no longer a toy. This is not always the final word however: it is trivial to write a compiler for Scheme in Scheme (considered by some a toy language), while Perl (considered by many a non-toy language) is (so far) still written in C.
Another test for a language to be considered not a toy is for the language to be powerful enough to implement an operating system. Whether this means that all purely interpreted or virtual machine languages are toys is left as an exercise for the reader.