BlooP, FlooP, and GlooP
Dan Tobias (Talk | contribs) m |
Dan Tobias (Talk | contribs) |
||
(2 intermediate revisions by one user not shown) | |||
Line 2: | Line 2: | ||
|formattype=Languages | |formattype=Languages | ||
|subcat=Programming Languages | |subcat=Programming Languages | ||
+ | |wikidata={{wikidata|Q4927494}} | ||
|released=1979 | |released=1979 | ||
}} | }} | ||
Line 22: | Line 23: | ||
== Links == | == Links == | ||
* [[Wikipedia:BlooP and FlooP]] | * [[Wikipedia:BlooP and FlooP]] | ||
+ | * [http://code.google.com/p/bloop/ BlooP/FlooP compiler] | ||
+ | * [http://abstrusegoose.com/503 Abstruse Goose: BlooP and FlooP and GlooP (comic strip)] |
Latest revision as of 20:04, 8 June 2019
BlooP, FlooP, and GlooP are programming languages introduced for instructional purposes in chapter XIII of Gödel, Escher, Bach: An Eternal Golden Braid (ISBN 978-0-465-02656-2, ISBN 0-14-017997-6), by Douglas R. Hofstader. They are defined with strictly limited built-in capabilities in order to explore what sorts of computations are theoretically possible given a particular set of language capabilities.
Each of these languages has only addition and multiplication as built-in functions, so other functions such as subtraction need to be defined in terms of these. Variables can only be natural numbers, integers zero or higher.
Contents |
[edit] BlooP
BlooP supports program loops, but only with a specified maximum number of iterations (as either a constant or a variable, so the bounds can be computed; however, this computation must be done before the loop starts, so that the iteration limit can't be changed once the loop starts), meaning that all programs are guaranteed to terminate.
[edit] FlooP
FlooP has the capabilities of BlooP, but allowing unbounded loops, which exit only when a test is passed, so an infinite loop could occur if the test never passes. Hence, programs do not necessarily terminate. This language can be shown to be Turing-complete, meaning that it can compute anything that any other Turing-complete programming language (a category which includes all general-purpose programming languages in actual use) can do.
[edit] GlooP
GlooP is a hypothetical language that is even more unbounded than FlooP, and thus able to compute things that are logically uncomputable in the (Turing-complete) FlooP language, but it is believed that no such language is actually possible.