什么是用于互联网广告的小型自定义DSL的示例?

时间:2009-06-15 23:42:13

标签: dsl

我正在学习DSL,我正试图将它们放在我能理解的环境中。

假设我们正在谈论互联网广告,例如 - 因为这是我想要参与的一个领域 - 你可能会建立一个小型自定义DSL的例子吗?

此外,您需要执行哪些高级技术步骤?

3 个答案:

答案 0 :(得分:1)

根据定义,域专用语言是专为域专家设计的语言。

主题非常大,可以通过以下方式进行细分:

  • 内部或外部 - 它是程序员编写或独立的宿主语言的一部分。
  • 命令式或声明式 - 你是否指定了“程序”的流程,或者你是在写下需要完成的属性。
  • 观众 - 这是由程序员或非程序员编写的

一大部分DSL(包括下面的一部分)可以被描述为由规则或推理引擎一次性评估的规则。

对于互联网广告领域,您可能想要制定一套业务规则来管理在给定页面上显示哪些广告。

if page.popularity is high then use ads of account[valuable]

if page.topic is not NSFW then use ads of topic[not NSFW]

if browser does not support flash then use ads of capability[javascript]

在这种特殊情况下,干净,热门的网页会从最佳付费帐户中获取广告,并且可以安全地工作。

如果这种方法对您有共鸣,您可能希望集成现有的规则引擎。如果最终用户不是开发人员,那么这尤其是圣人,因为您需要提供一定数量的工具以及DSL。

答案 1 :(得分:1)

去年我一直在使用DSL Tools for VS2005。

为了学习它,你应该阅读 “使用Visual Studio DSL工具进行特定领域开发” Steve Cook,Gareth Jones,Stuart Kent和Alan Cameron Wills。

这应该是您的切入点,它涵盖了有关该技术的各个方面,包括一些高级主题。

答案 2 :(得分:0)

游戏有点晚了,但是......

Google拥有此类DSL,专门针对Google广告客户可以投放的广告。它包含常用的Google搜索(广泛匹配[未加引号的文本],词组匹配[引用的字符序列]和完全匹配[括号中的字符序列])以及用于消除匹配的Google搜索的“否定关键字” 。它是通过一组表单输入的,因此它看起来不像编程,但输入的内容最终是一些非常简洁的文本字符串。它不是一个非常聪明的DSL恕我直言(我实际上必须使用它,我希望它包括低端的正则表达式和自然语言在高端解析)但它是非常真实的并且被数百万“非程序员使用” ”

实现DSL有两个步骤:解析它(理解它的内容)并使其意义机械化。解析非常清楚;看看有关解析Stack Overflow周围浮动的任何问题。机械化要困难得多;我们所认为的“Google” 主要是该DSL的机械化。