Este documento clasifica los lenguajes de programación según su nivel de abstracción: los lenguajes de bajo nivel como el ensamblador se enfocan en las características del procesador, los lenguajes de nivel medio como C mantienen algunas cualidades de bajo nivel pero permiten más abstracción, y los lenguajes de alto nivel como Java y Ruby se enfocan más en conceptos cercanos al pensamiento humano ignorando el funcionamiento de la máquina.