Documentos de Académico
Documentos de Profesional
Documentos de Cultura
09.20 ArmadilloTortugav03
09.20 ArmadilloTortugav03
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
Sistema distribuido en sus partes: compilador, intrprete y pantalla de grficos accesible como servicios en redes LAN
Ambos sistemas estn usando el sistema de objetos para redes Network objects
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
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
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
Agenda
Desarrollo de aplicaciones con Armadillo Cdigo fuente de tres aplicaciones Sphere Hoops Tree
Preguntas
Comentarios dabenavidesd@unal.edu.co,
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 ];
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
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;
Hoops (1/4)
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
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 ] &
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;
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
Tree (1/3)
Tree (1/3)
Tree (1/3)
Gracias
Por su atencin muchas gracias