移动硬件(如手机)大多配备了无线网络,允许它在它的环境与附近的设备。然而,由于无线网络连接是不稳定的(基本上是:当设备移动的无线覆盖范围,连接滴),网络故障发生更加频繁,比传统网络。面向环境的编程范式的基本假设是,语言应该纳入网络故障,在他们的编程模型的核心,而不是当作“例外”。
比利时布鲁塞尔自由大学Tim Van Cutsem的试验性语言AmbientTalk——以环境为导向的编程,它与传统的分布式计算方式有两个方面的主要区别,其一,它不依于中央网络,其二,它基于网络连接是不稳定的和无法预知的。
它放弃的
RPC的异步,非阻塞的消息传递抽象的
青睐。由于系统会自动断开缓冲这样的消息,而消息接收者,程序员可以从临时网络故障的抽象默认情况下。
它采用基于原型的编程(根据计划,自我和Smalltalk)后的原则,建立一个动态的面向对象的核心语言。内核语言支持的反射镜,提供广泛的元对象协议的访问,从自身内部的语言扩展。
语言的语法派生主要从“大括号”家庭语言,但它从
Smalltalk keyworded消息的语法混合以及。这一点,连同AmbientTalk轻量级块语法,使您可以轻松地建立自己的控制结构。像许多其他的动态和功能性语言,AmbientTalk拥抱来表达高阶,功能模式块。
目前实施的AmbientTalk拥抱作为一个平台的
JVM。它很容易为AmbientTalk方案使用Java库,它很容易使用Java对象作为嵌入式脚本语言!AmbientTalk。这种互动是安全的:即使当AmbientTalk对象是“暴露”给JVM,JVM的线程可以在不违反并发约束AmbientTalk的角色模型。