Está en la página 1de 40

Armadillo o tortuga

Programacin orientada para la educacin gratuita a nios y nias pobres por Daniel Benavides

Agenda
Historia de Armadillo Ambiente del lenguaje de programacin Armadillo Caractersticas del lenguaje Armadillo Desarrollo de aplicaciones con Armadillo

Agenda
Historia de Armadillo:

Procesamiento de programas en paralelo (occam o CSP) Programacin para nios y nias interactiva (Logo) Primer lenguaje de academia por tradicin (Modula-3)

Ambiente del lenguaje de programacin Armadillo Caractersticas del lenguaje Armadillo Desarrollo de aplicaciones con Armadillo

Historia de Armadillo
Procesamiento de programas en paralelo (occam o CSP) (1/3)

Computadores de varios procesadores para hacer clculos complejos desde operaciones aritmticas hasta cualquier operacin compleja de un lenguaje sofisticado: Transputador El lenguaje por excelencia usado en la academia fue occam y es usado para analizar algoritmos de tipo paralelo

Historia de Armadillo
Procesamiento de programas en paralelo (occam o CSP) (2/3)

Procesamiento paralelo por medio de procesadores conectados por un bus de 32 bits (ej Transputer T400 board) arquitectura de pila o stack El lenguaje Occam fue usado en ambientes de paralelismo ms productivo y con base en la teora de CSP

Historia de Armadillo
Procesamiento de programas en paralelo (occam o CSP) (3/3)

Las compaas bridaban al dueo acceso al cdigo fuente del sistema operativo Diagramas esquemticos de las tarjetas de interfaz

Historia de Armadillo
Programacin para nios y nias interactiva (Logo)

Basado en una extensin al lenguaje LISP (lenguaje operativo sin tipos y de paradigma funcional, 1960) El lenguaje sirve para expresar mediante graficos solucin a problemas con base a una abstraccin de una tortuga que pinta con su lpiz el papel del computador

Historia de Armadillo
Primer lenguaje de academia por tradicin (Modula-3)

Se concibi como sucesor a Modula-2 y Cedar (de uso en Xerox) con capacidades de recoleccin de basura programacin concurrente con hilos y con capacidades para programacin de sistemas como de aplicaciones El lenguaje fue probado en Modula-2+ un antecesor que corra en Mquinas Dec Firefly (estaciones de trabajo multiprocesador 4 VAX)

Historia de Armadillo

Diseado por James Weatherall (1996 y 1997) Implementado usando el ambiente del lenguaje de programacin Cambridge Modula-3 (descendiente directo de DEC SRC Modula-3) Diseado en ser un alternativa que permitiera a usuarios del lenguaje Logo compilar e interpretar programas y visualizar grficas por red en distintas pantallas (o standalone)

Historia de Armadillo

Logo es el objeto de aplicacin aunque la naturaleza del lenguaje es de tipo estructurado, con la esttica propia de Modula-2 y Modula-3 que eran los lenguajes eran los elegidos en las escuelas de Universidad para la enseanza (familia de lenguajes de Nickalus Wirth) Usar mquinas que tienen capacidad de paralelismo por medio de varios hilos dentro de un mismo computador

Ambiente del Lenguaje de Programacin Armadillo

Sistema distribuido en sus partes: compilador, intrprete y pantalla de grficos accesible como servicios en redes LAN

Soporta dos modelos de desarrollo:

Editar Compilar Interpretar


Editar Interpretar ejecutar

Ambos sistemas estn usando el sistema de objetos para redes Network objects

Ambiente del Lenguaje de Programacin Armadillo

Hereda las capacidades de Modula-3 para hacer introspeccin sobre los objectos creados en la pantalla. Capacidad para programacin concurrente tambin basada en las de Modula-3 Programacin 3d interactiva, las imgenes mostradas se pueden rotar con la cmara y el ratn desde varias mquinas se pueden mostrar grficas en la misma pantalla

Ambiente del Lenguaje de Programacin Armadillo

Disponible en cdigo fuente en internet para todos los usuarios y una versin precompilada : corre en todos los ambientes arquitecturas soportadas por el sistema CM3 (Critical Mass Modula-3). Acceso a material de la tesis de grado o Diploma en Ciencias de la computacin El sistema es reusable; es orientado a objetos y presenta buenos nveles de abstraccin en un lenguaje robusto: Modula-3

Caractersticas del lenguaje

Lenguaje fuertemente tipado. El sistema de verificacin de tipos esttico basado en el subconjunto seguro de Modula-3 verificando en tiempo de ejecucin las instancias de los tipos Las condiciones de excepcin detectadas por el compilador (si las hubiere) sern lanzadas en tiempo de ejecucin La recoleccin de basura (memoria en desuso o sin referencias) es heredada de Modula-3

Agenda
Historia de Armadillo Ambiente del lenguaje de programacin Armadillo Caractersticas del lenguaje Armadillo Desarrollo de aplicaciones con Armadillo Cdigo fuente de tres aplicaciones Sphere Hoops Tree

Agenda
Historia de Armadillo Ambiente del lenguaje de programacin Armadillo Caractersticas del lenguaje Armadillo Desarrollo de aplicaciones con Armadillo

Agenda
Historia de Armadillo Ambiente del lenguaje de programacin Armadillo Caractersticas del lenguaje Armadillo Comandos grficos Desarrollo de aplicaciones con Armadillo

Caractersticas del lenguaje Armadillo

