Kyle 的个人资料Kyle Huntley照片日志列表 工具 帮助
    9月26日

    Why Domain Specific Languages?

    Domain Specific Language (DSL) is a technique for crafting a special-purpose languages to create solutions within a specific and well-defined problem space.  The potential is immense.  They may be a little over-hyped (in some circles), and I think we’re still a ways from business analysts writing their own systems…

     

    Nevertheless, I assert that DSLs are important and will increase in popularity and utility as the tooling improves to allow “DSLs for the masses”.  SQL, HTML, XAML, UI and Process design surfaces.  These are all examples of DSLs and all revolutionary in power and productivity.

     

    I’m of course not advocating that everyone build a new DSL for every project, but when there are “product families” which share a problem space, the power of DSLs is undeniable.

     

    The power of DSLs comes from working with high level code elements that are “abstract” but not “imprecise”.  It’s like one of these trade-off triangles.  Everybody knows the scope-staff-schedule triangle.  You can hold two fixed, but at least one must move.

     

    With DSLs, the triangle is abstraction-precision-domainScope.  If the domain is huge or unbounded, you have to choose between abstraction and precision.  This really limits the power of the abstraction, because it can’t be fully precise and is therefore not “code” – not executable even in theory [1].  However, if you limit the scope of the domain, you can raise the level of abstraction without losing precision.  This - in a nutshell - is the “magic” of DSLs.

     

    [1] This is closely related to the Platform Independent Model (PIM) fallacy, but that is another tale. 

    评论

    请稍候...
    很抱歉,您输入的评论太长。请缩短您的评论。
    您没有输入任何内容,请重试。
    很抱歉,我们当前无法添加您的评论。请稍后重试。
    若要添加评论,需要您的家长授予您相应权限。请求权限
    您的家长禁用了评论功能。
    很抱歉,我们当前无法删除您的评论。请稍后重试。
    您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
    因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
    完成下面的安全检查,您提供评论的过程才能完成。
    您在安全检查中键入的字符必须与图片或音频中的字符一致。

    若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


    还没有 Windows Live ID 吗?请注册

    引用通告

    此日志的引用通告 URL 是:
    http://kylehuntley.spaces.live.com/blog/cns!6E8EDC3934C96464!226.trak
    引用此项的网络日志