在谈论编程语言的功能时,例如在Programming Language Comparison和D Language Feature Comparison Table中,我想知道概念“功能”属于或在下面讨论的语言的哪个方面?
谢谢和问候!
答案 0 :(得分:2)
这只是一种直觉,我不是语言理论家或其他任何人。我想说为编程语言添加一个特性意味着两者
IsExpr : "is" "(" someKindOfExpression ")"
)答案 1 :(得分:1)
这完全取决于您对“功能”的含义以及它是如何实现的。 Java的泛型等一些特性只不过是语法糖 - 所以这就是“语法特征”。由于type erasure,使用Java的泛型生成的字节码不受影响。这允许向后兼容预通用(例如Java 1.5)字节码。
其他语言功能比语法级别更深入,比如C#的泛型,它是使用reification实现的,以提供"first-class" generic objects。
答案 2 :(得分:1)
我不认为编程语言“功能”的概念有一个清晰的分离,因为运行时环境正在提供诸如垃圾收集(Java)或模式匹配(Haskell)等许多功能。所以,通常我会说编程语言 - 语法 - 本身没有提供任何功能。它只是确定了语言的规则(语法)。由于行为是由代码(由语法通过遵守其规则而产生)的解释方式决定的,因此编程语言功能是一个特殊的方面。