The principle of compiler course project