En la década de 1950, un grupo de desarrolladores de IBM liderado por John Backus desarrolló el primer lenguaje de programación de alto nivel,
Fortran, que permitía escribir programas en un lenguaje comprensible para los humanos. Además del lenguaje, los ingenieros también trabajaron en el compilador. Era un programa con un conjunto de comandos ejecutables que podía compilar otros programas en Fortran, incluida una versión mejorada de sí mismo.
Posteriormente, el lenguaje Fortran y su compilador se utilizaron para escribir compiladores para nuevos lenguajes de programación. Los programadores todavía utilizan este enfoque en la actualidad. Escribir código de máquina es lento e incómodo. Además, puede variar para los procesadores modernos. Tendrías que escribir varias versiones del mismo compilador para diferentes ordenadores. Es más rápido y sencillo escribir un compilador en un lenguaje de programación existente. Para ello, los desarrolladores eligen un lenguaje conveniente y escriben la primera versión de su compilador en él. Será más versátil para los ordenadores y podrá compilar fácilmente una versión mejorada de sí mismo.