lenguaje de alto nivel
Lenguaje de alto nivel
Lenguaje de programación de alto nivel es un tipo de lenguaje de programación que permite al programador escribir programas (algoritmos) que son más o menos independientes de un tipo particular de computadora (del hardware). Estos lenguajes son considerados de alto nivel porque son más parecidos al lenguaje natural humano y más lejanos al lenguaje de las máquinas. En otras palabras, utilizan una fuerte abstracción de los detalles de la computadora.
En contraste, los lenguajes ensamblador (lenguajes de bajo nivel) son considerados lenguajes de bajo nivel porque están muy cerca al lenguaje que manejan las máquinas.
La principal ventaja de los lenguajes de alto nivel sobre los de bajo nivel es que son más fáciles de leer, escribir y mantener por humanos. Al final, los programas escritos en alto nivel deben ser traducidos en un lenguaje máquina específico empleando un compilador o un intérprete. De esta manera pueden ser ejecutados por una máquina específica.
El primer lenguaje de programación de alto nivel diseñado para computadoras fue Plankalkül (1948), creado por Konrad Zuse (1910-1995). De todas maneras no fue implementado en su momento.
En tanto el primer lenguaje de programación de alto nivel ampliamente distribuido fue Fortran, un desarrollo de IBM que apareció por primera vez en 1957. En tanto el lenguaje Algol, definido en 1958 y 1960, introdujo nuevos conceptos como recursión, funciones anidadas, muchos conceptos de programación estructurada, etc. En esa época Cobol también introdujo registros y Lisp introdujo abstracción lambda.
- Resultan en un código fuente más fácil de leer, escribir y mantener por los humanos. En general, permite emplear menos líneas de código en comparación con lenguaje máquina.
- Permiten escribir un código válido ejecutable en distintos tipos de máquinas y sistemas operativos.
- Son más lentos de ejecutar, siendo el código máquina más eficiente. De todas maneras esto depende del diseño del compilador para lenguajes de alto nivel: un buen diseño produce más eficiencia.
- En algunos casos el programa resultante requiere una determinada plataforma para ejecutarse.
- Interpretado: cuando un código en un lenguaje es interpretado, su sintaxis es leída y luego ejecutada directamente, sin fase de compilación. Un programa llamado intérprete lee cada instrucción del programa, siguiendo el flujo de programa, y decide qué hacer y lo hace. Los intérpretes son la forma más simple de implementación del comportamiento de un lenguaje, comparado con las otras dos variantes listadas aquí.
- Compilado: cuando un código en un lenguaje es compilado, su sintaxis es primero transformada a una forma ejecutable antes de correrlo. Existen dos tipos de compilación: generación de código máquina (compilador que pasa del código fuente directamente al código máquina) y representación intermedia (se compila una representación que puede ser optimizada o guardada para ejecutar luego sin la necesidad de releer el código fuente. Cuando esta representación se guardada puede ser en forma de bytecode).
- Traducción fuente a fuente (Source-to-Source Translated o Trans-compiling): el código escrito en un lenguaje puede ser traducido a términos de un lenguajes de programación para los cuales los compiladores de código nativo ya están ampliamente disponibles. Los lenguajes JavaScript y C son usuales para estas traducciones. Por ejemplo, CoffeeScript, Chicken Scheme y Eiffel.
![Código fuente en un lenguaje de alto nivel](https://www.alegsa.com.ar/Imagen/lenguaje_de_programacion_alto_nivel.png)
Código fuente en un lenguaje de alto nivel
Ventajas
Desventajas
Existen tres modos de ejecución de estos lenguajes:
algunos ejemplos
Abreviatura de Fórmula Translator (traductor de fórmulas), fue definido alrededor del año 1955 en los Estados Unidos por la compañía IBM. Es el más antiguo de los lenguajes de alto nivel, pues antes de su aparición todos los programas se escribían en lenguaje ensamblador o en lenguaje máquina.
Es un lenguaje especializado en aplicaciones técnicas y científicas, caracterizándose por su potencia en los cálculos matemáticos, pero estando limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes.
A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la realizada en 1966 por ANSI (American National Standard Institute) en la que se definieron nuevas reglas del lenguaje y se efectuó la independencia del mismo con respecto a la máquina, es decir, comenzó la transportabilidad del lenguaje. Esta versión se denominó FORTRAN IV o FORTRAN 66. En 1977, apareció una nueva versión más evolucionada que se llamó FORTRAN V o FORTRAN 77, esta versión está reflejada en el documento «ANSI X3.9-1978: Programming Language FORTRAN» y define dos niveles del lenguaje denominados FORTRAN 77 completo y FORTRAN 77 básico, siendo el segundo un subconjunto del primero. Esta última versión incluye además instrucciones para el manejo de cadenas de caracteres y de archivos, así como otras para la utilización de técnicas de programación estructurada. Estas características hacen que el lenguaje también sea válido para determinadas aplicaciones de gestión.
Es el lenguaje más usado en las aplicaciones de gestión, creado en 1960 por un comité denominado CODASYL, patrocinado por el Departamento de Defensa de los Estados Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales como expresa su nombre (COmmon Business Oriented Language).
Entre sus características se pueden citar su parecido al lenguaje natural (inglés), es auto- documentado y tiene gran capacidad en el manejo de archivos, así como en la edición de informes escritos. Entre sus inconvenientes están sus rígidas reglas de formatos de escritura, la necesidad de describir todos los elementos al máximo detalle, la extensión excesiva en sus sentencias e incluso duplicación en algunos casos, la inexistencia de funciones matemáticas y, por último, su no adecuación a las técnicas de programación estructurada.
Fue creado a comienzos de los años 60 por IBM para ser usado en sus equipos del sistema 360. El PL/I (Programming Language 1) se desarrolló inspirándose en los lenguajes ALGOL, COBOL y FORTRAN, tomando las mejores características de los anteriores y añadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo más general posible, útil para aplicaciones técnico-científicas, comerciales, de proceso de textos, de bases de datos y de programación de sistemas.
Entre sus novedades está su gran libertad en el formato de escritura de los programas, soportar la programación estructurada y el diseño modular. No obstante, no ha superado a sus progenitores en sus aplicaciones específicas debido en parte a su amplitud y por ello, al tamaño de su compilador, que hasta ahora sólo se podía instalar en grandes equipos.
Fue diseñado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College en 1965 con el objetivo principal de conseguir un lenguaje fácil de aprender para los principiantes, como se indica en su nombre Benginner’s All-purpose Symbolic Instruction Code (Código de instrucción simbólico de propósito general para principiantes).
Entre sus principales novedades están las de ser un lenguaje interpretado y de uso conversacional, útil para aplicaciones técnicas y de gestión. Estas características, unidas a la popularización de las microcomputadoras y computadoras personales, ha hecho que su utilización se haya extendido enormemente, a la vez que ha propiciado el surgimiento de una gran diversidad de versiones que extienden y adaptan a necesidades particulares el lenguaje original. Existen multitud de intérpretes y compiladores del lenguaje.
Fue creado por el matemático suizo Niklaus Wirth en 1970, basándose en el lenguaje AL-GOL, en cuyo diseño había participado en los años 60. Su nombre proviene del filósofo y matemático francés del siglo xvii Blaise Pascal, que inventó la primera máquina de tipo mecánico para sumar.
Aunque en principio la idea del diseñador era proporcionar un lenguaje adecuado para la enseñanza de los conceptos y técnicas de programación, con el tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de aplicaciones, poseyendo grandes facilidades para la programación de sistemas y diseño de gráficos.
Aporta los conceptos de tipo de datos, programación estructurada y diseño descendente, entre otros, además de haberse convertido en predecesor de otros lenguajes más modernos, como MODULA-2 y ADA.
Fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los Laboratorios BellTelephone, Ken Thompson. Estos habían diseñado con anterioridad el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue la de conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la máquina con el cual escribir su sistema UNIX.
Aunque fue diseñado inicialmente para la programación de sistemas, posteriormente su uso se ha extendido a aplicaciones técnico-científicas, de bases de datos, de proceso de textos, etc.
La utilización óptima de este lenguaje se consigue dentro de su entorno natural, que es el sistema operativo UNIX. Entre sus características destaca el uso de programación estructurada para resolver tareas de bajo nivel, así como la amplia librería de rutinas de que dispone.
Es el último intento de obtener un único lenguaje para todo tipo de aplicaciones e incluye los últimos avances en técnicas de programación. Su diseño fue encargado por el Departamento de Defensa de los Estados Unidos a la empresa Honeywell-Bull después de una selección rigurosa entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitrés lenguajes existentes. De éstos se seleccionaron como base para la creación del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarización del lenguaje se publicó en 1983 con el nombre de ADA en honor de la considerada primera programadora de la historia Augusta Ada Byron, condesa de Lovelace.
Entre las características del lenguaje se encuentran la compilación separada, los tipos abstractos de datos, programación concurrente, programación estructurada, libertad de formatos de escritura, etc., presentando como principal inconveniente su gran extensión.
referencias
://www.ecured.cu/Lenguajes_de_alto_nivel
://www.alegsa.com.ar/Dic/lenguaje_de_programacion_de_alto_nivel.php
Comentarios
Publicar un comentario