写点什么

语言工作台可能最终会完全改变我们的编程方式

  • 2009-05-08
  • 本文字数:876 字

    阅读完需:约 3 分钟

Intentional 软件经过了多年的开发,终于发布了其 Intentional 领域工作台(IDW)1.2 版本。JetBrains 则开源了目前处于 Beta 2 阶段的元编程系统(MPS)。

Intentional 软件的产品经理 Magnus Christerson 在 Lang.NET 讨论会上演示了IDW ,引起了强烈反响。IDW 本质上是个语言工作台,但它也是个投影编辑环境。整个工作台围绕意图树(Intentional Tree)建立,意图树是允许领域进行多重投影的语义模型,也可用来生成代码。用户可以从不同投影查看和编辑领域,每次编辑都会更新领域和其它投影。接着,模型会编译转换为代码。

IDW 主要用来让程序员为业务领域专家搭建领域特定环境。领域专家可以用他们喜欢的任何业务领域语言表述概念和规则,这些领域语言可用文本、图表、符号、表格等方式进行描述。程序员的工作则是建立理想的投影,以及生成编程语言领域代码的转化方法。领域专家会编辑领域需求,这些领域需求接着会转化为代码。IDW 目前有 C#、Java、C++、Ruby、SQL、HTML、Javascript 和 XML 的代码生成领域,用户还可以添加补充。

演示给观众留下了极深刻的印象。 Markus Voelter 说:

如果你对 DSL 感兴趣,你务必要观看这个视频。它清楚地显示了 IDW 的潜力。如果 ISC 有更多点儿的时间来润色该系统,它会成为一场变革!

Larry O’Brien 评论说:

Intentional 软件锻造了一颗银弹。

Glenn Block 评论道:

这不是个时髦的演示,我们知道,它可是能完全改变世界的。

IDW 目前尚不公开提供,Intentional 软件只和选定的客户共享 IDW,比如 Capgemini ThoughtWorks 。Magnus C. 邀请感兴趣的同学联系他,但要求这些同学签署严格的保密协议。

JetBrains 发布了针对面向语言编程(PDF)风格的元编程系统。MPS 基本上也是个语言工作台。它目前处于Beta 2 阶段,预计本季度投入生产环境。MPS 是免费的,大多数源代码在Apache 2 许可下可用。

可用资源:Magnus C. 在Lang.NET 上进行的 IDW 介绍,Martin Fowler 在 Lang.NET 上对IDW 演示的报告,InfoQ 上由Magnus C. 所作的有关领域和DSL 的视频

查看英文原文: Language Workbenches May Ultimately Completely Change the Way We Do Programming

2009-05-08 00:212572
用户头像

发布了 151 篇内容, 共 62.7 次阅读, 收获喜欢 18 次。

关注

评论

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

Prometheus 2.37.0 新特性

耳东@Erdong

release Prometheus 7月月更

云原生(十) | Kubernetes篇之Kubernetes简介

Lansonli

云原生 k8s 7月月更

mysql进阶(十七)Cannot Connect to Database Server问题分析

No Silver Bullet

MySQL 数据库 7月月更

LeetCode-88. 合并两个有序数组(java)

bug菌

Leet Code 7月月更

谈谈程序员如何提高自己的写作能力

宇宙之一粟

写作 7月月更

Android 开发遇到的Exception

沃德

android 7月月更

干货分享-作为Lead 接手一个新的数据团队一 问题盘点 与Insights的发现

松子(李博源)

经验分享 数据分析师 成长笔记 带团队

在 Kyma 云原生平台上开发并部署 Node.js 应用

汪子熙

Kubernetes 云原生 SAP Kyma 7月月更

NFT数字藏品系统搭建—app开发

开源直播系统源码

软件开发 数字藏品 NFT数字藏品系统

Elephant Swap的LaaS方案优势分析,致eToken表现强势

股市老人

Docker 安装 Nginx 部署前端项目

宁在春

nginx Docker Vue 7月月更

关于数据产品经理的三个小的知识点

松子(李博源)

数据中台 数据产品经理 数据产品

【愚公系列】2022年07月 Java教学课程 06-常量

愚公搬代码

7月月更

从源码上学习 MockMvc 的使用

安逸的咸鱼

Java 源码 Mock测试框架 7月月更

Python干货篇——列表及列表常用内置函数

Java学术趴

7月日更

【函数式编程实战】(二)代码的行为参数化传递

小明Java问道之路

函数式接口 Lambda 函数式编程 行为参数化 7月日更

Elephant Swap的LaaS方案迅速崛起,构建全新DeFi2.0协议

鳄鱼视界

C#入门系列(二十七) -- LINQ简析

陈言必行

7月月更

Qt | 模态对话框和非模态对话框 QDialog

YOLO.

qt 7月月更

开幕在即 | “万物互联,使能千行百业”2022开放原子全球开源峰会OpenAtom OpenHarmony分论坛

OpenHarmony开发者

OpenHarmony

java零基础入门-java8新特性(上篇)

喵手

Java 7月月更

另类加法与走方格的方案数

未见花闻

7月月更

zookeeper-运行期间的leader选举与observer

zarmnosaj

7月月更

QT exe只允许运行单个

小肉球

qt 7月月更

Qt|编辑框的使用总结

中国好公民st

qt 7月月更

STM32+ESP8266+MQTT协议连接OneNet物联网平台

DS小龙哥

7月月更

数据结构-顺序表的实现

芒果酱

数据结构 C语言 7月月更

深浅拷贝

Jason199

js 深拷贝 浅拷贝 7月月更

strncpy() 复制字符串(受长度限制)

謓泽

7月月更

敏捷 ? DevOps ?

FunTester

语言工作台可能最终会完全改变我们的编程方式_编程语言_Abel Avram_InfoQ精选文章