AmbientTalk es un lenguaje de programación distribuido experimental orientado a objetos desarrollado en el Laboratorio de Tecnología de Programación de la Vrije Universiteit Brussel , Bélgica. El lenguaje está dirigido principalmente a programas de escritura implementados en redes móviles ad hoc .
Paradigma | orientado a objetos ( basado en prototipos ), concurrente , impulsado por eventos , reflexivo |
---|---|
Diseñada por | Tom Van Cutsem, Stijn Mostinckx, Jessie Dedecker y Wolfgang De Meuter |
Desarrollador | Laboratorio de idiomas de software, Universidad de Bruselas |
Apareció por primera vez | 2006 |
Lanzamiento estable | 2.19 / abril de 2011 |
Disciplina de mecanografía | dinámico , fuerte |
SO | Plataforma independiente |
Licencia | Licencia MIT |
Extensiones de nombre de archivo | .a |
Sitio web | http://soft.vub.ac.be/amop |
Implementaciones importantes | |
AmbientTalk (intérprete) | |
Influenciado por | |
Smalltalk , Self , Scheme , E , ABCL | |
Influenciado | |
Armonía ECMAScript |
AmbientTalk está destinado a servir como una plataforma de experimentación para experimentar con nuevas características de lenguaje o abstracciones de programación para facilitar la construcción de software que debe ejecutarse en redes altamente volátiles que exhiben conectividad intermitente y poca infraestructura. [1] Está implementado en Java, lo que permite la interpretación en varias plataformas, incluido Android . La biblioteca estándar del intérprete también proporciona una interfaz perfecta entre los objetos Java y AmbientTalk, denominada simbiosis.
Es el lenguaje de concurrencia características, que incluyen soporte para los futuros y concurrencia evento de lazo, se basan en el modelo de actor y han sido ampliamente influenciada por el lenguaje de programación E . Las características orientadas a objetos del lenguaje encuentran su influencia en lenguajes como Smalltalk (es decir, cierres de bloques, mensajes con palabras clave) y Self ( programación basada en prototipos , rasgos , delegación).
Hola Mundo
system.println ("Hola mundo");
El clásico "¡Hola, mundo!" El programa no es muy representativo de las características del idioma. Sin embargo, considere su versión distribuida:
/ * Definir tipos que se pueden descubrir en la red * / deftype Greeter ;def makeGreeter ( myName ) { / * Genera un actor * / actor: { / * Los actores tienen un espacio de nombres separado, incluyen los futuros del idioma en él * / import /. at.lang. futuros ; / * Un método que podría ser llamado por otros saludadores * / def getName () { myName }; / * Exportar este actor a la red * / export: self as: Greeter ; / * Lógica principal: si descubrimos otro Greeter ... * / siempre que: Greeter descubrió: {| otros | / * Obtener su nombre de forma asincrónica y saludarlos * / cuando: otro <- getName () @FutureMessage se convierte en: {| nombre | sistema . println ( "Hola" + nombre + "de" + miNombre ); }; }; }; };/ * Genera 2 actores que se saludarán * / makeGreeter ( "Alice" ); makeGreeter ( "Bob" );
Referencias
- ^ Dedecker J., Van Cutsem T., Mostinckx S., D'Hondt T., De Meuter W. Programación orientada al ambiente en AmbientTalk. En “Actas de la 20ª Conferencia Europea sobre Programación Orientada a Objetos (ECOOP), Dave Thomas (Ed.), Lecture Notes in Computer Science Vol. 4067, págs. 230-254, Springer-Verlag. ”, 2006