SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
ACTIONSCRIPT                                            Capítulo             1
Fundamentos
Los distintos lenguajes y tipos

de programación existentes

y la comprensión de lo que significa

el concepto de programación orientada

a objetos servirán de puntapié inicial

para conocer los fundamentos de la

programación y del lenguaje Actionscript.




                                                        Lenguajes de programación   18
                                                        Tipos de programación       19
                                                          Programación orientada
                                                          a objetos                 21
                                                          El director de orquesta   26
                                                        Resumen                     27
SERVICIO DE ATENCIÓN AL LECTOR: lectores@tectimes.com   Actividades                 28
ACTIONSCRIPT



LENGUAJES DE PROGRAMACIÓN
La base del entendimiento entre dos o más individuos está dada por la normaliza-
ción de sus expresiones y actitudes: para que un hombre comprenda lo que otro le
está diciendo debe compartir un mismo código gestual y verbal, debe compartir un
mismo idioma. Al incursionarnos en el universo de las computadoras, observamos
que el único lenguaje que éstas realmente comprenden es el binario. Cuando se co-
munican entre sí, se entienden perfectamente; ambas comprenden lo que significan
aquellas cadenas de ceros y unos prácticamente indescifrables para el hombre. El
problema surge en el momento que una persona intenta darle una instrucción.

Veamos el caso de un programador que está desarrollando una consola de sonido.
Él precisa que se reproduzca una determinada canción robotech_sdf1.mp3 cuando
el usuario presione en un área determinada, lo que significa asignarle un código si-
milar a éste para que la tarea se desencadene:

0111 0010 1010 0111 0001 1111 1110 1001 0001 0100
0010 1010 0111 0001 1111 0111 0010 1010 0111 0101

Si la manera de indicarles a las computadoras cómo comportarse estuviera basada
únicamente en este lenguaje binario, podríamos contar con los dedos quiénes serían
los individuos capaces de “hablar” efectivamente con ellas. El hombre no se comu-
nica con ceros y unos, no los comprende... y jamás lo hará. Es por ello que desde
los inicios de la era digital surgió la necesidad de generar nuevos idiomas que ac-
túen más cerca del territorio lingüístico conocido por el programador. Ellos son los
famosos lenguajes de programación.

Estos lenguajes consisten en verdaderos “traductores” que traspasan un idioma ami-
gable para el individuo en aquellos tediosos ceros y unos necesarios para que la com-
putadora opere. Este proceso de traducción puede hacerse mediante un compilador,
un intérprete o con una combinación de los dos. Existen cientos de lenguajes de
programación que, según su cercanía al lenguaje binario, se dividen en cuatro gran-
des grupos, que veremos en detalle a continuación:

• Lenguaje de máquina o binario: es aquel que la computadora comprende sin
  necesidad de realizar conversión alguna. Su escritura resulta extremadamente di-
  fícil para el mayor porcentaje de programadores, y prácticamente ya nadie lo uti-
  liza. Por otro lado, cada tipo de procesador tiene su propio lenguaje máquina (su
  propio juego de instrucciones), de manera que un programa ejecutable que corre
  en una computadora equipada con un procesador Pentium no podría correr, por
  ejemplo, en un Apple Power Macintosh.

18                                                                           usr.code
Tipos de programación



• Lenguaje de bajo nivel: también conocido como ensamblador, representa un




                                                                                                    1
  paso hacia la humanización de los lenguajes de programación. Consta de un com-
  plejo repertorio de palabras nemotécnicas (tales como add para la suma o sub pa-




                                                                                                    Fundamentos
  ra la resta) que simplifican parcialmente la comunicación entre el programador y
  la computadora. Se trata de un lenguaje realmente robusto que actúa práctica-
  mente a la par del lenguaje binario.

  MOV AX, A
  ADD AX, B
  MOV C, AX



• Lenguaje de medio nivel: posee un diccionario de comportamientos/instruccio-
  nes que consta de palabras similares a aquellas conocidas por los hombres (include,
  define, if). Goza del equilibrio ideal entre simpleza y potencia: una variada gama
  de posibilidades para trabajar directamente con la computadora y una escritura ca-
  paz de ser comprendida por el hombre. En este grupo se destaca el lenguaje C.
• Lenguaje de alto nivel: es el de mayor entendimiento para el hombre. Escribir una
  aplicación con este lenguaje resulta mucho más ágil y sencillo que con los de nive-
  les anteriores. La mayoría de ellos forjaron sus cimientos en base al lenguaje C, si
  bien no logran la “directa comunicación” que posee este último con la computa-
  dora. Destacados: C++, Java, Pascal, Eiffel, Clipper, Ada, Smalltalk, Visual
  Basic, Delphi, FoxPro, JAVA y Actionscript.



TIPOS DE PROGRAMACIÓN
El desarrollo de aplicaciones persigue el único objetivo de solucionarle problemas
al hombre: el programador escoge un lenguaje y luego le indica ciertas instruccio-
nes a la computadora para que ésta las procese y devuelva el resultado de dicha
tarea. A lo largo de la historia han ido surgiendo distintas maneras de abordar


❘❘❘    LENGUAJE DE PROGRAMACIÓN

Es el conjunto de normas lingüísticas que permiten escribir un programa y que éste sea enten-
dido primordialmente por la computadora. Según la cercanía o lejanía de la sintaxis al idioma hu-
mano (alto/bajo nivel), será más o menos fácil de interpretar por el programador.




usr.code                                                                                      19
ACTIONSCRIPT



ciertas problemáticas, lo que fue dando origen a distintas formas de programar.
Cada forma plantea un camino diferente para solucionar un mismo problema.
Dependiendo del escenario, el programador deberá optar por el tipo de progra-
mación más conveniente:

