...
首页> 外文期刊>Journal of Functional Programming >Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
【24h】

Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction

机译:通过重新设置时间和减少销毁时间来动态重新绑定以进行编组和更新

获取原文
           

摘要

Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises, for example, when a marshalled value is received from the network, containing identifiers that must be rebound to local resources. Typically, it is provided only by ad hoc mechanisms that lack clean semantics. In this paper, we adopt a foundational approach, developing core dynamic rebinding mechanisms as extensions to the simply typed call-by-value X calculus. To do so, we must first explore refinements of the call-by-value reduction strategy that delay instantiation, to ensure computations make use of the most recent versions of rebound definitions. We introduce redex-time and destruct-time strategies. The latter forms the basis for a λ_(marsh) calculus that supports dynamic rebinding of marshalled values, while remaining as far as possible statically typed. We sketch an extension of λ_(marsh) with concurrency and communication, giving examples showing how wrappers for encapsulating untrusted code can be expressed. Finally, we show that a high-level semantics for dynamic updating can also be based on the destruct-time strategy, defining a λ_(update) calculus with simple primitives to provide type-safe updating of running code. We show how the ideas of this simple calculus extend to more real-world, module-level dynamic updating in the style of Erlang. We thereby establish primitives and a common semantic foundation for a variety of real-world dynamic rebinding requirements.
机译:大多数编程语言都采用静态绑定,但是对于分布式编程而言,对静态绑定的排他性依赖太严格:以各种形式要求动态绑定,例如,当从网络接收到编组值时,其中包含必须反弹到本地的标识符资源。通常,它仅由缺乏清晰语义的临时机制提供。在本文中,我们采用一种基本方法,开发了核心动态重新绑定机制,作为对简单类型的按值调用X演算的扩展。为此,我们必须首先探索延迟实例化的按值减少策略的细化,以确保计算使用最新版本的反弹定义。我们介绍了还原时间和销毁时间策略。后者构成了λ_(marsh)演算的基础,该演算支持对编组值进行动态重新绑定,同时尽可能保留静态类型。我们以并发性和通信方式绘制了λ_(marsh)的扩展,给出了一些示例,展示了如何表达用于封装不可信代码的包装器。最后,我们证明了动态更新的高级语义也可以基于销毁时间策略,使用简单的原语定义λ_(update)演算,以提供运行代码的类型安全更新。我们以Erlang的方式展示了这种简单演算的思想如何扩展到更实际的模块级动态更新。因此,我们为各种现实世界中的动态重新绑定要求建立了基元和通用语义基础。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号