腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

概念编程

  • 2008-01-30
  • 本文字数:756 字

    阅读完需:约 2 分钟

概念编程(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

2008-01-30 02:17735
用户头像

发布了 225 篇内容, 共 55.4 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

Soul网关实践 01|把项目跑起来

哼干嘛

Java 探索与实践 API网关 Soul网关

Flutter技术在会展云中大显身手

京东科技开发者

小程序flutter, 跨平台 云服务 移动开发

自动驾驶和疫苗的相似之处——浅谈自动驾驶基本架构(28天写作 Day7/28)

mtfelix

自动驾驶 28天写作

想做出好决定,让头脑来次时空旅行吧!

Justin

思维模型 决策 28天写作

第十三周课后练习

晴空万里

架构师训练营第2期

贸易战的本质是什么?

JiangX

经济 28天写作 制造 美国 贸易战

读书笔记:《激荡三十年》上

lidaobing

28天写作 激荡三十年

关心群众生活,注意工作方法 Jan 15, 2021

王泰

28天写作

『CDN』让你的网站访问起来更加柔顺丝滑

古时的风筝

CDN

Spring Boot如何动态修改日志级别

万里无云

Spring Boot actuator 日志级别

杂谈

.

28天写作

愿景的力量

程序员陆通

愿景 28天写作

建立与孩子沟通的桥梁-从一个家庭会议开始

Ian哥

28天写作

万字多图 | UML 入门指南

白色蜗牛

Java 程序员 后端 架构设计 UML

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,递归+使用索引,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Spring Boot 集成 Swagger2 展现在线接口文档

武哥聊编程

Java springboot SpringBoot 2 swagger 28天写作

乐观主义

三只猫

28天写作

HDFS SHELL 详解(8)

罗小龙

hadoop 28天写作 hdfs shell

Kubernetes概念篇:基本概念和术语

xcbeyond

Kubernetes 容器 pod 28天写作 Kubernetes从入门到精通

大数据知识专栏 - MapReduce入门

小马哥

Java 大数据 hadoop mapreduce 七日更

28天瞎写的第二百一八天:搬机房的故事

树上

28天写作

解决div里面img图片下方有空白的问题

德育处主任

CSS html html5 大前端 28天写作

遇到代码缺陷不要慌,马上教你快速检测和修复

华为云开发者联盟

代码 bug 缺陷检测 代码缺陷

聚焦目标,团队工作不再一盘散沙(中)

一笑

管理 敏捷 目标管理 目标追踪 28天写作

视频号第一周总结 | 视频号 28 天 (08)

赵新龙

28天写作

幻想着,直到大厦崩塌「幻想短篇 7/28」

道伟

28天写作

重学JS | Class

梁龙先森

大前端 编程语言 28天写作

日语复习Day01【~あげく(に)】

IT蜗壳-Tango

程序员 七日更 日语语法 情景句型

2021年,这是以太坊的发展方向?

李忠良

28天写作

同事试用期没过就被劝退,我比他还难受

熊斌

职场 成长笔记 28天写作 职场新人

古有诸葛亮八卦阵阻敌,今有iptables护网安

华为云开发者联盟

安全 防火墙 网络 iptables 数据包

概念编程_编程语言_Ian Roughley_InfoQ精选文章