• Programación secuencial: se basa en sentencias escritas y ejecutadas con un orden
  cronológico. La ruptura de dicha secuencialidad suele estar dada por una partícu-
  la “goto” que permite procesar líneas de código alternas. Los lenguajes que utiliza
  este esquema son: Basic, Assembler, Fortram y Cobol. Aquí vemos un ejemplo:

10    CLS
20    numero=220000
30    palabra$=”Actionscript”
40    LOCATE 7,7
50    PRINT “ Cantidad de páginas “; numero
60    LOCATE 8,7
70    PRINT“ Estudiante de: “; palabra$
80    END



• Programación estructurada: se basa en la simplificación de un gran problema en
  varios menores. Consta de pequeños módulos (funciones) capaces de realizar ta-
  reas muy específicas que, al combinarse con sus pares, resuelven problemas de ín-
  dole mayor. Lenguajes que utilizan este esquema: C, Pascal. A continuación, ve-
  mos un ejemplo de código C:

     #include <stdio.h>
     int main(void){
        char cadena[20];
        printf( “Introduce una cadena:“ );
        fflush(stdout);
        gets(cadena);
        printf(“has escrito: %s“,cadena);
        return 0;
        }



• Programación lógica: es una forma de programar donde lo más importante es
  definir un conjunto de hechos, que se conocen con anterioridad, y un conjunto
  de reglas que nos definen las distintas relaciones existentes entre los componentes
  del programa. Lenguajes que utilizan este esquema: Prolog, Mercury.

20                                                                           usr.code
Tipos de programación



• Programación orientada a objetos: lo desarrollaremos en extenso a continua-




                                                                                                   1
  ción, pero para comenzar, podemos decir que los lenguajes que utilizan este es-
  quema son: C++, Java, Delphi, Smalltalk, lenguajes .NET y Actionscript.




                                                                                                   Fundamentos
Programación orientada a objetos
Tiempo atrás, el universo de los lenguajes de programación estaba reinado por el
paradigma de la programación estructurada: rara vez se escuchaba nombrar un len-
guaje que no fuera “C” en el contexto sociolaboral de un programador. Sin embar-
go, con el pasar de los años y el surgimiento de nuevos procesos de negocios, los
programadores comenzaron a darse cuenta de que este modelo presentaba ciertas
dificultades en torno a los problemas que sus desarrollos debían solucionar:

• Escalabilidad: las aplicaciones debían ser prácticamente rescritas cuando el pro-
  gramador intentaba agregarle nuevas funcionalidades no planificadas en el mo-
  mento de su génesis.
• Dificultad: las aplicaciones terminaban formadas por miles y miles de funciones
  que impedían una ágil y sencilla lectura del código fuente.
• Disgregación: falta de una lógica explícita que vinculara el accionar de los dife-
  rentes módulos o funciones entre sí.
• Implementación: toda modificación en el código fuente requería, casi sin excep-
  ción, expertos programadores que comprendieran “C” a la perfección.
• Actualización: demandaba muchas horas hombre la realización de pequeñas ac-
  tualizaciones, también conocidas como updates.
• Reutilización y transportabilidad: el código escrito para una aplicación rara vez
  servía para ser aplicado en una segunda.

La programación orientada a objetos (OOP, siglas de Object Oriented Programming)
surge para salvar todas estas problemáticas. OOP plantea el siguiente paradigma: el
universo se encuentra repleto de objetos independientes que interactúan entre sí. Ca-
da objeto posee características propias y puede comportarse de tal o cual manera se-
gún sus condiciones físicas se lo permitan. En otros términos, cuando el programa-


❘❘❘    OBJETO

El objeto es una estructura compleja en cuyo interior existen datos y especificaciones de ejecu-
ción de tareas. Ambos contenidos están estrechamente relacionados entre sí y se encuentran se-
parados del entorno “encerrados en una cápsula”.




usr.code                                                                                     21
ACTIONSCRIPT



dor desarrolla una aplicación, define sus propios objetos, describe su apariencia y las
relaciones existentes entre sí. El accionar en conjunto de ellos es lo que permite la
ejecución del programa y la consecuente solución de los distintos problemas. Según
el esquema estructural OOP, los objetos constan de tres partes fundamentales:

• Nombre: identificación única.
• Propiedades: características físicas y compositivas.
• Métodos: acciones/tareas capaces de realizar.

Un objeto mantiene sus características ajenas al mundo que lo rodea (“encapsula-
ción”), lo que permite una total independencia de sus pares; cada objeto existe por
sí sólo. Es a través de sus métodos, también denominados interfases, que se rela-
ciona con el mundo exterior y lleva a cabo determinadas consignas (Figura 1).




               Figura 1. Esquema de relación y comunicación de objetos.

Clases
El primer paso en el desarrollo de una aplicación OOP consiste en definir “moldes”
o “clases”. Éstos llevan consigo las especificaciones descriptivas y actitudinales (mé-
todos y propiedades) que luego serán transmitidas a sus descendientes. Paso siguien-
te, un constructor determina la creación de un objeto a partir de ese molde y espe-
cifica sus características particulares en un proceso denominado instanciación. Vea-
mos un ejemplo para ser más claros.

Un programador genera la clase CD_player conjuntamente con la definición de sus
métodos y propiedades. Cada unidad (objeto) creada a partir de este molde (clase)
realizará las tareas que le fueron asignadas en distintos momentos e intensidades
(play, stop, pause, eject, subir y bajar volumen), podrá recibir una apariencia especí-
fica combinando sus propiedades (color de cobertura, forma de los botones, color

22                                                                             usr.code
Tipos de programación



del display, etc.) y será totalmente independiente de sus pares. A este objeto sólo le




                                                                                                   1
