[英]How does extending a programming language work?
我没有编程经验,但是对学习语言感兴趣。
因此,阅读本节“ http://wiki.freaks-unidos.net/weblogs/azul/principles-of-software#extend-your-language-to-match-your-domain ”使我对在其中编写单个应用程序感到好奇2种以上的语言。
实际如何完成?
一些想法:
尽管如此,面对所有这些,我将通过类比尝试给出一个示例。
假设您需要与一群人一起完成某些技术任务-按难度对象棋谜题进行排序或测试棉花糖中的污染物或其他物质。 进一步假设您团队中的一个人只会说日语,另一个会说葡萄牙语,而第三个只会说世界语。
拥有能够流利地说所有这些语言的能力,您最好的选择是构造一种专门用于即将完成的任务的人工语言。 这称为领域特定语言或DSL。 它应该具有您需要谈论的所有术语,例如骑士,白嘴鸦或硅酸盐纳米粒子或用于任务的其他任何东西,而没有其他内容。 向每个团队成员进行讲授,然后您可以同时向他们提供所有指示。 他们可以互相谈论自己在做什么,寻求帮助(只要这与您的语言所涵盖的内容有关),就好像他们都讲相同的语言一样。
那大概就是他在说什么。
我认为您可能会尝试跑步才能走路。 首先,这里的概念可能需要一点编程经验。
本文的主旨(坦率地说,表现不佳)是,在进行编程时,您经常会遇到受益于声明性语法的任务,即,您应该能够表达您想要做什么的意图,并将实现细节留给图书馆。 一个很好的例子是查询数据库,它(通常)更具可读性(能够以声明的方式描述您想要做的事情,并让一些中间件找出实现此操作的最佳方法),SQL和Linq是声明式机制的两个示例。查询数据。
这是一个非常有趣的话题,但是老实说,如果您没有编程经验,那么它可能更多是201而不是101的主题,请首先掌握基础知识。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.