Cheese++ is a programming language based almost entirely on the operational working principles of cheese.
Cheese++ is case-sensitive.
|Wensleydale()||Print (to console)|
|Swiss||Quotation mark equivalent, used when creating strings.|
|Glyn(operation)||The 'variable function'. It must be invoked in every single operation involving a variable, as demonstrated in the examples below. There is only one data type so no data type identifiers are required, saving space. A variable can take any ASCII value.|
|Cheddar...Coleraine||repeat ... until|
|Stilton...Blue...White||if ... then...else|
|Belgian||Prints out the entire source code of the program to the console. Useful for debugging.|
|Brie||Ends a line/section of code|
Cheese Wensleydale(SwissHello WorldSwiss)Brie NoCheese
Glyn( //initiates variable declarations VarName(value) //declares a variable called VarName, of value 'value' ) Brie //indicates end of variable declarations
Unfortunately, due to a persistent and unprecedented compiler bug, any Wensleydale() functions containing the words 'bottles' and 'beer' cause runtime errors and immediate data corruption. This lends more of a challenge to creating this program. However, it is possible to circumvent this by calling a system function called 'Edam', which replaces occurrences of specified character sets with the words 'bottles' and 'beer' respectively. This occurs as following:
Now to demonstrate the working program:
Cheese //begins program Glyn(Number(99))Brie //declares a variable 'number' of value 99 Edam(slices,cheese)Brie Cheddar //repeat loop Wensleydale(Glyn(Number)Swiss slices of cheese on the wall.Swiss)Brie //prints line. Number is outside the swiss tags as it is a variable //replaced by 'bottles' and 'beer' at runtime Glyn(Number=Number-1) Brie //Glyn operator used Coleraine(Glyn(Number = 0)) Brie //until Number = 0 NoCheese
Quines in Cheese++ are easily coded. The function 'Belgian' will print out the entire source code of the program to the console.
Cheese Belgian Brie NoCheese
There are no user input functions in base Cheese++, so this is impossible.
Development is in initial stages, but researchers currently believe that in its final form it will be Turing-complete.
The compiler is still in development. It is being written in its (no longer publicly available) parent language, Cheese+.