Los lenguajes de programación pueden ser de bajo o alto nivel dependiendo de cuán cercanos estén a la computadora o al lenguaje humano. Existen cinco generaciones de lenguajes que van desde los de ensamblaje de bajo nivel hasta los lenguajes naturales de quinta generación que se acercan más al lenguaje escrito humano y permiten construir sistemas basados en conocimiento como los sistemas expertos de inteligencia artificial.