Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Lenguajes Dinmicos en la Java Virtual Machine Por: scar Lpez, M.Sc. Twitter: @oscar_lopez 2. Lenguajes Dinmicos Permiten realizar en ejecucin labores que en otros lenguajes se hacen en compilacin Sistema de tipos dinmicos (*) Programacin funcional Meta-programacin y reflexin Scripting, pegamento, prototipos Edit-compile-test vs. read-eval-print Es una definicin subjetiva! OALP-2010 All Rights Reserved 2 3. Java Virtual Machine Implementacin en software de una mquina fsica Portabilidad entre mltiples plataformas, no depende especficamente de Java Ejecuta un lenguaje intermedio bytecode Es una mquina de pila Manejo de memoria, verificador de clases, excepciones, seguridad, hilos, GC, JIT Puede implementar otros lenguajes! JSR 223 (Scripting, Java 1.6), JSR 292 (invokedynamic, Java 1.7), Da Vinci Machine OALP-2010 All Rights Reserved 3 4. Lenguajes en la JVM Ada Lisp (Clojure) AspectJ Lua AWK OCaml C Oberon Cobol Pascal ColdFusion PHP Forth Python (Jython) Groovy Rexx Java Ruby (JRuby) JavaFX Script Scala JavaScript (Rhino) Scheme LOGO Tcl OALP-2010 All Rights Reserved 4 5. Ejemplo: Torres de Hanoi OALP-2010 All Rights Reserved 5 6. OALP-2010 All Rights Reserved 6 7. Jython: Caractersticas Implementacin 100% Java del lenguaje Python, versin 2.5 (con algunas diferencias) Uso transparente de cualquier clase en Java Compilacin a bytecode esttica o dinmica Propiedades tipo bean Multi-hilos, resuelve el problema del GIL Usa el GC de Java, no conteo de referencias Desempeo depende de la JVM, pero en general es ms lento que CPython Java Atrasado respecto a CPython (2.7.0 RC, 3.1.2), no puede usar mdulos escritos en C 8. Jython: Casos de Uso Permite correr frameworks populares en Python, como Django, Pylons, SQLAlchemy Lenguaje de scripting del WebSphere Application Server
Parte de las herramientas de desarrollo de IBM Rational Lenguaje de programacin de JHepWork, un framework para anlisis de datos Generacin de pruebas de carga en The Grinder OALP-2010 All Rights Reserved 8