构越来越复杂，这使得编译器也越来越复杂。早期的编译器是用汇编语言编写的。首个能编译自己源程序的编译器是在1962年由麻省理工学院的Hart和Levin制作的。从20世纪70年代起，实现能编译自己源程序的编译器变得越来越可行，不过还是用Pascal和C语言来实现编译器更加流行。制作某种语言的第一个能编译器，要么需要用其它语言来编写，要么就像Hart和Levin制作Lisp编译器那样，用解释器来运行编译器。
教学用的编译器.编译器的构造与优化是计算机专业的大学课程，课程名称一般为「