Lenguaje

 

 Abstraccion Paradigma Ejecucion Volver

Según el Nivel de Abstracción del Procesador

 

Si tomamos en cuenta el nivel de abstracción del procesador de los lenguajes de programación se clasifican en lenguajes de bajo nivel, lenguaje de nivel intermedio y lenguaje de alto nivel.

 

Lenguaje de Bajo Nivel Lenguaje de Medio Nivel Lenguaje de Alto Nivel

Es el que proporcional poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de maquina. En general se utiliza este tipo de lenguaje para programar controladores (drivers).

 

Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soportan.

 

Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los sistemas operativos, de aplicaciones en tiempo real o controladores de dispositivos.

 

La estructura de los lenguajes son como sigue:

 

Código Binario - Es el lenguaje básico, sólo admite todo (1) o nada (0). Todo sistema informático está basado en este código, ya que el 1 (todo, SÍ) quiere decir que se permite el paso de la electricidad y el 0 (nada, NO) no lo permite.

 

Sería la forma en la que están almacenados los programas, sea en memoria, sea en dispositivos de almacenamiento. De esta forma son recibidas y ejecutadas cada una de las instrucciones por la CPU del ordenador.

 

Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritméticos lógicos son posiciones literales de conmutadores físicos del hardware en su representación booleana. Estos lenguajes son literales de tareas.

 

Lenguajes ensambladores - También denominados nemotécnicos o nemónicos, no son programas ejecutables directamente por el ordenador, sino textos de código fuente que necesitan de alguna herramienta para su conversión a lenguaje máquina, son los programas llamados ensambladores.

 

Sus instrucciones suelen ser una denominación abreviada de la instrucción máquina que simbolizan, y tienen una correspondencia casi directa a las instrucciones máquina que representan. El código resultante de la ejecución del programa ensamblador generaría un código binario ejecutable.

 

Ventajas

  • Mayor adaptación al equipo

  • Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.

Desventaja

  • Imposibilidad de escribir código independiente de la maquina

  • Mayor dificultad en la programación y en la comprensión de los programas

  • El programador debe conocer mas de un centenar de instrucciones.

  • Es necesario conocer en detalle la arquitectura de la maquina.

Un lenguaje intermedio es el lenguaje de una máquina abstracta diseñada para ayudar a realizar el análisis de un programa informático.

 

El término proviene de su uso en compiladores, donde el código fuente de un programa es traducido a un modo más apropiado para transformaciones de mejora de código antes de generar el código objeto o código máquina para una máquina determinada.

 

El diseño del lenguaje intermedio difiere típicamente del lenguaje de máquina de tres maneras fundamentales:

 

 

 

  • El número de registros disponibles puede ser grande, incluso ilimitado.

 

Aunque no está específicamente diseñado como un lenguaje intermedio, la naturaleza de C como una abstracción del lenguaje ensamblador y su uso como lenguaje de sistema en Unix-like y otros sistemas operativos lo han convertido en un lenguaje intermedio popular: Eiffel, Sather, Esterel, algunos dialectos de Lisp (Lush, Gambit, Haskell, Glasgow Haskell Compiler), Squeak, Cython, Seed7, Vala y otros usan C como un lenguaje intermedio. Variantes de C han sido diseñadas para proveer a C de características como un lenguaje ensamblador portable, incluyendo C-- o el lenguaje intermedio de C.

 

El Common Intermediate Language de Microsoft es un lenguaje intermedio diseñado para ser compartido por todos los compiladores del .NET Framework antes de ser generado el código máquina.

 

El GNU Compiler Collection (GCC) usa varios lenguajes intermedios internamente para simplificar la portabilidad. Entre esos lenguajes están:

 

 

Mientras la mayoría de lenguajes son diseñados para soportar lenguajes escritos estáticamente, la representación intermedia de Parrot está diseñada para soportar lenguajes escritos dinámicamente (inicialmente Perl y Python).

 

Ahora para concluir se puede afirmar que el lenguaje C es el mas utilizado por su versatilidad y su potencia para trabajar teniendo en cuenta el nivel bajo con la potencia de un lenguaje de alto nivel.

 

Se caracterizan por expresar los algoritmos de una manera adecuada a las capacidad cognitiva humana, en lugar de a la capacidad de ejecutar código por la maquina.

 

En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área especifica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.

 

Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas.

 

Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera mas fácil y rápida.

En lugar de tratar con registros, direcciones de memoria y las pilas de llamadas, los lenguajes de alto nivel se refieren a las variables, matrices, objetos, aritmética compleja o expresiones booleanas, subrutinas y funciones, bucles, hilos, cierres y otros conceptos de informática abstracta, con un enfoque en la facilidad de uso sobre la eficiencia óptima del programa.

 
Ventajas
  • Genera un código más sencillo y comprensible.

  • Escribir un código válido para diversas máquinas o sistemas operativos.

  • Permite utilizar paradigmas de programación.

  • Permite crear programas complejos en relativamente menos líneas de código.

 
Inconvenientes
  • 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.

 

Principales lenguajes de nivel alto

 

 

 

 

 

 

 

Volver