Cecil
Cecil is een taal ontworpen door Craig Chambers en de Cecil Group aan de univ van Washington.
object Food;
var field stock(@Food) := 1;
object pizza isa Food;
object Toon;
field strength(@toon) := 10;
predicate out_of_stock_food isa Food when(Food.stock <= 0);
predicate in_stock_food isa Food when(Food.stock > 0);
divide Food into in_stock_food, out_of_stock_food;
method eats(toon@Toon,food_stock@out_of_stock_food) {
_print_line"Out of food! Getting new supplies!";
toon _getmorefood food_stock;
eats(toon,food_stock);
}
method eats(toon@Toon,food_stock@in_stock_food) {
"YammiYammi, eating the good stuff, a ".print;
foodstock.print_line;
foodstock.stock := _-(foodstock.stock,1);
}
method getmorefood(toon@Toon, foodstock@Food) {
foodstock.stock := _+(foodstock.stock, toon.strength);
print_line("Refilled stock!");
}
method hungryfor(toon@Toon, food@Food) {
toon _eats food;
hungryfor(toon, food);
}
hungryfor(Toon,pizza);
Een handige paper kan hier gevonden worden. Hij bevat de taalspecificaties voor v3.2.
Installation Notes (Linux, Tricky Tricky!)
Let op! De interpreter/compiler zijn gc doet een beetje raar. Dit kan omzeilt worden door:
- De optie -noGC mee tegeven bij het opstarten (let wel... dan heb je dus wel noGC :))
- Raar maar waar: de executable op een schijf te zetten die genfsmount wordt, en van die nfsmount booten. (bvb in uw home op wendy (de wilma-imports, en zaal-homes) en dan runnen op wilma)
- Quote: "NFS, the filesystem of the future for the language of the future" reynaert
In geval van nfs-installate:
- Zet de files van vortex in een directory, bvb /cecil.
- zet de files van de interpreter in een directory in /cecil (bvb /cecil/Cecil)
- niet zeker of deze stap nodig is, nog niet hertest zonder de stap
- voeg de nfs-modules toe aan de kernel, indien ze nog niet toegevoegd zijn
- open /etc/exports en voeg devolgende lijn toe: /cecil <ip>(rw,async,all_squash,anonuid=<userid>,anongid=<gid>)
- <ip> vervangen door ip-adres van eigen pc, <userid> en <gid> door eigen ids die je kan opvragen door in een shell "id" te typen.
- Start, of herstart de nfs-daemon. (voor gentoo: "/etc/init.d/nfs (re)start")
- maak een dir aan in je home (stel /home/tverwaes/cecil).
- mount nu de eigen geexporteerde schijf naar de juist aangemaakte map door "mount <ip>:/cecil cecil" uit te voeren.
Verder voor eender welke installatie:
- ga in je cecil/bin/shell-map (voor nfs-mensen in de nfs-mounted map in je home)
- voer hier SETUP uit door "./SETUP" te typen.
- open dan vortex.bashrc met je favoriete editor en verander de lijn export VORTEX_BASELINE=.. door export VORTEX_BASELINE=/home/tverwaes/cecil (je cecil-root)
- open ~/.bash_profile en/of ~/.bashrc en voeg de lijn "source <cecil-root>/bin/shell/vortex.bashrc" toe.
- Herstart je terminal of doe "source ~/.bashrc"
- Start nu de compiler door "vortex" in je shell te typen.
Een programma maken (let op, doe dit niet voor SETUP klaar is, of je kan herbeginnen):
- in je vortex-compiler, voer je "make <filename-with.cecil>" uit
- Je binary zou nu in de directory "gen" moeten zitten, als alles goed gegaan is.




