BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

概念编程

| 作者 Ian Roughley 关注 0 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2008年1月31日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

概念编程(Concept Programming)是从2000年Christophe de Dinechin在惠普公司开始的一个非公开项目起步的。概念编程这种方法:

对软件之表达与创作提出一种新的视角,以应对软件日益增长的复杂性。

从很多方面来说,概念编程和领域特定语言(DSL)要解决的是同一个问题,只不过它们采取的路线不一样。Christophe没有创造一种专用语言,反而创造了XL这种通用语言。他在为RegDeveloper所写的一篇文章里对此作了解释:

现有表示法的局限是很难对它们作优雅的扩展。你可以扩展语言,像Lisp和它的衍生语言——但问题是如何让扩展呈现出你想看到的样子。

接着,文章解释道:

XL吸引人的其中一个方面是它没有固定的关键字——它依赖的是Dinechin称为“形状(shape)”的东西:“XL不用关键字——只有能够解析任何东西的单一语法。它的外观是标准的。它依赖于很少几种解析树,且并不以关键字为基础,而是以解析树的形状为基础。这就是说你可以快速地给XL加东西,来回摆弄和实验。”

Christophe de Dinechin的一次演讲中,他进一步扩展了文章的主题,认为即便是很简单的问题用今天的编程语言也很难实现。

下面两者之间存在着隔阂:

  • 在你头脑中的概念
  • 概念在代码里的表现形式

概念编程完全是针对这种隔阂的。

他继续说,概念编程将会:

令代码“看似”概念

  • 在结构、行为和局部性(locality)
  • 最低意外原则

除了概念,Christophe还定义了一些伪度量指标(pseudo-metrics)。这些指标是高度主观的,而且也不容易测量,但它们确实提供了一种信息沟通的方式。他总结的伪指标有:

句法学噪声

  • 无法映射到问题空间的形式

语义学噪声

  • 无法映射到问题空间的含义

带宽

  • 对问题空间的涵盖程度有多少?

信噪比

  • 有多少代码是在处理真正的问题?

要想进一步了解XL和概念编程,XL项目的地址在http://xlr.sourceforge.net

查看英文原文:Concept Programming

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT