Компиляторы часто называют «приложением-убийцей» для функциональных языков с алгебраическими типами данных, таких как Haskell и ML. Я написал компиляторы на процедурном языке, на объектно-ориентированном языке и на функциональных языках, и функциональный язык миров лучше.
Компилятор также является относительно привлекательным проектом, так как вы можете взять, скажем, книгу Эндрю Аппеля об используемом рынке, и собрать все это самостоятельно - просто обязательно скомпилируйте очень простой язык.