resta ser individualizado mediante un único e irrepetible nombre de instancia.




                                                                                                   Fundamentos
Supongamos que hemos definido el método cambiarVolumen() y la propiedad
volumen (entre otras) en la clase CD_player. Una vez que la clase asigna su estructura
a un objeto denominado mi_CD_player (proceso
de instanciación llevado a cabo a través de un
constructor), el objeto se vuelve receptor de órde-
nes. De esta manera, cuando el programador indi-
que mi_CD_player.cambiarVolumen(80), el repro-
ductor de CD modificará su propiedad volumen y
la audición del sonido emitido por el objeto cam-
biará al 80% de su capacidad (Figura 2).


         Figura 2. El acceso al contenido de un objeto
(propiedades) sólo es posible a través de sus métodos.

Es sólo a través de los métodos (al menos, la corriente purista de OOP así lo sostie-
ne) que el entorno del objeto puede relacionarse con los datos encontrados dentro
de él. Esta particularidad es justamente la que marca la “independencia”, “transpor-
tabilidad”, “facilidad” y “reutilización” de este esquema de programación: no existe
código disperso por la aplicación; todo está correcta y prolijamente encapsulado
dentro de unidades “clase” y “objeto”. Una vez que una clase ha sido creada, no pre-
cisamos saber qué ocurre dentro, tan sólo debemos conocer la sintaxis para invocar
sus interfases o métodos.

Herencia
La herencia entre objetos es un concepto que nos permite definir un nuevo objeto
a partir de las cualidades físico-actitudinales (propiedades y métodos) de un segun-
do más genérico. Esta característica, junto con la de polimorfismo, nos ahorra un
tiempo considerable a la hora de crear objetos que guardan similitud con otros.


❘❘❘    CLASE VS. OBJETO

Como vimos en este capítulo, una clase es un tipo de datos definido por el usuario que especifi-
ca un conjunto de objetos que comparten las mismas características; es una colección de obje-
tos similares. Por su lado, un objeto es una instancia de una definición de una determinada cla-
se; es el producto de la utilización de dicho molde.



usr.code                                                                                     23
ACTIONSCRIPT



En el caso del reproductor de CD, podemos optimizar dicha clase y hacerla más es-
calable creando una nueva y más extensa clase audio_player que resulte apta para la
generación de reproductores de casetes, vinilo, minidisc, CD o cualquier otro for-
mato. Con esto en mente, la clase CD_player heredaría las generalidades de la clase
audio_player, particularizando la propiedad dispositivo_de_reproduccón a un CD. Si
posteriormente deseamos crear un reproductor de vinilo o cualquier otro formato
que aún no esté en el mercado, el molde creado seguirá siendo útil.

Polimorfismo
Es una característica de OOP por la cual podemos definir un mismo método en varios
objetos, pero cada uno de ellos con distintos comportamientos. Dicho de otro modo,
es la posibilidad de codificar métodos con el mismo nombre en clases distintas.

En el caso del reproductor de CD que veníamos explicando, podríamos obtener
una copia del método play() de un reproductor de VHS. Sin embargo, como el re-
productor de CD no posee la aptitud de emitir imágenes, dicha acción debería
“ajustarse” a las capacidades específicas del equipo de CD.

Anidación
La anidación de objetos consta de establecer relaciones jerárquicas entre ellos. Se-
gún su posición dentro del esquema, sus acciones repercutirán en mayor o menor
grado sobre el resto. Dichas relaciones establecen estructuras del tipo “árbol”, don-
de el último eslabón se transforma en la “hoja” de una serie de “ramas”. Si la hoja
se cae, no afectará el resto de la estructura, pero toda rama que se rompa llevará con-
sigo las ramificaciones que le suceden.
Veamos el caso de la instalación de un nuevo reproductor de CD dentro del dormi-
torio de un individuo: el equipo de música estará dentro de un cuarto, que a la vez
pertenece a una casa, y ésta es parte de un barrio (barriocasacuartoreproductor_cd).
Si se produce un cortocircuito en el reproductor y se quema su fuente, el hecho no
repercutirá ni en el dormitorio, ni en la casa, ni el barrio. Sucede lo contrario si hay
un incendio y la casa es consumida por las llamas. Sólo el barrio quedará de pie;
tanto el reproductor como el cuarto desaparecerán junto con la casa.


❘❘❘    ENCAPSULAMIENTO Y ANIDACIÓN

El encapsulado de un objeto consiste en ocultar sus detalles de implementación, a la vez que
provee una interfaz pública (métodos) que relaciona al mismo objeto con su entorno. En tanto que
la anidación de objetos consiste en establecer relaciones jerárquicas entre ellos.




24                                                                                     usr.code
Tipos de programación



Un ejemplo más cotidiano es el de la estructura de los archivos en cualquier OS (sis-




                                                                                           1
tema operativo) actual: si borramos un archivo dentro de una carpeta, el resto de
los archivos que se encuentren bajo el mismo “paraguas” no sufrirán modificacio-




                                                                                           Fundamentos
nes. En cambio, si eliminamos la carpeta, todos y cada uno de los archivos que ella
contiene sufrirán las mismas consecuencias (Figura 3).




              Figura 3. La anidación de objetos responde a una estructura
                      de “árbol”, donde las relaciones jerárquicas son
             establecidas según el lugar que ocupa cada pieza en el diagrama.

usr.code                                                                              25
ACTIONSCRIPT



