如何扩展编程语言?

时间:2009-03-31 04:18:31

标签: programming-languages extending

我没有编程经验但对学习语言感兴趣。

因此,阅读本节“http://wiki.freaks-unidos.net/weblogs/azul/principles-of-software#extend-your-language-to-match-your-domain”让我对使用2种或更多语言编写单个应用程序感到好奇。

它是如何实际完成的?

2 个答案:

答案 0 :(得分:1)

一些想法:

  • 您链接的页面非常清楚地解释了它是如何完成的
  • 如果您对学习某门语言感兴趣,可能不是开始的地方
  • 使用两种或多种语言对单个应用程序进行编程只与链接文档略有关系。

尽管如此,面对这一切,我将尝试举例说明这是如何运作的。

假设你需要在一些技术任务上与一群人一起工作 - 难以排列国际象棋难题或测试棉花糖的污染或其他东西。进一步假设你团队中的一个人只说日语,另一个只讲葡萄牙语,而第三个只讲世界语。

有幸能够流利地说出所有这些语言,你最好的选择是制作专门针对手头任务的人工语言;这称为域特定语言或DSL。它应该有你需要的所有术语来谈论骑士和车辆或硅酸盐纳米粒子或任何其他任务,而不是其他。教给每个团队成员,然后你可以同时给他们所有的指示。他们可以互相交谈他们正在做什么,寻求帮助(只要它与你的语言所涵盖的内容有关),好像他们都讲同一种语言一样。

这大致就是他所说的。

答案 1 :(得分:1)

我想你可能会在你走路之前跑步。那里的概念可能需要一点编程经验才能开始。

文章的主旨(并且坦率地表达不清楚)是,当您编程时,您经常会遇到从声明性语法中受益的任务,即您应该能够表达您想要做的事情的意图并离开实现图书馆的详细信息。一个很好的例子是查询数据库,它(通常)能够以声明方式描述你想要做的事情并让一些中间件找到最好的方法来实现它,SQL和Linq是一个声明机制的两个例子。查询数据。

这是一个非常有趣的主题,但说实话,如果你没有编程经验,它可能更像是一个201科目而不是101科目,首先要掌握你的基础知识。