Dar ao aluno a noção formal de algoritmo, computabilidade, decidibilidade e dos formalismos para definição de linguagens, de modo a conscientizá-lo dos limites teóricos da ciência da computação. Dar ao aluno as noções da teoria e das técnicas de construção de compiladores de linguagens de programação de alto nível.