Comandos grficos Movimiento tortuga


Comando forward <Expression> : number backward <Expression> : number Descripcin Mueve tortuga hacia adelante el nmero de unidades Mueve tortuga hacia atrs el nmero de unidades

Caractersticas del lenguaje Armadillo


Comandos grficos
Rotacin tleft <Expression> : number tup <Expression> : number tdown <Expression> : number rleft <Expression> : number rright <Expression> : number

Caractersticas del lenguaje Armadillo


Comandos grficos
Control de lpiz penup pendown escribe la tortuga deja el lpiz de escribir

Caractersticas del lenguaje Armadillo


Comandos grficos
Control tortuga turtle <VariableF> : turtle selecciona la tortuga a actuar

Reinicializacin tortuga home

Caractersticas del lenguaje Armadillo


Comandos grficos
Limpieza pantalla clear Limpia dibujos de la tortuga actual

Limpieza total de pantalla clearall

Caractersticas del lenguaje Armadillo


Comandos grficos
Conexin a la pantalla attach <3D-Display> attach default @ armadillo.co.uk ; attach my_display; attach my_display @ localhost ; conecta a la pantalla

Caractersticas del lenguaje Armadillo


Comandos grficos
Seleccin del lpiz de color colour <Expression> : number , <Expression> : number , <Expression> : number , <Expression> : number colour 1, 0.5, 0.5 selcciona el color en RGB del lpiz

Agenda
Desarrollo de aplicaciones con Armadillo Cdigo fuente de tres aplicaciones Sphere Hoops Tree

Preguntas

Comentarios dabenavidesd@unal.edu.co,

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Sphere (1 de 3)
(* Simple program to draw a sphere-shaped frame on the display. *) 1 fun semi_circle(size : number)= 2 var a : number in 3 [ 4 let a = 10; 5 loop 6 if a = 0 then 7 exit 8 end; 9 let a=a-1; 10 forward size; 11 tright 20; 12 end; 13 ];

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Sphere (2 de 3)
14 15 fun sphere(size : number)= 16 fun inside(n : number)= 17 if n=0 then return; 18 else 19 call semi_circle(size) & 20 [tup 20; call inside(n-1)] 21 end 22 in call inside(18); 23

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Sphere (3 de 3)
24 (* Get a display. *) 25 attach default @ localhost ; 26 colour 1, .5, .5; 27 call sphere(0.6); 28 29 (* Wait for user input. *) 30 print "Press return.\n"; 31 pause 0;

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Sphere (captura de salida en pantalla)

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones
(* This function draws a coloured "circle", made up of 36 sections. *) 1 fun circle(size : number)= 2 [ 3 var n, c : number in 4 [ 5 let n = 36; 6 loop 7 8 (* Let's change the pen colour to something more interesting! *) 9 let c = n / 18; 10 if c > 1 then 11 let c = 2 - c; 12 end; 13 colour c, 1-c, 0;

Hoops (1/4)

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones
14 15 16 17 18 19 20 21 22 23 24 25 26 ]; 27 ];

Hoops (2/4)
(* Then draw the section of hoop. *) forward size; (* Turn right and continue. *) tright 10; let n = n-1; if n = 0 then exit end end

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Hoops (3/4)
30 31 fun Hoops(size : number)= 32 [ 33 call subHoops(size, 18); 34 ]; 35 36 fun subHoops(size, n : number)= 37 [ 38 [ 39 (* Draw a hoop. *) 40 pendown; tup 90; 41 call circle(size) 42 ] &

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones
[

Hoops (4/4) 43

44 (* Otherwise, move round and draw a load more hoops! *) 45 if n>0 then 46 penup; 47 forward size; 48 tleft 20; 49 call subHoops(size, n-1); 50 end 51 ] 52 ]; 53 54 (* Draw some hoops. *) 55 attach default; 56 call Hoops(0.1); 57 print "Press return to quit\n"; 58 pause 0;

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Hoops (Captura de pantalla)

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Tree (1/3)
1 (* This test program produces a coloured fractal tree. *) 2 3 fun tree(size : number)= 4 [ 5 6 (* Draw a stem. *) 7 if size > 0.15 then 8 colour 1.0, 1.0, 0.8 9 else 10 colour 0.0, 1.0, 0.0 11 end; 12 forward size; 13

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones
14 (* Check the size of the sub-trees. *) 15 if size > 0.15 then 16 (* spawn two threads to do the sub-trees. *) 17 [ 18 tleft 23 + rnd 22; 19 rright 45 + rnd 45; 20 call tree(size * (0.65 + rnd 0.15)) 21 ]& 22 [ 23 tright 23 + rnd 22; 24 rleft 45 + rnd 45; 25 call tree(size * (0.65 + rnd 0.15)) 26 ] 27 end;

Tree (1/3)

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones
29 ] in 30 [ 31 (* Attach the turtle to a display. *) 32 attach default; 33 34 (* Time how long the tree takes to draw. *) 35 var start : number in 36 [ 37 let start = time; 38 call tree(1); 39 print "Time elapsed : " + str(time - start) + "\n"; 40 ]; 41 42 (* Wait for a user key-press. *) 43 print "Press return.\n"; 44 pause 0; 45 ]

Tree (1/3)

Desarrollo de aplicaciones con Armadillo


Cdigo fuente de tres aplicaciones

Tree (1/3)

Gracias
Por su atencin muchas gracias

También podría gustarte