【发布时间】:2009-11-18 09:59:34
【问题描述】:
在concatenative languages 中完成了哪些实际项目,例如Forth、Factor、Joy 等?
【问题讨论】:
-
Factor 是一门非常棒的语言,但如果您想编写 GUI 应用程序,甚至不必费心。任何流行的 GUI 工具包都没有绑定,Factor 附带的工具包很垃圾。
标签: forth factor-lang concatenative-language
在concatenative languages 中完成了哪些实际项目,例如Forth、Factor、Joy 等?
【问题讨论】:
标签: forth factor-lang concatenative-language
factorcode.org、concatenative.org 和 tinyvid.tv 由 Factor Web 服务器和框架 Furnace 提供支持。
【讨论】:
PostScript 是级联的,显然 PostScript 有大量的应用。它只是不是一种通用的编程语言。
【讨论】:
正如 Greg 所写,postscript 是一个巨大的例子。
由于语言运行时的琐碎性质,连接语言无处不在,这很自然。它是许多固件的最爱:我第一次在 Sun Sparcstation 的引导加载程序中“亲身”遇到 Forth。它为 OLPC 的固件供电。
Ocaml 的父级 Caml 基于将函数式编程的语义实现为分类抽象机(Caml 中的 CAM)。
Bibtex 使用连接语言来编译样式文件。
【讨论】:
有一个有点过时但非常酷的 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 的继任者)可能会避开串联的定义,因为它的重要之处在于添加了面向对象,这意味着实例。
【讨论】:
看看FORTH Inc,他们列出了他们和他们的客户使用他们的 FORTH 完成的几个项目。
【讨论】:
Mac 上的部分固件(至少在旧的 PowerPC 型号中)是用 Forth 编写的。
见:http://osxbook.com/book/bonus/ancient/whatismacosx/arch_boot.html
【讨论】:
比特币协议和大多数其他加密货币都使用pubkey scripts and signature scripts 来验证交易:
公钥脚本和签名脚本将 secp256k1 公钥和签名与条件逻辑相结合,创建可编程的授权机制。
这些脚本是written in a concatenative language:
脚本语言是一种类似于 Forth 的基于堆栈的语言,故意设计为无状态且不是图灵完备的。无状态确保一旦将交易添加到区块链中,就没有条件使其永久不可花费。图灵不完备性(特别是缺少循环或 goto)使脚本语言更不灵活且更可预测,从而大大简化了安全模型。
【讨论】: