.net 中的 Linq 可以被视为内部域特定语言吗?
Can Linq in .net be considered Internal Domain Specific Language?
我正试图了解什么是 DSL,刚才这个问题突然从我的脑海中冒出来。至少流畅的版本似乎是内部 DSL。 LINQ 的 查询语法呢?那也可以称为内部DSL吗?或 外部 DSL?
是的。或者至少查询语法和关键字可以。
Linq 涵盖了一些相关技术,其中大部分可以理解为特定领域 类 和方法,就像大多数 类 和方法特定于某些特定领域。当它与任何其他 .NET 代码非常相似时,很难说它们构成了 DSL。
但 C# 和 VB 中的查询语法和关键字仅出现在针对数据源的查询域的上下文中,并且与其他语言不同,因此将它们视为内部语言是合理的DSL。 (可以做一些奇怪的事情来使它们服务于其他目的,但是也可以对其他 DSL 做一些奇怪的事情来迫使它们也为其他域服务)。
我正试图了解什么是 DSL,刚才这个问题突然从我的脑海中冒出来。至少流畅的版本似乎是内部 DSL。 LINQ 的 查询语法呢?那也可以称为内部DSL吗?或 外部 DSL?
是的。或者至少查询语法和关键字可以。
Linq 涵盖了一些相关技术,其中大部分可以理解为特定领域 类 和方法,就像大多数 类 和方法特定于某些特定领域。当它与任何其他 .NET 代码非常相似时,很难说它们构成了 DSL。
但 C# 和 VB 中的查询语法和关键字仅出现在针对数据源的查询域的上下文中,并且与其他语言不同,因此将它们视为内部语言是合理的DSL。 (可以做一些奇怪的事情来使它们服务于其他目的,但是也可以对其他 DSL 做一些奇怪的事情来迫使它们也为其他域服务)。