sábado, 25 de agosto de 2007

Lenguajes de Alto Nivel

Los lenguajes de Alto Nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas. En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida.

Se clasifican como lenguajes procedimentales orientados a objetos, basados en objetos. 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 más fácil y rápida .

Los lenguajes de alto nivel logran la independencia del tipo de máquina y se aproximan al lenguaje natural. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso.

Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:

Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware específico de dicha máquina.

Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.

Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc, que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.

Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C,C++, LIS, EUCLID, BASIC,JAVA), además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos.

Estos lenguajes se llaman "de tercera generación" o "de alto nivel", en contraposición a los "de bajo nivel" o "de nivel próximo a la máquina".

C(en realidad es un lenguaje de medio nivel).

Lenguaje de medio nivel es un lenguaje de programacion informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.


Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).


Tutoriales de algunos lenguajes de alto nivel


C++ Manual PDF

ANSI C Manual PDF

JAVA Manual PDF

Lenguajes de Bajo Nivel

Un lenguaje de programacion de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de maquina.

La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje de alto nivel, se refiere a la reducida abstracción entre el lenguaje y el hardware.

La progración en lenguaje máquina es difícil, por ello se necesitan lenguajes que permitan simplificar este proceso. Los lenguajes de bajo nivel han sido diseñados para este fin.

Estos lenguajes son generalmente dependientes de la máquina, es decir, dependen de un conjunto de instrucciones específicas del ordenador. Un ejemplo de este tipo de lengujes es el ensamblador. En él, las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos

El lenguaje ensamblador o código simbólico (en inglés Assembly language) es una notación del lenguaje de máquina que es legible por personas y es específica de cada arquitectura de computadoras. El lenguaje de máquina, un simple patrón de bits, es hecho legible reemplazando valores crudos por símbolos denominados mnemotécnicos (generalmente, abreviaturas de palabras inglesas). . Se inventó para facilitar la tarea de los primeros programadores que hasta ese momento tenían que escribir directamente en código binario.

Las palabras mnemotécnicas son mucho más fáciles de recordar que las secuencias de ceros y unos. Una instrucción típica de ensamblador puede ser:
ADD x,y,z

Esta instrucción significaría que se deben sumar los números almacenados en las direcciones de memoria x e y, y almacenar el resultado en la dirección z. Pero aún así, a medida que los programas crezcan en tamaño y complejidad, el ensamblador sigue sin ser una buena solución.

La programacion en un lenguaje de bajo nivel como el lenguaje de maquina o el lenguaje ensamblador tiene ciertas ventajas:

-Mayor adaptación al equipo.

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

Pero también tiene importantes inconvenientes:

-Imposibilidad de escribir código independiente de la máquina.

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

Tutorial basico de ensamblador






Integrantes:
Altuve Dayana C.I:17353406
Alvarez Victor C.I:17062643
Echezuria Luis C.I:17434117
Medina Frank C.I:17434208
Ortuño Mariela C.I:17372409
Pestana Francisco C.I:16102986
Vegas Gerly C.I:13732482
Urbano Cesar C.I:16912279