Referenciación
Los lenguajes de programación orientados a objetos poseen una particular sintaxis
de referenciación denominada sintaxis de puntos. El nombre lo recibe ya que un
punto (.) separa la referencia del objeto (instancia) de aquello que desea hacerse con
él (manipular sus propiedades o métodos).

mi_CD_player.cambiarVolumen(80);

El script está indicándole al objeto mi_CD_player que modifique su volumen a tra-
vés del método cambiarVolumen().

En el caso de instanciar un objeto dentro de un segundo, las reglas sintácticas de co-
municación continúan con la misma nomenclatura:

mi_barrio.mi_casa.mi_cuarto.mi_CD_player.cambiarVolumen(80);

Como el objeto mi_CD_player se encuentra anidado dentro de otros, es preciso re-
correr todo el árbol para poder referenciarlo.


El director de orquesta
En la actualidad, el paradigma OOP se observa en la interoperabilidad de los dis-
tintos sistemas de negocios. Veamos el siguiente ejemplo: una empresa vendedora
de computadoras desea desarrollar un nuevo canal de ventas online y contrata a un
programador para dicha tarea.
Tras el análisis del problema, el programador concluye que precisa una aplicación
que realice tres tareas fundamentales: mostrar los productos, generar un historial de
las computadoras seleccionadas y verificar los datos de pago del usuario. Paso si-
guiente, ingresa en Internet y revisa qué empresas han desarrollado objetos que
cumplan estas necesidades. Los descarga, los testea y acomoda las piezas de manera
tal que funcionen a la perfección entre sí. En el momento de verificar la identidad
y validez de la tarjeta de crédito ingresada por uno de los clientes, la aplicación de-
lega toda la inteligencia en otra empresa-objeto. Sólo precisa saber qué datos enviar-
le a ese objeto, así como la respuesta que éste devuelve; no importa qué es lo que
sucede en el medio (Figura 4).

Conclusión: la empresa encuentra en su poder una aplicación totalmente carente de
errores y ha logrado optimizar tiempo y dinero. Un desarrollo que podría haber demo-
rado semanas o meses con otro esquema de programación, OOP lo ha logrado en unos
pocos días. Este esquema de trabajo permite que las aplicaciones se tornen cada vez más
robustas, más escalables y que nunca haya que programar dos veces lo mismo.

26                                                                             usr.code
Tipos de programación




                                                                                                  1
                                                                                                  Fundamentos
Figura 4. El éxito del desarrollo de una nueva aplicación está directamente relacionado con
la habilidad del programador de interrelacionar porciones de código (objetos) preexistentes.

Tras el surgimiento y maduración de los OOP, las aplicaciones están cada vez más
basadas en recopilaciones y adaptaciones de paquetes de código previamente desa-
rrollados. El desarrollador ha dejado de ser operario; se ha convertido en un direc-
tor de orquesta y Flash en su mejor escenario donde desplegar su creatividad.




… RESUMEN
En este capítulo hicimos un repaso de los lenguajes y tipos de programación existentes, y de-
sarrollamos a fondo el concepto de programación orientada a objetos. Además, vimos cómo
definir las clases para desarrollar una aplicación OOP, qué significa la herencia entre objetos
y para qué sirve la anidación de objetos.



usr.code                                                                                    27
✔ ACTIVIDADES

TEST DE AUTOEVALUACIÓN

 1 ¿Cuáles son los distintos tipos de progra-   5 ¿En qué consiste la sintáxis de puntos que
     mación existentes?                           poseen los lenguajes OOP?


 2 ¿Qué es un objeto?




 3 ¿Cómo se accede al contenido de un objeto?


 4 ¿Qué significa la anidación de objetos?




28                                                                                  usr.code

Más contenido relacionado

La actualidad más candente

Clasificación de lenguajes
Clasificación de lenguajesClasificación de lenguajes
Clasificación de lenguajesmafer3388
 
Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)YJGG
 
Evolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónEvolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónjuanbryanc
 
1.1. historia del lenguaje de programacion
1.1. historia del lenguaje de programacion1.1. historia del lenguaje de programacion
1.1. historia del lenguaje de programacionAlejandro Sanchez Jose
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionSergio Maidana
 
Lenguaje
LenguajeLenguaje
LenguajeAlixg19
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senaNat Alia
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De ProgramacionROSA859
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacionfcolauravel
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajesdomynicjorge
 
Clasificación de lenguajes de
Clasificación de lenguajes deClasificación de lenguajes de
Clasificación de lenguajes deJoRgEp10
 
Lenguajes de programación.ppt
Lenguajes de programación.pptLenguajes de programación.ppt
Lenguajes de programación.pptEliezer Cordova
 
Lenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensambladorLenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensambladorAdriana Polly
 
Clasificacion de los lenguajes
Clasificacion de los lenguajesClasificacion de los lenguajes
Clasificacion de los lenguajesRBAC92
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónfarmero
 
Evolución lenguajes de programacón
Evolución lenguajes de programacónEvolución lenguajes de programacón
Evolución lenguajes de programacónAngel Alonso
 

La actualidad más candente (17)

Clasificación de lenguajes
Clasificación de lenguajesClasificación de lenguajes
Clasificación de lenguajes
 
Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)
 
Informatica lupita
Informatica lupitaInformatica lupita
Informatica lupita
 
Evolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónEvolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programación
 
1.1. historia del lenguaje de programacion
1.1. historia del lenguaje de programacion1.1. historia del lenguaje de programacion
1.1. historia del lenguaje de programacion
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacion
 
Lenguaje
LenguajeLenguaje
Lenguaje
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajes
 
