Documente Academic
Documente Profesional
Documente Cultură
Existe un error comn que trata por sinnimos los trminos 'lenguaje
de programacin' y 'lenguaje informtico'. Los lenguajes
informticos engloban a los lenguajes de programacin y a otros
ms, como por ejemplo HTML (lenguaje para el marcado de pginas
web que no es propiamente un lenguaje de programacin, sino un
conjunto de instrucciones que permiten disear el contenido de los
documentos).
La ejecucin del programa por medio de un intrprete es
usualmente mucho menos eficiente que la ejecucin de un
programa compilado. No es eficiente en tiempo porque, o cada
instruccin debe pasar por una interpretacin en tiempo de
ejecucin, o como en ms recientes implementaciones, el cdigo
tiene que ser compilado a una representacin intermedia antes de
cada ejecucin. La mquina virtual es una solucin parcial al
problema de la eficiencia del tiempo pues la definicin del lenguaje
intermedio es mucha ms cercana al lenguaje de mquina y por lo
tanto ms fcil de ser traducida en tiempo de ejecucin. Otra
desventaja es la necesidad de un intrprete en la mquina local para
poder hacer la ejecucin posible.
Una caracterstica importante en un programa estructurado es que puede ser ledo en secuencia,
desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo
contrario de lo que ocurre con otros estilos de programacin. Esto es importante debido a que, es
mucho ms fcil comprender completamente el trabajo que realiza una funcin determinada, si todas
las instrucciones que influyen en su accin estn fsicamente contiguas y encerradas por un bloque.
La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres estructuras
de control y de eliminar la instruccin de desvo de flujo de control, excepto en circunstancias muy
especiales tales como la simulacin de una estructura lgica de control en un lenguaje de
programacin que no la posea.
Inconvenientes de la programacin
estructurada
El principal inconveniente de este mtodo de programacin es que se
obtiene un nico bloque de programa, que cuando se hace demasiado
grande puede resultar problemtico el manejo de su cdigo fuente; esto
se resuelve empleando conjuntamente la programacin modular, es decir,
si es necesario, se definen mdulos independientes, programados y
compilados por separado (en realidad esto no es necesario, pero s es
recomendable para su mejor mantenimiento y depuracin).
En realidad, cuando se programa hoy en da (inicios del siglo XXI) se
utilizan normalmente, tanto las tcnicas de programacin estructurada
como las de programacin modular, de forma conjunta y por lo tanto es
muy comn que cuando se hace referencia a la programacin
estructurada muchos entiendan que ella incluye tambin las tcnicas
modulares, estrictamente no es as.
Un mtodo un poco ms sofisticado es la programacin por capas, en la
que los mdulos tienen una estructura jerrquica en la que se pueden
definir funciones dentro de funciones o de procedimientos.
Si bien las metodologas en cuestin ya son de antigua data ("en plazos
informticos"), aun en la actualidad la conjuncin "Programacin
estructurada" y "programacin modular" es una de la ms utilizadas,
La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de
programacin que usa objetos y sus interacciones, para disear aplicaciones y programas
informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y
encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad,
existe variedad de lenguajes de programacin que soportan la orientacin a objetos.
Introduccin
Los objetos son entidades que tienen un determinado estado, comportamiento (mtodo) e identidad:
El estado est compuesto de datos, ser uno o varios atributos a los que
se habrn asignado unos valores concretos (datos).
Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos
pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores
bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interaccin
llamados mtodos, que favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez
el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades
indivisibles, en las que no se separa el estado y el comportamiento.
Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por la
propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para poder tratar
los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos,
sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito errneo
de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen a las
primeras por el otro. De esta manera se estara realizando una programacin estructurada
camuflada en un lenguaje de programacin orientado a objetos.
La POO difiere de la programacin estructurada tradicional, en la que los datos y los procedimientos
estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de
entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar
sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos
que esos procedimientos manejan. En la programacin estructurada solo se escriben funciones que
procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para
luego enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.
lenguaje orientado a objetos. Fue creado para hacer programas de simulacin, en donde los
"objetos" son la representacin de la informacin ms importante. Smalltalk (1972 a 1980) es
posiblemente el ejemplo cannico, y con el que gran parte de la teora de la programacin
orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan los siguientes:
ABAP -> SAP Lenguaje orientado a eventos
ABL Lenguaje de programacin de OpenEdge de Progress Software
ActionScript
ActionScript 3
Ada
C++
C#
Clarion
Clipper (lenguaje de programacin) (Versin 5.x con librera de
objetos Class(y))
D
Object Pascal (Embarcadero Delphi)
Gambas
Harbour
Eiffel
Java
JavaScript (la herencia se realiza por medio de la programacin
basada en prototipos)
Lexico (en castellano)
Objective-C
Ocaml
Oz
R
Perl (soporta herencia mltiple. La resolucin se realiza en preorden,
pero puede modificarse al algoritmo linearization C3 por medio del
mdulo Class::C3 en CPAN)
PHP (a partir de su versin 5)
PowerBuilder
Python
Ruby
Smalltalk (Entorno de objetos puro)
Magik (SmallWorld)
Vala
VB.NET
Visual FoxPro (en su versin 6)
Visual Basic 6.0
Visual DataFlex
Visual Objects
XBase++
Lenguaje DRP
Lenguaje de programacin Scala (lenguaje usado por Twitter)
Muchos de estos lenguajes de programacin no son puramente
orientados a objetos, sino que son hbridos que combinan la POO
con otros paradigmas.
Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object
REXX, han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de
programacin clsico.
Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin
Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de maduracin,
cada vez atrae a ms investigadores e incluso proyectos comerciales en todo el mundo.