This is a piece of coursework that I had to submit at university as part of the programming course (Concepton de Langage) for more information : http://starynkevitch.net/Basile/ this is my teacher page.