Clasificación de lenguajes de
Clasificación de lenguajes deClasificación de lenguajes de
Clasificación de lenguajes de
 
Lenguajes de programación.ppt
Lenguajes de programación.pptLenguajes de programación.ppt
Lenguajes de programación.ppt
 
Lenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensambladorLenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensamblador
 
Clasificacion de los lenguajes
Clasificacion de los lenguajesClasificacion de los lenguajes
Clasificacion de los lenguajes
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Evolución lenguajes de programacón
Evolución lenguajes de programacónEvolución lenguajes de programacón
Evolución lenguajes de programacón
 

Destacado (10)

Introduccion programacion
Introduccion programacionIntroduccion programacion
Introduccion programacion
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
 
Trabajo práctico nº 1
Trabajo práctico nº 1Trabajo práctico nº 1
Trabajo práctico nº 1
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Herramientas del sistema y manejo de archivos
Herramientas del sistema y manejo de archivosHerramientas del sistema y manejo de archivos
Herramientas del sistema y manejo de archivos
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Presentacion telemática educativa
Presentacion telemática educativaPresentacion telemática educativa
Presentacion telemática educativa
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datos
 

Similar a Fundamentos de programación y Actionscript

Lenguajes de-programacion-clase
Lenguajes de-programacion-claseLenguajes de-programacion-clase
Lenguajes de-programacion-claseBeatriz Moreyra
 
Lenguaje de programacion UFT
Lenguaje de programacion UFT Lenguaje de programacion UFT
Lenguaje de programacion UFT jose chavez
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajecJaneth Gallo
 
Programacion
ProgramacionProgramacion
Programacionfuquencia
 
Programacion :)
Programacion :)Programacion :)
Programacion :)fuquencia
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacionFausto Orozco
 
1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacionFausto Orozco
 
Programacion
ProgramacionProgramacion
ProgramacionDAYIS14
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacionxaviervaca17
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.dUi velazquez
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.dUi velazquez
 
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Alejandro Perez
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la ProgramaciónAlessandro Viera
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezRafael Hernandez
 

Similar a Fundamentos de programación y Actionscript (20)

Lenguajes de-programacion-clase
Lenguajes de-programacion-claseLenguajes de-programacion-clase
Lenguajes de-programacion-clase
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Lenguaje de programacion UFT
Lenguaje de programacion UFT Lenguaje de programacion UFT
Lenguaje de programacion UFT
 
Lenguajes De Programación
Lenguajes De ProgramaciónLenguajes De Programación
Lenguajes De Programación
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
 
1 introduccionlenguajec
1 introduccionlenguajec1 introduccionlenguajec
1 introduccionlenguajec
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion :)
Programacion :)Programacion :)
Programacion :)
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacion
 
1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Cabrera ies 2011
Cabrera ies 2011Cabrera ies 2011
Cabrera ies 2011
 
Clase 1 Programación
Clase 1 ProgramaciónClase 1 Programación
Clase 1 Programación
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la Programación
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandez
 

