UNIDAD 05: EVOLUCIÓN DE LOS LENGUAJES DE
PROGRAMACIÓN
ORIENTADA A OBJETOS
EVOLUCIÓN
DE LOS LENGUAJES PROGRAMACIÓN
Introducción
En esta sección se describiré brevemente cómo han evolucionado los
lenguajes de programación, desde el lenguaje de máquina y ensamblador (Bajo
Nivel) hasta los lenguajes estructurados y
orientados a objetos (Alto Nivel). Se presentan las limitaciones principales
del lenguaje máquina y algunos ejemplos de lenguaje ensamblador.
En el siguiente nivel se encuentran los lenguajes de alto nivel que
solventan muchas de las debilidades de los lenguajes de bajo nivel pero que aún
tienen limitaciones. Después se abordan los lenguajes de programación
Orientados a Objetos, exponiendo sus características, taxonomía y ejemplos de
los principales lenguajes de programación ubicados en esta categoría de los
cuales
algunos son Orientados a Objetos y otros tan solo han incorporado algunas de
las características de la orientación a objetos. Esto primer acercamiento será
meramente teórico, pero en este nivel del curso ya has desarrollado la lógica
estructurada y puedes empezar a experimentar con lenguajes de programación y
olvidarte un poco del pseudocódigo. Con la culminación de esta unidad el
estudiante tendrá las bases para interactuar con un lenguaje de programación y
aplicar los conocimientos adquiridos en la lógica estructurada en su primer
acercamiento a un lenguaje de programación específico siendo responsable en el desarrollo
de programas que
busquen solución a
problemas. Demostrará responsabilidad, creatividad, innovación, comprensión y
colaboración con su equipo de trabajo.
Clasificación de los lenguajes de programación
Lenguaje de bajo nivel
Lenguaje de maquina
Es el lenguaje que entiende el procesador y está basado en el sistema
binario. Está formado por un conjunto de instrucciones o códigos que pueden ser
interpretados directamente por el procesador. El lenguaje máquina valia dependiendo del hardware evoluciona con
cada
versión del CHIP. Cuando se habla a del lenguaje máquina en el IBM PC y compatibles, se habla principalmente de la familia de procesadores Intel 80xX y de su evolución hasta el actual Core. En cada versión del CHIP Intel se han agregado nuevas funcionalidades, pero Intel siempre ha tratado de mantener la compatibilidad con las versiones anteriores., por lo que se habla de que un programa es compatible con la Familia x86.
versión del CHIP. Cuando se habla a del lenguaje máquina en el IBM PC y compatibles, se habla principalmente de la familia de procesadores Intel 80xX y de su evolución hasta el actual Core. En cada versión del CHIP Intel se han agregado nuevas funcionalidades, pero Intel siempre ha tratado de mantener la compatibilidad con las versiones anteriores., por lo que se habla de que un programa es compatible con la Familia x86.
La principal ventaja del lenguaje maquina es su alta velocidad, debida a la traducción inmediata de los
códigos binarios. Entre sus muchas debilidades encontramos:
Codificación compleja: el programador debe entender el significado de
los unos y ceros y tener tablas de instrucciones y variables. En los procesadores
actuales de 64bits, por
Ejemplo, una instrucción tiene 64 unos y ceros, lo cual es muy difícil
de controlar.
Errores en la codificación y
depuración compleja: debido a la complejidad de los Códigos
Productividad mínima: tiempos de desarrollo muy altos
No portabilidad: un programa solo funciona sobre el hardware para el
que es hecho.
Lenguaje Ensamblador
Son una representación más entendible para el humano de los códigos
del lenguaje máquina. Cada LENGUAJE ENSAMBLADOR: aparece
casi a la par con el lenguaje máquina, esto debido a que los
fabricantes de hardware diseñan sus Chips pensando ya en las instrucciones de
un lenguaje de ensamblado.
Un ejemplo de una instrucción en lenguaje máquina y en lenguaje
ensamblador:
Lenguaje Máquina
|
Lenguaje Ensamblador
|
1
0010111000000001
0000000000001010 |
mov ax, 10
|
A pesar de que el lenguaje ensamblador es más fácil de entender por
las personas sigue teniendo las desventajas del lenguaje de máquina. Realmente lo que hace es ayudar un
poco a que el código sea más legible, el lenguaje ensamblador adicionalmente
necesita un traductor {ensamblador} capaz de convertir dichos códigos en lenguaje máquina .
Ejemplos de ensambladores: TASM (Turbo Assembler de Borland), MASM (Microsoft Macro Assembler), NASM (Netwide Assembier - Libre).
Lenguaje de Alto nivel.
Son lenguajes más afines coa el programador en tos que una instrucción
puede representar varías instrucciones en lenguaje máquina. Incluyen los
lenguajes estructurados y no estructurados. Como ejemplos tenemos: Basic,
Pascal, C, API, FORTRAN (Aplicaciones Científicas), COBOL (para aplicaciones de procesamiento de datos), LISP Y PROLOG (para inteligencia
Artificial), etc.
Los lenguajes de alto nivel necesitan de un traductor que puede ser
interpretador o compilador. Los interpretadores o intérpretes, necesitan de un
programa auxiliar que traduce en tiempo real las instrucciones al lenguaje
máquina, por lo tanto, cada vez que un programa interpretado se ejecuta ejecutarse también su interprete, ejemplos Je lenguajes interpretados.
Basic,
PROLOG, LISP, entre otros.
PROLOG, LISP, entre otros.
Los lenguajes compilados son aquellos que necesitan de un compilador para la traducción al lenguaje máquina. La traducción o compilación se hace solo una vez, y el resultado es un código
objeto entendible por la máquina. Para ejecutar un programa compilado no se necesita de su
compilador. Ejemplos de lenguajes compilados: Pascal, C, Fortran, Cobol, Modula-2 (evolución del Pascal), etc.
ALGUNAS DE LAS CARACTERÍSTICAS DE LOS LENGUAJES
DE ALTO NIVEL:
*Depuración más sencilla: Debido a que el código es más legible, la
depuración también
se hace más fácil. Con la ayuda editores (IDEs - Entornos de Desarrollo Integrados) la
compilación, depuración y ejecución se hacen más fácilmente.
se hace más fácil. Con la ayuda editores (IDEs - Entornos de Desarrollo Integrados) la
compilación, depuración y ejecución se hacen más fácilmente.
*Productividad aceptable: son más productivos que los lenguajes de alto
nivel
*Algunos permiten la Portabilidad; generalmente los interpretados.
LENGUAJES DE PROGRAMACIÓN ORIENTADA A OBJETOS
Los lenguajes de programación orientados a objetos tratan a los
programas como conjuntos de objetos que se ayudan entre ellos para realizar
acciones. Entendiendo como objeto al entidades que contienen datos. Permitiendo que los programas sean más fáciles de
escribir, mantener y reutilizar.
Los objetos tienen toda la información (atributos) que los diferencia
de otros pertenecientes a otra clase. Por .medio de unos métodos se comunican
los objetos de una misma o diferente clase produciendo el cambio de estado de los objetos. Esto hace que a los objetos se
íes trace como unidades indivisibles en las que no se separan la información ni
los métodos usados en su tratamiento.
Los lenguajes de programación orientados a objetos tienen su origen en
un lenguaje que fue diseñado por los profesores Ole-Johan Dahl y Kristen Nygaard
en Noruega. Este lenguaje de programación orientado a objetos fue el
"Simula 67" fue un lenguaje creado para hacer simulaciones de naves.
Los lenguajes de programación orientadas a objetos son lenguajes
dinámicos en los que estos objetos se pueden crear y modificar sobre la marcha.
Esta programación orientada a objetos (POO) tomo auge a mediados de los años
ochenta debido ala propagación de las interfaces gráficas de usuarios, para lo
que los lenguajes de programación orientados a objetos están especialmente
dotados.
Los principales lenguajes de programación orientados a objetos son:
Ada, C++, C#, VB,NET, Clarion,
Delphi, Eiffel, Java, Léxico (en castellano), Objective-C, Ocamf, Oz, PHP,
PowerBuilder, Python, Ruby y Smalltalk.
No todos estos lenguajes de programación orientados a objetos son
específicamente orientados aobjetos. Sino que algunos de ellos se le han
añadido extensiones orientadas a objetos.
TAXONOMÍA DE LOS LENGUAJES ORIENTADOS A OBJETOS
Una dosificación para los Lenguajes de programación con respecto a la
orientación a objetos fue creada por Wegner, dicha clasificación se constituye
de la siguiente forma:
Basados en objetos
|
Basados en clases
|
Orientación a Objetos
|
Si la sintaxis y semántica de lenguaje
soportan las
características de objetos que hemos mencionado |
Si un lenguaje está basado en
objetos y además
soporta clases, se dice que está basado en clases |
Si un lenguaje de
programación soporta objetos, clases y además permite la jerarquía de dichas clases, entonces se dice que es un lenguaje de programación orientado a objetos. |
0 comentarios:
Publicar un comentario