[FoRK] Chef programming language

Jim Whitehead <ejw at soe.ucsc.edu> on Tue Apr 3 12:14:31 PDT 2007


Chef is a programming language in which programs look like recipes.

Design Principles

     * Program recipes should not only generate valid output, but be  
easy to prepare and delicious.
     * Recipes may appeal to cooks with different budgets.
     * Recipes will be metric, but may use traditional cooking  
measures such as cups and tablespoons.

Language Concepts

All recipes have ingredients! The ingredients hold individual data  
values. All ingredients are numerical, though they can be interpreted  
as Unicode for I/O purposes. Liquid ingredients will be output as  
Unicode characters, while dry or unspecified ingredients will be  
output as numbers.

Mixing Bowls and Baking Dishes
Chef has access to an unlimited supply of mixing bowls and baking  
dishes. These can contain ingredient values. The ingredients in a  
mixing bowl or baking dish are ordered, like a stack of pancakes. New  
ingredients are placed on top, and if values are removed they are  
removed from the top. Note that if the value of an ingredient  
changes, the value in the mixing bowl or baking dish does not. The  
values in the mixing bowls and baking dishes also retain their dry or  
liquid designations.

Multiple mixing bowls and baking dishes are referred to by an ordinal  
identifier - "the 2nd mixing bowl". If no identifier is used, the  
recipe only has one of the relevant utensil. Ordinal identifiers must  
be digits followed by "st", "nd", "rd" or "th", not words.


More information about the FoRK mailing list