Un lenguaje de programacin de alto nivel se caracteriza por expresar el algoritmo
de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las mquinas. En resumen son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina, un lenguaje de alto nivel permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintcticas muy similares al ingls, se pueden utilizar palabras de muy fcil comprensin para el programador. Otra caracterstica importante de los lenguajes de alto nivel es que, para la mayora de las instrucciones de estos lenguajes, se necesitaran varias instrucciones en un lenguaje ensamblador para indicar lo mismo. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una mquina a otra sin ningn tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que estn diseando el programa. Tan solo necesitan un traductor que entiendan el cdigo fuente como las caractersticas de la mquina. Suelen usar tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de aplicacin) y de propsito especfico (como FORTRAN para trabajos cientficos) Otros lenguajes de alto nivel son: Ada, BASIC, COBOL, FORTRAN, Pascal, ALGOL, C++, C#, Java, Lisp, Modula-2, Perl, PHP, PL/SQL, Python, Ruby . Lenguaje de alto nivel se refiere al nivel ms alto de abstraccin de lenguaje de mquina. En lugar de tratar con registros, direcciones de memoria y las pilas de llamadas, lenguajes de alto nivel se refieren a las variables, matrices, objetos, aritmtica compleja o expresiones booleanas, subrutinas y funciones, bucles, hilos, cierres y otros conceptos de informtica abstracta, con un enfoque en la facilidad de uso sobre la eficiencia ptima del programa. Estn dirigidos a solucionar problemas mediante el uso de EDD's. Nota: EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programacin. Son estructuras que pueden cambiar de tamao durante la ejecucin del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa.
Ventajas
Genera un cdigo ms sencillo y comprensible.
Escribir un cdigo vlido para diversas mquinas o sistemas operativos.
Permite utilizar paradigmas de programacin.
Permite crear programas complejos en relativamente menos lneas de
cdigo.
Inconvenientes
Reduccin de velocidad al ceder el trabajo de bajo nivel a la mquina.
Algunos requieren que la mquina cliente posea una determinada
plataforma.
Lenguaje de Bajo Nivel
Un lenguaje de programacin de caractersticas bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y estn condicionados por la estructura fsica de las computadoras que lo soportan. El uso de la palabra
bajo en su denominacin no implica que el lenguaje sea menos potente que un
lenguaje de alto nivel, sino que se refiere a la reducida abstraccin entre el lenguaje y el hardware. Un lenguaje de programacin de bajo nivel de abstraccin es el que proporciona un conjunto de instrucciones aritmtico-lgicas sin la capacidad de encapsular dichas instrucciones en funciones que no estn ya contempladas en la arquitectura del hardware. Son lenguajes dependientes de la mquina, el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras mquinas. Estos lenguajes como estn diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo. Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difcil. Dado que este lenguaje viene dado por las especificaciones tcnicas del hardware, no permite una abstraccin fuera de lo estipulado para el microprocesador de un ordenador. Los lenguajes de bajo nivel son ms fciles de utilizar que los lenguajes mquina, pero, al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos. Los lenguajes de bajo nivel, tambin llamados lenguajes ensambladores, permiten al programador escribir instrucciones de un programa usando abreviaturas del ingls, tambin llamadas palabras nemotcnicas, 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 mquina hay que utilizar un programa llamado ensamblador. En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programacin es al ms fino detalle, adems, est completamente orientado a la mquina.
Adaptacin - Mxima entre programacin y aprovechamiento del recurso
de la mquina.
Velocidad - Mxima al contar con un acceso directo a los recursos, sin
capas intermedias.
Portabilidad - Mnima por estar restringido a las especificaciones del
fabricante.
Abstraccin - Mnima por depender completamente de la tcnica del
hardware.
Uso - Requiere de la mxima atencin y de una organizacin estructurada
en base a los planos del hardware y del objetivo del software.
Ventajas
Los lenguajes ensambladores presentan la ventaja frente a los lenguajes
mquina de su mayor facilidad de codificacin y, en general, su velocidad de clculo con mnimo consumo de memoria.
Inconvenientes
Dependencia total de la mquina lo que impide la transportabilidad de los
programas.
La formacin de los programadores es ms compleja que la
correspondiente a los programadores de alto nivel, ya que no slo las tcnicas de programacin, sino tambin el conocimiento del interior de la mquina.
Es necesario conocer en detalle la arquitectura de la mquina.