
4 minute read
lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje natural de las personas, que al lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso de EDD's.
Se tratan de lenguajes independientes de la arquitectura del ordenador y de su hardware.
Advertisement
Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. Depende del lenguaje pueden existir unas u otras limitaciones, pero siempre que exista un intérprete o compilador para ese lenguaje en el lugar donde lo quieras ejecutar, funcionará.
EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa.
Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que consiga transformar el código fuente del lenguaje de alto nivel a un código cercano a las características de la maquina. A ese traductor es el que llamamos habitualmente Compilador.
Los lenguajes de alto nivel suelen usar tipos de datos para la programación que son conjuntos de valores admisibles para su almacenamiento en posiciones de memoria. Hablaremos más adelante de estos tipos de datos.
Algunos lenguajes de alto nivel en la actualidad
Profundizando el lenguaje de alto nivel
Este concepto es atribuido debido a que se considera un lenguaje abstracto, donde solo es conocido por un grupo de desarrolladores y conocedores del lenguaje informático; además, tiene como características lo siguiente:
No gestiona registros básicos sino que maneja variables y matrices diversas.
Utiliza objetos complejos y expresiones del tipo booleanas.
Representa las acciones por medio de subrutinas y funciones diversas.
Utiliza bucles, hilos y cierres para complementar las instrucciones.
Es un lenguaje abstracto que tiene ciertos denominadores comunes.
No es entendido por usuarios comunes.
El intérprete
Un intérprete es un programa informático que procesa el código fuente de un proyecto de software durante su tiempo de ejecución, es decir, mientras el software se está ejecutando, y actúa como una interfaz entre ese proyecto y el procesador. Un intérprete siempre procesa el código línea por línea, de modo que lee, analiza y prepara cada secuencia de forma consecutiva para el procesador.

El compilador
Un compilador es un programa informático que traduce todo el código fuente de un proyecto de software a código máquina antes de ejecutarlo. Solo entonces el procesador ejecuta el software, obteniendo todas las instrucciones en código máquina antes de comenzar. De esta manera, el procesador cuenta con todos los componentes necesarios para ejecutar el software, procesar las entradas y generar los resultados.
Diferenciando y resumiendo el compilador y el intérprete
Intérprete
Compilador
Momento en que se traduce el código fuente
Durante el tiempo de ejecución del software Antes de ejecutar el software
Procedimiento de traducción Línea por línea Siempre todo el código
Presentación de errores de código
Después de cada línea En conjunto, después de toda la compilación
Velocidad de traducción Alta Baja
Eficiencia de traducción Baja Alta
Coste de desarrollo Bajo Alto
Lenguajes típicos PHP, Perl, Python, Ruby, BASIC C, C++, Pascal
Ventajas Desventajas
• El lenguaje de alto nivel es muy intuitivo y fácil de entender para los programadores novatos.

• Es eficiente, permite que los programadores escriban menos código y realicen tareas complejas con menos esfuerzo.
• Portalidad, los programas escritos en lenguaje de alto nivel son portables, lo que significa que pueden ser ejecutados en diferentes plataformas sin necesidad de modificar el código.
• Rendimiento, los programas escritos en lenguaje de alto nivel pueden ser más lentos que los programas escritos en lenguaje de bajo nivel, ya que necesitan ser traducidos y ejecutados por una máquina virtual.
• El lenguaje de alto nivel puede tener algunas limitaciones en términos de acceso directo a los recursos del sistema, lo que puede dificultar la creación de programas muy específicos.
• Algunos lenguajes de alto nivel pueden tener un coste elevado para su utilización.
Lenguaje de 4ta generación
Un lenguaje de cuarta generación (programación) (4GL) es una agrupación de lenguajes de programación que intentan acercarse más que los 3GL al lenguaje humano, la forma de pensar y la conceptualización.
Los 4GL están diseñados para reducir el tiempo general, el esfuerzo y el costo del desarrollo de software. Los principales dominios y familias de 4GL son: consultas de bases de datos, generadores de informes, manipulación de datos, análisis e informes, pintores y generadores de pantallas, creadores de GUI, optimización matemática, desarrollo web y lenguajes de uso general.
Algunos ejemplos de lenguajes de 4ta generación
– SheerPower4GL
– PowerBuilder
– WinDev
– Focus
– Natural
– Progress4GL
Características de un 4GL
• Es un lenguaje no procedimental [non-procedural].
• Solo se define qué se debe hacer, no cómo se debe hacer.
• Se apoya en herramientas de alto nivel denominadas herramientas de cuarta generación que contienen los algoritmos necesarios para decir cómo hacer lo que el usuario necesita.
• Es limitado el tipo de problemas que pueden resolver.
• Permite el manejo y manipulación de datos basado en el lenguaje SQL (Structured Query Language)

• Combinan características procedimentales (Permite especificar condiciones con sus respectivas acciones) y no procedimentales (Pide que se indique el resultado deseado).
• Aumento de productividad por la utilización de funciones preprogramadas.
• El entorno de desarrollo facilita la realización de determinadas tareas como diseño de pantallas o informes.
Sobre el lenguaje de 4ta generación
Repasemos sobre las ventajas y desventajas que nos ofrece este tipo de lenguaje.
Ventajas
• Permiten elaborar programas en menor tiempo, lo que conlleva a un aumento de la productividad.
• El personal que elabora software sufre menos agotamiento, ya que generalmente requiere escribir menos.

• El nivel de concentración que se requiere es menor, ya que algunas instrucciones, que le son dadas a las herramientas, a su vez, engloban secuencias de instrucciones a otro nivel dentro de la herramienta.
• Cuando hay que dar mantenimiento a los programas previamente elaborados, es menos complicado por requerir menor nivel de concentración.
Desventajas
• Las herramientas prefabricadas generalmente son menos flexibles que los lenguaje de alto nivel.

• Se crea dependencia de uno o varios proveedores externos, lo que se traduce en pérdida de autonomía. A menudo las herramientas prefabricadas contienen librerías de otros proveedores, que conlleva a instalar opciones adicionales que son consideradas opcionales.
• A menudo no cumplen con estándares internacionales ISO ANSI. Por este motivo invertir tiempo y dinero es un riesgo a futuro, porque no se sabe a ciencia cierta cuanto tiempo permanecerá la herramienta y su fabricante en el mercado.