Principles of computation - Calingaert Peter