You are on page 1of 6

Lenguaje de alto nivel

Un lenguaje de programacin de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las mquinas. En los primeros lenguajes de alto nivel la limitacin era que se orientaban a un rea especfica y sus instrucciones requeran de una sintaxis predefinida. Se clasifican como lenguajes procedimentales. Otra limitacin de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programacin para realizar las secuencias de instrucciones lgicas. Los lenguajes de alto nivel se crearon para que el usuario comn pudiese solucionar un problema de procesamiento de datos de una manera ms fcil y rpida. Por esta razn, a finales de los aos 1950 surgi un nuevo tipo de lenguajes de programacin que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera generacin o de alto nivel, en contraposicin a los de bajo nivel o de nivel prximo a la mquina.

Ventajas e inconvenientes
Ventajas
y y

Genera un cdigo ms sencillo y comprensible. Escribir un cdigo vlido para diversas mquinas y, posiblemente, sistemas operativos.

Inconvenientes
y y

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 bajo nivel es el que proporciona un conjunto de instrucciones aritmeticolgicas sin la capacidad de encapsular dichas instrucciones en funciones que no estn ya contempladas en la arquitectura del hardware.

Complejidad Vs Dificultad
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. Consecuentemente, es fcilmente trasladado a lenguaje de mquina. La estructura de los lenguajes son como sigue: 1. Lenguaje Mquina - Las invocaciones a memoria, como los procesos aritmtico lgicos son posiciones literales de conmutadores fsicos del hardware en su representacin booleana. Estos lenguajes son literales de tareas. 2. Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una mnima lgica aritmtica. Estn ntimamente vinculados al hardware. Por norma general estn disponibles a nivel firmware, cmos o chip set. Estos lenguajes estn orientados a procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura del hardware as haya sido diseada.
y y

Por ejemplo: La arquitectura CISC contiene muchas mas instrucciones a este nivel, que la RISC. Son denominados como ensambladores de un hardware concreto.

1. Lenguajes de medio nivel - Son aquellos que, basndose en los juegos de instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmtico, pero a nivel lgico dependen de literales en ensamblador. Estos lenguajes estn orientados a procedimientos. Los procedimientos se componen de procesos.
y

Ejemplos: C, Basic.

1. Lenguajes de alto nivel - Son aquellos que permiten una mxima flexibilidad al programador a la hora de abstraerse o de ser literal. Permiten un camino bidireccional entre el lenguaje mquina y una expresin casi oral entre la escritura del programa y su posterior compilacin. Estos lenguajes estn orientados a objetos. Los objetos se componen de propiedades cuya naturaleza emerge de procedimientos.
y

Ejemplos: C++, Fortran, Cobol, Lisp.

1. Lenguajes de aplicaciones - Son aquellos que no permiten una bidireccionalidad conceptual entre el lenguaje mquina y los lenguajes de alto nivel, ni tampoco la literalidad a la hora de invocar conceptos lgicos. Se basan en libreras creadas en lenguajes de alto nivel. Pueden permitir la creacin de nuevas libreras, pero son propietarias y dependientes de las suministradas por la aplicacin. Estos lenguajes estn orientados a eventos. Los eventos acontecen cuando las propiedades de un objeto interactan con otro.
y

Ejemplos: Visual Basic para aplicaciones.

1. Lenguajes de redes - Son aquellos que se basan en un convenio de instrucciones totalmente independientes de la mquina, y completamente dependientes de la red a la que estn orientadas. Se dividen en descriptivos (HTML, XML, VML), de cliente-Servidor (Java, PHP) y de script.
y

La palabra bajo no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstraccin entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar controladores de dispositivos.

Interaccin Mquina Vs Humano


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.
y y y y y

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.

Primera generacin
El lenguaje de programacin de primera generacin (por sus siglas en ingls: 1GL), es el lenguaje de cdigo mquina. Es el nico lenguaje que un microprocesador entiende de forma nativa. El lenguaje mquina no puede ser escrito o ledo usando un editor de texto, y por lo tanto es raro que una persona lo use directamente.

Segunda generacin
El lenguaje de programacin de segunda generacin (por sus siglas en ingls: 2GL), es el lenguaje ensamblador. Se considera de segunda generacin porque, aunque no es lenguaje nativo del microprocesador, un programador de lenguaje ensamblador debe conocer la arquitectura del microprocesador (como por ejemplo las particularidades de sus registros o su conjunto de instrucciones). Existen dos tipos de lenguajes claramente diferenciados; los lenguajes de bajo nivel y los de alto nivel. Por Sara Alvarez
Atencin: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

El ordenador slo entiende un lenguaje conocido como cdigo binario o cdigo mquina, consistente en ceros y unos. Es decir, slo utiliza 0 y 1 para codificar cualquier accin.

Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel. Lenguajes de bajo nivel Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo. Dentro de este grupo se encuentran:
y

El lenguaje maquina: este lenguaje ordena a la mquina las operaciones fundamentales para su funcionamiento. Cnsiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son bastantes difciles de manejar y usar, adems de tener cdigos fuente enormes donde encontrar un fallo es casi imposible. El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, adiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener.

Lenguajes de alto nivel Son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina. 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. 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 maquina. Suelen usar tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de aplicacin) y de propsito especifico (como FORTRAN para trabajos cientficos). Lenguajes de Medio nivel Se trata de un termino no aceptado por todos, pero q seguramente habrs odo. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas caractersticas de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. Generaciones La evolucin de los lenguajes de programacin se puede dividir en 5 etapas o generaciones.
y y y y

Primera generacin: lenguaje maquina. Segunda generacin: se crearon los primeros lenguajes ensambladores. Tercera generacin: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol Cuarta generacin. Son los lenguajes capaces de generar cdigo por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aqu tambin se encuentran los lenguajes orientados a objetos, haciendo posible la reutilizacin d partes del cdigo para otros programas. Ej. Visual, Natural Adabes Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todava estn poco desarrollados. Ej. LISP

Cual es la diferencia entre un lenguaje de programacin de alto nivel y uno de bajo nivel? No todos los lenguajes de programacin son creados iguales, mucho menos con el mismo fin.

El mundo de la programacin se puede dividir en dos, lenguajes de alto nivel y lenguajes de bajo nivel. No, esto no se refiere a su dificultad o estructura del cdigo, sino como los algoritmos se expresan: A nivel maquina o nivel humano.

Los lenguajes de programacin de alto nivel(como Java y Python) suelen ser sencillos y permiten crear programas rpidamente. Por que muchas de las tareas bsicas a nivel sistema(como el valor de algunas variables a nivel memoria, el lugar que esas variables ocuparn, etc.) se la dejan a la computadora. Esto hace ms sencillo hacer programas para diferentes computadoras(con diferentes arquitecturas) y sistemas operativos, incluso a veces se puede usar el mismo cdigo. Los lenguajes de bajo nivel requieren cdigo mucho ms especifico. Es necesario expresar con algoritmos a nivel maquina cada instruccin, es ms, en algunos lenguajes como Assembly es necesario conocer la estructura del procesador para la maquina que se esta programando y como este guarda las variables en los registros. Tienen la ventaja de que se puede sacar provecho de cada bit y byte procesado con mayor precisin