AmbientTalk es un lenguaje de programación distribuido orientado a objetos experimental desarrollado en el Laboratorio de Tecnología de Programación de la Vrije Universiteit Brussel , Bélgica. El lenguaje está dirigido principalmente a la escritura de programas implementados en redes móviles ad hoc .
AmbientTalk está diseñado para servir como plataforma de experimentación para probar nuevas características del lenguaje o abstracciones de programación, facilitando así la creación de software que debe ejecutarse en redes altamente volátiles con conectividad intermitente y poca infraestructura. [ 1 ] Está implementado en Java , lo que permite la interpretación en diversas plataformas, incluyendo Android . La biblioteca estándar del intérprete también proporciona una interfaz fluida entre Java y los objetos de AmbientTalk, denominada simbiosis.
Las características de concurrencia del lenguaje , que incluyen soporte para futuros y concurrencia de bucles de eventos, se basan en el modelo de actores y han sido influenciadas en gran medida por el lenguaje de programación E. Las características orientadas a objetos del lenguaje encuentran su influencia en lenguajes como Smalltalk (por ejemplo, cierres de bloques, mensajes con palabras clave) y Self ( programación basada en prototipos , rasgos , delegación).
Hola Mundo
system.println("Hola mundo");El programa clásico "¡Hola, mundo!" no es muy representativo de las características del lenguaje. Sin embargo, consideremos su versión distribuida:
/* Define los tipos que podrían descubrirse en la red */ deftype Greeter ;def makeGreeter ( myName ) { /* Generar un actor */ actor: { /* Los actores tienen un espacio de nombres separado, incluir las futuras del lenguaje en él */ import /. at.lang. futures ;/* Un método que podría ser llamado por otros programas de saludo */ def getName (){ myName };/* Exportar este actor en la red */ export: self as: Greeter ; /* Lógica principal: si descubrimos otro Greeter ... */ whenever: Greeter discovered: {| other | /* Obtener su nombre de forma asíncrona y saludarlo */ when: other <- getName () @FutureMessage become: {| name | system . println ( "Hola " + name + " de " + myName ); }; }; }; };/* Genera 2 actores que se saludarán entre sí */ 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
Enlaces externos
- Sitio web oficial de AmbientTalk
- Intérprete de código abierto
- Lenguajes de programación dinámicos
- Lenguajes de programación experimentales
- Lenguajes de programación orientados a objetos
- Lenguajes de programación basados en prototipos
- Lenguajes de programación concurrentes