Un lenguaje de programacion de bajo nivel es el que proporciona un set de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware.
Dicho lenguaje es muy simple o nada complicado, pero estructurar  programas a ese nivel es muy difícil. Dado que este lenguaje viene dado  por las especificaciones técnicas del hardware, no permite una  abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de maquina.
La estructura de los lenguajes son como sigue:
Lenguaje Máquina: Las invocaciones a memoria, como los procesos  aritmético lógicos son posiciones literales de conmutadores físicos del  hardware en su representación booleana. Estos lenguajes son literales de  tareas.
Lenguajes de bajo nivel: Son instrucciones que ensamblan los grupos  de conmutadores necesarios para expresar una mínima lógica aritmética.  Están intimamente vinculados al hardware. Por norma general están  disponibles a nivel firmware, cmos o chip set. Estos lenguajes estan  orientados a procesos. Los procesos se componen de tareas. Contienen  tantas instrucciones como la arquitectura del hardware así haya sido  diseñada. 
Lenguajes de medio nivel: Son aquellos que, basandose en los juegos  de instrucciones disponibles (chip set), permiten el uso de funciones a  nivel aritmético, pero a nivel lógico dependen de literales en  esamblador. Estos lenguajes estan orientados a procedimientos. Los  procedimientos se componen de procesos.
Ejemplos: C, Basic. 
Lenguajes de alto nivel: Son aquellos que permiten una máxima  flexibilidad al programador a la hora de abstraerse o de ser literal.  Permiten un camino bidireccional entre el lenguaje máquina y una  expresión casi oral entre la escritura del programa y su posterior  compilación. Estos lenguajes estan orientado a objetos. Los objetos se  componen de propiedades cuya naturaleza emerge de procedimientos.
Ejemplos: C++, Fortran, Cobol, Lisp. 
Lenguajes de aplicaciones: Son aquellos que no permiten una  bidireccionalidad conceptual entre el lenguaje máquina y los lenguajes  de alto nivel, ni tampoco la literalidad a la hora de invocar conceptos  lógicos. Se basan en librerias creadas en lenguajes de alto nivel.  Pueden permitir la creacion de nuevas librerias, pero son propietarias y  dependientes de las suministradas por la aplicación. Estos lenguajes  estan orientados a eventos. Los eventos acontecen cuando las propiedades  de un objeto interactuan con otro.
Ejemplos: Visual Basic para aplicaciones. 
Lenguajes de redes: Son aquellos que se basan en un convenio de  instrucciones totalmente independientes de la máquina, y completamente  dependientes de la red a la que están orientadas. Se dividen en  descriptivos (HTML, XML, VML), de cliente-Servidor (Java, PHP) y de  script.
