NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

用 Groovy 创建领域特定语言

  • 2008-02-27
  • 本文字数:677 字

    阅读完需:约 2 分钟

今天(2 月 21 日)是 Groovy/Grails Experience 大会(也就是大家所熟知的 2GX)的第一天,会议在 Virginia 的 Reston 举行。该会议会持续 3 天,包括了四十个 90 分钟的专题、小组讨论以及代码研习会。今天的首个专题之一是 Venkat Subramaniam 的“DSL In Groovy”。领域特定语言的话题过去曾经出现在 InfoQ 上,包括 Martin Fowler 的领域特定语言介绍和Ian Roughley 的关于用JRuby 构建领域特定语言的文章。

Venkat 的专题提供了关于什么是 DSL、它们的特征、DSL 类型(内部 / 外部)以及 Groovy 用来创建和使用它们的特性等相关信息。Venkat 首先集中于使用一些 Groovy 的一些内置特性创建内部 DSL(internal DSL)

除了这三个特性外,Venkat 论述了 Groovy 对开发者没有约束以及其促进 DSL 的附加特性,包括:

在决定当创建 DSL 时使用哪种方法时,Venkat 解释了使用 Categories 或 ExpandoMetaClass 的主要区别, > - Categories 允许你在战术上增强一个类

  • ExpandMetaClass 在本质上更深远、全面
  • 你可能不想从全局影响一个类
  • Categories 提供了受控的灵活性

领域特定语言正持续受到关注,而且可以用 Groovy 内置特性创建和使用。

查看英文原文: Creating Domain Specific Languages with Groovy

2008-02-27 19:441024
用户头像

发布了 150 篇内容, 共 43.5 次阅读, 收获喜欢 9 次。

关注

评论

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

《对线面试官》Java泛型

Java3y

Java 程序员 编程语言 java 5月月更

数据大屏,仅仅是数据展示吗?

葡萄城技术团队

数据分析 BI 数据可视化 数据大屏 BI分析

LabVIEW串口调试助手

不脱发的程序猿

LabVIEW 串口通信 数据通信 串口调试助手 VISA

消息队列Kafka「检索组件」重磅上线!

阿里巴巴云原生

阿里云 云原生 消息队列Kafka

跟着动画学 Go 数据结构之二叉树

宇宙之一粟

数据结构 二叉树 Go 语言 5月月更

【刷题第一天】蜡烛之间的盘子

白日梦

5月月更

2022 开源之夏 | Serverless Devs 陪你“变得更强”

阿里巴巴云原生

阿里云 云原生 Serverless Devs 开源之夏

STM32+华为云IOT设计的动态密码锁

DS小龙哥

5月月更

千人千面工作台,轻松定制你的移动业务场景

WorkPlus

PyTorch 开发环境搭建

Emperor_LawD

PyTorch 5月月更

Django 如何获取 Model 字段列表?

AlwaysBeta

django

轻量迅捷时代,Vite 与Webpack 谁赢谁输

葡萄城技术团队

前端 vite webpack 轮子

ChunJun支持异构数据源DDL转换与自动执行 丨DTMO 02期回顾(内含课程回放+课件)

袋鼠云数栈

大数据

Java并发机制的底层实现原理

急需上岸的小谢

5月月更

LabVIEW十六进制和字符类型转换

不脱发的程序猿

LabVIEW 进制转换

LabVIEW串口通信

不脱发的程序猿

LabVIEW 串口通信 数据通信

SAP 电商云启用 Enterprise Product Development Visualization Integration 的配置步骤

Jerry Wang

angular 电商 SAP commerce 5月月更

限时免费!六位袋鼠云数栈资深产品专家带来《数智赋能实战六讲》,欢迎报名

袋鼠云数栈

数据中台 大数据 开源

五年谷歌ML Infra生涯,我学到最重要的3个教训

OneFlow

机器学习 深度学习 深度学习框架 MLOps Data Infra

【愚公系列】2022年05月 二十三种设计模式(六)-适配器模式(Adapter Pattern)

愚公搬代码

5月月更

面试突击45:为什么要用读写锁?它有什么优点?

王磊

Java 面试

CentOS 8及以上版本配置IP的方法,你 get 了吗

伍工

Linux 网络

Nginx 和 Nginx Plus 的区别

HoneyMoose

【Python】新华字典(bushi

謓泽

5月月更

【高并发】ThreadLocal学会了这些,你也能和面试官扯皮了!

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

福昕软件:用PDF辅助技术弥合阅读障碍者的数字鸿沟

联营汇聚

Docker下的Spring Cloud三部曲之二:细说Spring Cloud开发

程序员欣宸

Java spring-cloud 5月月更

nginx配置系列(九)nginx中的防盗链

乌龟哥哥

5月月更

[Day37]-[二叉树]- 找树左下角的值

方勇(gopher)

LeetCode 二叉树 数据结构算法

BI系统打包Docker镜像及容器化部署的具体实现

葡萄城技术团队

Docker 数据分析 BI BI 分析工具

python处理excel文件,python xlsxwriter 一文初掌握

梦想橡皮擦

5月月更

用Groovy创建领域特定语言_Java_Craig Wickesser_InfoQ精选文章