我想问人们如何描述一种基本上描述程序行为而不是实现的编程语言 - 即。一种忽略实现问题的语言(例如,只有一个类或函数,而其他语言可能具有不同的类或函数,它们以不同的方式做同样的事情),而是完全依赖于自动优化。
“声明性”是正确的术语吗?也许是“故意的”?“目标导向”是一个似乎也具有相似含义的术语。也许是别的东西。我想知道,因为我正在设计的一种叫做 Lima 的语言符合这个描述(http://www.btetrud.com/Lima/Lima-Documentation.html)。我知道 Stack Overflow 喜欢有答案的东西,所以答案会交给评论最有见地的人。
我也想知道人们认为这个想法与保罗格雷厄姆的百年语言想法有多接近:http: //www.paulgraham.com/hundred.html。我喜欢他建议如何将字符串视为字符列表并摆脱数组以支持更通用的“哈希表”(即关联数组),这是我在利马第一次构思它时所做的事情。
lima 背后的基本思想是:
基于值的编程——摆脱任何关心值是什么“类型”的逻辑。Lima 中没有类型,值只是值。语言中仍然存在类型,但只是为了限制变量可以采用哪些值——它们不能更改要调用的多方法,也不能指定值的内存占用。
描述性编程 - 我在上面描述的关于一种编程语言,它不需要(实际上是能力)在代码本身中优化您的代码(而是通过自动优化器完成优化)
总的语言可扩展性——用语言本身编写语言中的任何结构的能力(例如,不仅能够重写“sin”函数,还能够重写“if”语句、循环语句,并创建可用的自定义 DSL在语言和其他 DSL 中。