Fundamentos de programación y Actionscript

  • 1. ACTIONSCRIPT Capítulo 1 Fundamentos Los distintos lenguajes y tipos de programación existentes y la comprensión de lo que significa el concepto de programación orientada a objetos servirán de puntapié inicial para conocer los fundamentos de la programación y del lenguaje Actionscript. Lenguajes de programación 18 Tipos de programación 19 Programación orientada a objetos 21 El director de orquesta 26 Resumen 27 SERVICIO DE ATENCIÓN AL LECTOR: lectores@tectimes.com Actividades 28
  • 2. ACTIONSCRIPT LENGUAJES DE PROGRAMACIÓN La base del entendimiento entre dos o más individuos está dada por la normaliza- ción de sus expresiones y actitudes: para que un hombre comprenda lo que otro le está diciendo debe compartir un mismo código gestual y verbal, debe compartir un mismo idioma. Al incursionarnos en el universo de las computadoras, observamos que el único lenguaje que éstas realmente comprenden es el binario. Cuando se co- munican entre sí, se entienden perfectamente; ambas comprenden lo que significan aquellas cadenas de ceros y unos prácticamente indescifrables para el hombre. El problema surge en el momento que una persona intenta darle una instrucción. Veamos el caso de un programador que está desarrollando una consola de sonido. Él precisa que se reproduzca una determinada canción robotech_sdf1.mp3 cuando el usuario presione en un área determinada, lo que significa asignarle un código si- milar a éste para que la tarea se desencadene: 0111 0010 1010 0111 0001 1111 1110 1001 0001 0100 0010 1010 0111 0001 1111 0111 0010 1010 0111 0101 Si la manera de indicarles a las computadoras cómo comportarse estuviera basada únicamente en este lenguaje binario, podríamos contar con los dedos quiénes serían los individuos capaces de “hablar” efectivamente con ellas. El hombre no se comu- nica con ceros y unos, no los comprende... y jamás lo hará. Es por ello que desde los inicios de la era digital surgió la necesidad de generar nuevos idiomas que ac- túen más cerca del territorio lingüístico conocido por el programador. Ellos son los famosos lenguajes de programación. Estos lenguajes consisten en verdaderos “traductores” que traspasan un idioma ami- gable para el individuo en aquellos tediosos ceros y unos necesarios para que la com- putadora opere. Este proceso de traducción puede hacerse mediante un compilador, un intérprete o con una combinación de los dos. Existen cientos de lenguajes de programación que, según su cercanía al lenguaje binario, se dividen en cuatro gran- des grupos, que veremos en detalle a continuación: • Lenguaje de máquina o binario: es aquel que la computadora comprende sin necesidad de realizar conversión alguna. Su escritura resulta extremadamente di- fícil para el mayor porcentaje de programadores, y prácticamente ya nadie lo uti- liza. Por otro lado, cada tipo de procesador tiene su propio lenguaje máquina (su propio juego de instrucciones), de manera que un programa ejecutable que corre en una computadora equipada con un procesador Pentium no podría correr, por ejemplo, en un Apple Power Macintosh. 18 usr.code
  • 3. Tipos de programación • Lenguaje de bajo nivel: también conocido como ensamblador, representa un 1 paso hacia la humanización de los lenguajes de programación. Consta de un com- plejo repertorio de palabras nemotécnicas (tales como add para la suma o sub pa- Fundamentos ra la resta) que simplifican parcialmente la comunicación entre el programador y la computadora. Se trata de un lenguaje realmente robusto que actúa práctica- mente a la par del lenguaje binario. MOV AX, A ADD AX, B MOV C, AX • Lenguaje de medio nivel: posee un diccionario de comportamientos/instruccio- nes que consta de palabras similares a aquellas conocidas por los hombres (include, define, if). Goza del equilibrio ideal entre simpleza y potencia: una variada gama de posibilidades para trabajar directamente con la computadora y una escritura ca- paz de ser comprendida por el hombre. En este grupo se destaca el lenguaje C. • Lenguaje de alto nivel: es el de mayor entendimiento para el hombre. Escribir una aplicación con este lenguaje resulta mucho más ágil y sencillo que con los de nive- les anteriores. La mayoría de ellos forjaron sus cimientos en base al lenguaje C, si bien no logran la “directa comunicación” que posee este último con la computa- dora. Destacados: C++, Java, Pascal, Eiffel, Clipper, Ada, Smalltalk, Visual Basic, Delphi, FoxPro, JAVA y Actionscript. TIPOS DE PROGRAMACIÓN El desarrollo de aplicaciones persigue el único objetivo de solucionarle problemas al hombre: el programador escoge un lenguaje y luego le indica ciertas instruccio- nes a la computadora para que ésta las procese y devuelva el resultado de dicha tarea. A lo largo de la historia han ido surgiendo distintas maneras de abordar ❘❘❘ LENGUAJE DE PROGRAMACIÓN Es el conjunto de normas lingüísticas que permiten escribir un programa y que éste sea enten- dido primordialmente por la computadora. Según la cercanía o lejanía de la sintaxis al idioma hu- mano (alto/bajo nivel), será más o menos fácil de interpretar por el programador. usr.code 19
  • 4. ACTIONSCRIPT ciertas problemáticas, lo que fue dando origen a distintas formas de programar. Cada forma plantea un camino diferente para solucionar un mismo problema. Dependiendo del escenario, el programador deberá optar por el tipo de progra- mación más conveniente: • Programación secuencial: se basa en sentencias escritas y ejecutadas con un orden cronológico. La ruptura de dicha secuencialidad suele estar dada por una partícu- la “goto” que permite procesar líneas de código alternas. Los lenguajes que utiliza este esquema son: Basic, Assembler, Fortram y Cobol. Aquí vemos un ejemplo: 10 CLS 20 numero=220000 30 palabra$=”Actionscript” 40 LOCATE 7,7 50 PRINT “ Cantidad de páginas “; numero 60 LOCATE 8,7 70 PRINT“ Estudiante de: “; palabra$ 80 END • Programación estructurada: se basa en la simplificación de un gran problema en varios menores. Consta de pequeños módulos (funciones) capaces de realizar ta- reas muy específicas que, al combinarse con sus pares, resuelven problemas de ín- dole mayor. Lenguajes que utilizan este esquema: C, Pascal. A continuación, ve- mos un ejemplo de código C: #include <stdio.h> int main(void){ char cadena[20]; printf( “Introduce una cadena:“ ); fflush(stdout); gets(cadena); printf(“has escrito: %s“,cadena); return 0; } • Programación lógica: es una forma de programar donde lo más importante es definir un conjunto de hechos, que se conocen con anterioridad, y un conjunto de reglas que nos definen las distintas relaciones existentes entre los componentes del programa. Lenguajes que utilizan este esquema: Prolog, Mercury. 20 usr.code
  • 5. Tipos de programación • Programación orientada a objetos: lo desarrollaremos en extenso a continua- 1 ción, pero para comenzar, podemos decir que los lenguajes que utilizan este es- quema son: C++, Java, Delphi, Smalltalk, lenguajes .NET y Actionscript. Fundamentos Programación orientada a objetos Tiempo atrás, el universo de los lenguajes de programación estaba reinado por el paradigma de la programación estructurada: rara vez se escuchaba nombrar un len- guaje que no fuera “C” en el contexto sociolaboral de un programador. Sin embar- go, con el pasar de los años y el surgimiento de nuevos procesos de negocios, los programadores comenzaron a darse cuenta de que este modelo presentaba ciertas dificultades en torno a los problemas que sus desarrollos debían solucionar: • Escalabilidad: las aplicaciones debían ser prácticamente rescritas cuando el pro- gramador intentaba agregarle nuevas funcionalidades no planificadas en el mo- mento de su génesis. • Dificultad: las aplicaciones terminaban formadas por miles y miles de funciones que impedían una ágil y sencilla lectura del código fuente. • Disgregación: falta de una lógica explícita que vinculara el accionar de los dife- rentes módulos o funciones entre sí. • Implementación: toda modificación en el código fuente requería, casi sin excep- ción, expertos programadores que comprendieran “C” a la perfección. • Actualización: demandaba muchas horas hombre la realización de pequeñas ac- tualizaciones, también conocidas como updates. • Reutilización y transportabilidad: el código escrito para una aplicación rara vez servía para ser aplicado en una segunda. La programación orientada a objetos (OOP, siglas de Object Oriented Programming) surge para salvar todas estas problemáticas. OOP plantea el siguiente paradigma: el universo se encuentra repleto de objetos independientes que interactúan entre sí. Ca- da objeto posee características propias y puede comportarse de tal o cual manera se- gún sus condiciones físicas se lo permitan. En otros términos, cuando el programa- ❘❘❘ OBJETO El objeto es una estructura compleja en cuyo interior existen datos y especificaciones de ejecu- ción de tareas. Ambos contenidos están estrechamente relacionados entre sí y se encuentran se- parados del entorno “encerrados en una cápsula”. usr.code 21
  • 6. ACTIONSCRIPT dor desarrolla una aplicación, define sus propios objetos, describe su apariencia y las relaciones existentes entre sí. El accionar en conjunto de ellos es lo que permite la ejecución del programa y la consecuente solución de los distintos problemas. Según el esquema estructural OOP, los objetos constan de tres partes fundamentales: • Nombre: identificación única. • Propiedades: características físicas y compositivas. • Métodos: acciones/tareas capaces de realizar. Un objeto mantiene sus características ajenas al mundo que lo rodea (“encapsula- ción”), lo que permite una total independencia de sus pares; cada objeto existe por sí sólo. Es a través de sus métodos, también denominados interfases, que se rela- ciona con el mundo exterior y lleva a cabo determinadas consignas (Figura 1). Figura 1. Esquema de relación y comunicación de objetos. Clases El primer paso en el desarrollo de una aplicación OOP consiste en definir “moldes” o “clases”. Éstos llevan consigo las especificaciones descriptivas y actitudinales (mé- todos y propiedades) que luego serán transmitidas a sus descendientes. Paso siguien- te, un constructor determina la creación de un objeto a partir de ese molde y espe- cifica sus características particulares en un proceso denominado instanciación. Vea- mos un ejemplo para ser más claros. Un programador genera la clase CD_player conjuntamente con la definición de sus métodos y propiedades. Cada unidad (objeto) creada a partir de este molde (clase) realizará las tareas que le fueron asignadas en distintos momentos e intensidades (play, stop, pause, eject, subir y bajar volumen), podrá recibir una apariencia especí- fica combinando sus propiedades (color de cobertura, forma de los botones, color 22 usr.code
  • 7. Tipos de programación del display, etc.) y será totalmente independiente de sus pares. A este objeto sólo le 1 resta ser individualizado mediante un único e irrepetible nombre de instancia. Fundamentos Supongamos que hemos definido el método cambiarVolumen() y la propiedad volumen (entre otras) en la clase CD_player. Una vez que la clase asigna su estructura a un objeto denominado mi_CD_player (proceso de instanciación llevado a cabo a través de un constructor), el objeto se vuelve receptor de órde- nes. De esta manera, cuando el programador indi- que mi_CD_player.cambiarVolumen(80), el repro- ductor de CD modificará su propiedad volumen y la audición del sonido emitido por el objeto cam- biará al 80% de su capacidad (Figura 2). Figura 2. El acceso al contenido de un objeto (propiedades) sólo es posible a través de sus métodos. Es sólo a través de los métodos (al menos, la corriente purista de OOP así lo sostie- ne) que el entorno del objeto puede relacionarse con los datos encontrados dentro de él. Esta particularidad es justamente la que marca la “independencia”, “transpor- tabilidad”, “facilidad” y “reutilización” de este esquema de programación: no existe código disperso por la aplicación; todo está correcta y prolijamente encapsulado dentro de unidades “clase” y “objeto”. Una vez que una clase ha sido creada, no pre- cisamos saber qué ocurre dentro, tan sólo debemos conocer la sintaxis para invocar sus interfases o métodos. Herencia La herencia entre objetos es un concepto que nos permite definir un nuevo objeto a partir de las cualidades físico-actitudinales (propiedades y métodos) de un segun- do más genérico. Esta característica, junto con la de polimorfismo, nos ahorra un tiempo considerable a la hora de crear objetos que guardan similitud con otros. ❘❘❘ CLASE VS. OBJETO Como vimos en este capítulo, una clase es un tipo de datos definido por el usuario que especifi- ca un conjunto de objetos que comparten las mismas características; es una colección de obje- tos similares. Por su lado, un objeto es una instancia de una definición de una determinada cla- se; es el producto de la utilización de dicho molde. usr.code 23
  • 8. ACTIONSCRIPT En el caso del reproductor de CD, podemos optimizar dicha clase y hacerla más es- calable creando una nueva y más extensa clase audio_player que resulte apta para la generación de reproductores de casetes, vinilo, minidisc, CD o cualquier otro for- mato. Con esto en mente, la clase CD_player heredaría las generalidades de la clase audio_player, particularizando la propiedad dispositivo_de_reproduccón a un CD. Si posteriormente deseamos crear un reproductor de vinilo o cualquier otro formato que aún no esté en el mercado, el molde creado seguirá siendo útil. Polimorfismo Es una característica de OOP por la cual podemos definir un mismo método en varios objetos, pero cada uno de ellos con distintos comportamientos. Dicho de otro modo, es la posibilidad de codificar métodos con el mismo nombre en clases distintas. En el caso del reproductor de CD que veníamos explicando, podríamos obtener una copia del método play() de un reproductor de VHS. Sin embargo, como el re- productor de CD no posee la aptitud de emitir imágenes, dicha acción debería “ajustarse” a las capacidades específicas del equipo de CD. Anidación La anidación de objetos consta de establecer relaciones jerárquicas entre ellos. Se- gún su posición dentro del esquema, sus acciones repercutirán en mayor o menor grado sobre el resto. Dichas relaciones establecen estructuras del tipo “árbol”, don- de el último eslabón se transforma en la “hoja” de una serie de “ramas”. Si la hoja se cae, no afectará el resto de la estructura, pero toda rama que se rompa llevará con- sigo las ramificaciones que le suceden. Veamos el caso de la instalación de un nuevo reproductor de CD dentro del dormi- torio de un individuo: el equipo de música estará dentro de un cuarto, que a la vez pertenece a una casa, y ésta es parte de un barrio (barriocasacuartoreproductor_cd). Si se produce un cortocircuito en el reproductor y se quema su fuente, el hecho no repercutirá ni en el dormitorio, ni en la casa, ni el barrio. Sucede lo contrario si hay un incendio y la casa es consumida por las llamas. Sólo el barrio quedará de pie; tanto el reproductor como el cuarto desaparecerán junto con la casa. ❘❘❘ ENCAPSULAMIENTO Y ANIDACIÓN El encapsulado de un objeto consiste en ocultar sus detalles de implementación, a la vez que provee una interfaz pública (métodos) que relaciona al mismo objeto con su entorno. En tanto que la anidación de objetos consiste en establecer relaciones jerárquicas entre ellos. 24 usr.code
  • 9. Tipos de programación Un ejemplo más cotidiano es el de la estructura de los archivos en cualquier OS (sis- 1 tema operativo) actual: si borramos un archivo dentro de una carpeta, el resto de los archivos que se encuentren bajo el mismo “paraguas” no sufrirán modificacio- Fundamentos nes. En cambio, si eliminamos la carpeta, todos y cada uno de los archivos que ella contiene sufrirán las mismas consecuencias (Figura 3). Figura 3. La anidación de objetos responde a una estructura de “árbol”, donde las relaciones jerárquicas son establecidas según el lugar que ocupa cada pieza en el diagrama. usr.code 25
  • 10. ACTIONSCRIPT Referenciación Los lenguajes de programación orientados a objetos poseen una particular sintaxis de referenciación denominada sintaxis de puntos. El nombre lo recibe ya que un punto (.) separa la referencia del objeto (instancia) de aquello que desea hacerse con él (manipular sus propiedades o métodos). mi_CD_player.cambiarVolumen(80); El script está indicándole al objeto mi_CD_player que modifique su volumen a tra- vés del método cambiarVolumen(). En el caso de instanciar un objeto dentro de un segundo, las reglas sintácticas de co- municación continúan con la misma nomenclatura: mi_barrio.mi_casa.mi_cuarto.mi_CD_player.cambiarVolumen(80); Como el objeto mi_CD_player se encuentra anidado dentro de otros, es preciso re- correr todo el árbol para poder referenciarlo. El director de orquesta En la actualidad, el paradigma OOP se observa en la interoperabilidad de los dis- tintos sistemas de negocios. Veamos el siguiente ejemplo: una empresa vendedora de computadoras desea desarrollar un nuevo canal de ventas online y contrata a un programador para dicha tarea. Tras el análisis del problema, el programador concluye que precisa una aplicación que realice tres tareas fundamentales: mostrar los productos, generar un historial de las computadoras seleccionadas y verificar los datos de pago del usuario. Paso si- guiente, ingresa en Internet y revisa qué empresas han desarrollado objetos que cumplan estas necesidades. Los descarga, los testea y acomoda las piezas de manera tal que funcionen a la perfección entre sí. En el momento de verificar la identidad y validez de la tarjeta de crédito ingresada por uno de los clientes, la aplicación de- lega toda la inteligencia en otra empresa-objeto. Sólo precisa saber qué datos enviar- le a ese objeto, así como la respuesta que éste devuelve; no importa qué es lo que sucede en el medio (Figura 4). Conclusión: la empresa encuentra en su poder una aplicación totalmente carente de errores y ha logrado optimizar tiempo y dinero. Un desarrollo que podría haber demo- rado semanas o meses con otro esquema de programación, OOP lo ha logrado en unos pocos días. Este esquema de trabajo permite que las aplicaciones se tornen cada vez más robustas, más escalables y que nunca haya que programar dos veces lo mismo. 26 usr.code
  • 11. Tipos de programación 1 Fundamentos Figura 4. El éxito del desarrollo de una nueva aplicación está directamente relacionado con la habilidad del programador de interrelacionar porciones de código (objetos) preexistentes. Tras el surgimiento y maduración de los OOP, las aplicaciones están cada vez más basadas en recopilaciones y adaptaciones de paquetes de código previamente desa- rrollados. El desarrollador ha dejado de ser operario; se ha convertido en un direc- tor de orquesta y Flash en su mejor escenario donde desplegar su creatividad. … RESUMEN En este capítulo hicimos un repaso de los lenguajes y tipos de programación existentes, y de- sarrollamos a fondo el concepto de programación orientada a objetos. Además, vimos cómo definir las clases para desarrollar una aplicación OOP, qué significa la herencia entre objetos y para qué sirve la anidación de objetos. usr.code 27
  • 12. ✔ ACTIVIDADES TEST DE AUTOEVALUACIÓN 1 ¿Cuáles son los distintos tipos de progra- 5 ¿En qué consiste la sintáxis de puntos que mación existentes? poseen los lenguajes OOP? 2 ¿Qué es un objeto? 3 ¿Cómo se accede al contenido de un objeto? 4 ¿Qué significa la anidación de objetos? 28 usr.code