LENGUAJE A BAJO NIVEL
Un lenguaje de programación de bajo nivel de abstracción es el que proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware. También permite al programador escribir instrucciones de un programa usando abreviaturas del inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no está compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador.
Variantes.
En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle, además, está completamente orientado a la máquina.
-Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina.
- Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias.
-Portabilidad: Mínima por estar restringido a las especificaciones del fabricante.
-Abstracción - Mínima por depender completamente de la técnica del hardware.
-Uso - Requiere de la máxima atención y de una organización estructurada en base a los planos del hardware y del objetivo del software.
LENGUAJE A ALTO NIVEL
Un lenguaje de alto nivel permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: case, if, for, while, etc.
Los lenguajes de alto nivel logran la independencia del tipo de máquina y se aproximan al lenguaje natural. Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:
Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware específico de dicha máquina.
Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc, que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC), además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos
Variantes
-Genera un código más sencillo y comprensible.
-Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.
-Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.
-Algunos requieren que la máquina cliente posea una determinada plataforma.