【问题标题】:Real world usage of concatenative programming languages串联编程语言的实际使用
【发布时间】:2009-11-18 09:59:34
【问题描述】:

concatenative languages 中完成了哪些实际项目,例如ForthFactorJoy 等?

【问题讨论】:

  • Factor 是一门非常棒的语言,但如果您想编写 GUI 应用程序,甚至不必费心。任何流行的 GUI 工具包都没有绑定,Factor 附带的工具包很垃圾。

标签: forth factor-lang concatenative-language


【解决方案1】:

factorcode.orgconcatenative.orgtinyvid.tv 由 Factor Web 服务器和框架 Furnace 提供支持。

【讨论】:

    【解决方案2】:

    PostScript 是级联的,显然 PostScript 有大量的应用。它只是不是一种通用的编程语言。

    【讨论】:

      【解决方案3】:

      正如 Greg 所写,postscript 是一个巨大的例子。

      由于语言运行时的琐碎性质,连接语言无处不在,这很自然。它是许多固件的最爱:我第一次在 Sun Sparcstation 的引导加载程序中“亲身”遇到 Forth。它为 OLPC 的固件供电。

      Ocaml 的父级 Caml 基于将函数式编程的语义实现为分类抽象机(Caml 中的 CAM)。

      Bibtex 使用连接语言来编译样式文件。

      【讨论】:

      • CAM如何与级联语言联系起来?
      • 看看ropas.snu.ac.kr/~pronto/seminar/20061027.pdf将CAM的组合子实现为Forth字典并不是一件容易的事,但我认为这是可行的,当然操作语义的精神是连接的。
      • 链接现在是 404
      【解决方案4】:

      有一个有点过时但非常酷的 Quartus Forth for Palm,它允许在 Palm 设备上进行完全编译的应用程序开发(Forth 作为一种极简语言在这些情况下工作得相当好)。他们的home page 列出了几个 Palm 应用程序。

      这个FIG页面有一个list of mostly-embedded projects,其中提到了NASA对Forth的非常酷的使用。

      大约 1991 年,我在昆士兰的一次 Apple 会议上遇到了一个人,他零售了一个用 MacForth 编写的道路规划应用程序。

      Christopher Diggins 谈到他的 Cat language 在 Microsoft 内部用于帮助优化编译器,但我不知道这是否适用。

      我怀疑PowerMOPS(Neon 的继任者)可能会避开串联的定义,因为它的重要之处在于添加了面向对象,这意味着实例。

      【讨论】:

      • 对不起,如果我给了我错误的印象,但在微软从未使用过 Cat。理论上它可以用来帮助优化编译器,但我从未见过有人尝试这样做。
      【解决方案5】:

      看看FORTH Inc,他们列出了他们和他们的客户使用他们的 FORTH 完成的几个项目。

      【讨论】:

        【解决方案6】:

        Mac 上的部分固件(至少在旧的 PowerPC 型号中)是用 Forth 编写的。

        见:http://osxbook.com/book/bonus/ancient/whatismacosx/arch_boot.html

        【讨论】:

          【解决方案7】:

          Eservnncron写在SP-Forth中。

          【讨论】:

            【解决方案8】:

            比特币协议和大多数其他加密货币都使用pubkey scripts and signature scripts 来验证交易:

            公钥脚本和签名脚本将 secp256k1 公钥和签名与条件逻辑相结合,创建可编程的授权机制。

            这些脚本是written in a concatenative language

            脚本语言是一种类似于 Forth 的基于堆栈的语言,故意设计为无状态且不是图灵完备的。无状态确保一旦将交易添加到区块链中,就没有条件使其永久不可花费。图灵不完备性(特别是缺少循环或 goto)使脚本语言更不灵活且更可预测,从而大大简化了安全模型。

            【讨论】:

              猜你喜欢
              • 2011-02-17
              • 2013-01-19
              • 2018-02-06
              • 2010-12-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-01
              相关资源
              最近更新 更多