写点什么

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

  • 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:212992
用户头像

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

关注

评论

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

【python小脚本】监听日志文件异常数据发送告警短信

山河已无恙

12月月更

预告|2022 星策 Summit MLOps 分论坛议程公布!

星策开源社区

人工智能 机器学习 开源 AI MLOps

OpenMLDB v0.6 新版本运维功能增强

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

广西移动圆满完成区运会通信保障任务

极客天地

互联网医疗领域月度观察——数字乡村建设加快,“互联网+医疗健康”带动乡村高质量发展

易观分析

数字化 互联网医疗

OpenMLDB Meetup No.7 回顾 | OpenMLDB+AutoX:整合自动特征工程,拥抱高效机器学习

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

教育部公布2022年第一批产学合作协同育人项目,千锋教育57个项目成功立项

千锋IT教育

Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查

山河已无恙

12月月更

react源码分析:babel如何解析jsx

flyzz177

React

镕铭微电子加入龙蜥社区,推动开源 OS 在音视频产业的应用

OpenAnolis小助手

操作系统 芯片 数据存储 龙蜥社区 镕铭微电子

演讲实录 | OpenMLDB 整合自动特征工程

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Ansible最佳实践之 AWX 构建高级作业工作流的创建和调度

山河已无恙

12月月更

创业者说丨云起无垠沈凯文:构建新一代开发安全基础设施 让Fuzzing技术为企业赋能

云起无垠

安全开发 开发安全 Fuzzing技术防护

Ansible最佳实践之 AWX 创建管理项目的一些笔记

山河已无恙

12月月更

react源码中的生命周期和事件系统

flyzz177

React

裸辞不慌!入职蚂蚁金服P6,掌握并发编程我是这样吊打面试官的

钟奕礼

Java java面试 java编程 程序员‘

教你用JavaScript实现乘法游戏

小院里的霍大侠

JavaScript 前端开发 编程实战 实战案例 初学者

Ansible之Ansible Tower使用User和Team管理访问权限的笔记

山河已无恙

12月月更

降价背后,函数计算规格自主选配功能揭秘

Serverless Devs

Serverless 前端 函数计算FC

SAP MM 为UB类型的STO执行VL10B,报错-没有项目类别表存在(表T184L NL 0002 V)-之对策

SAP虾客

SAP MM UB类型STO VL10B T184L

Ansible之 AWX 管理清单和凭据的一些笔记

山河已无恙

12月月更

Ansible最佳实践之AWK VS Anssible Tower 界面介绍

山河已无恙

12月月更

Ansible最佳实践之 AWX 作业创建和启动

山河已无恙

12月月更

专访 | 徐鹏程:开源,就是酷

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Ansible最佳实践之Playbook高级循环任务如何操作

山河已无恙

12月月更

react源码中的协调与调度

flyzz177

React

OpenMLDB 社区月报 | 2022年10月

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Redis之String类型和Hash类型的介绍和案例应用

C++后台开发

redis 数据结构 hash 后端开发 C++开发

Ansible最佳实践之 AWX 使用 Ansible 与 API 通信tags

山河已无恙

12月月更

多引擎可视化数据流实现方案

元年技术洞察

数据中台 数字化转型 专利解析 方舟企业数字化 PaaS 平台 #方舟平台

关于 Git 重写历史的一些笔记

山河已无恙

12月月更

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