网站大量收购闲置独家精品文档,联系QQ:2885784924

结束语等待你大展身手那些领域一手资源.pdfVIP

结束语等待你大展身手那些领域一手资源.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

APP

结束语|等待你大展身手的那些领域

2021-11-24宫文学

《手把手带你写一门编程语言》课程介绍

讲述:宫文学

时长14:21大小13.15M

你好,我是宫文学。

到今天为止,我们这门课的主要内容就都更新完了。不过,还有一些补充性的内容,我会

通过加餐和开源项目的方式,继续和你保持沟通。

今天的结束语,跟你探讨一下,学习实现一门语言的相关技术,到底会有什么用途。

我会分成领域编程语言、平台级的软件和通用编程语言这三个话题,分析一下编程语言技

我会分成领域编程语言、平台级的软件和通用编程语言这三个话题,分析一下编程语言技

术能帮助你抓住哪些机会,让你有机会从普通的程序员进阶成大神级的程序员,并创造

术能帮助你抓住哪些机会让你有机会从普通的程序员进阶成大神级的程序员并创造

一些卓越的产品。

首先,我们来谈谈领域编程语言这个话题。

1/11

领域编程语言(DSL)

对于我们大部分同学来说,其实很难有机会,或者也没有这个意愿,去参与实现一门通用

性编程语言。不过,其实在大部分情况下,我们也没有必要追求那么大的目标。有时候,

针对我们所在的领域,实现一门领域编程语言,就是很有意义、很有成就感的事情。

我举几个我遇到的DSL的例子,看看能否抛转引玉,让你找到可以设计和使用DSL

的场景。

MiniZinc:最优化领域的开发工具

在2020年的12月,我曾经研究了一下最优化算法相关的技术和工具,看看它能否用于我

们的一个产品。

很多同学在大学都学过最优化相关的理论,像线性规划、非线性规划这些,都属于这个领

域。你也可能听运筹学,它们的意思差不多。最优化理论在实践中有很多用途。比

如,我要解决一个应用问题,就是在某个领域,有很多员工,也有很多任务要完成。每个

员工的技能是不同的,我需要通过算法来安排这些员工的工作,取得整体最优的效果。

为了实现最优化求解,有人开发了各种求解器,有商业的,也有开源的。但对于我一个新

手来说,我一开始并不知道要用哪个工具,有点茫然。

通过某些途径,我了解到了MiniZinc这个工具。这个工具提供了一种DSL,能够描述各

种最优化问题,然后调用各种不同的求解器来求解。比如在下图,你能看到菜单栏有一个

下拉菜单,里面有多个求解器。

2/11

MiniZinc这个工具一下子解决了我的两个需求。首先,这个DSL很友好、很直观。你完

全可以按照最优化的理论,描述一个问题的变量、参数、约束条件,然后就可以求解了,

非常方便。第二,我暂时也不用关心不同的求解器的差别,可以随便选一个先用着,或者

换着用不同的求解器,看看它们在性能和求解结果有哪些差异。

所以我很快就用MiniZinc编写了几个小程序来验证我的想法,并在较短的时间内取得了一

些成果。

在使用这个工具的时候,我就在想,上过我这门课的同学,有没有能力做这么一个工具

呢?我们来分析一下。

其实,要实现MiniZinc,主要的工作就是实现一个编译器的前端,做词法分析、语法分析

和语义分析工作。这个DSL的语法和语义都不是很复杂,所以工作量并不大。

3/11

做完前端的工作以后,程序就可以基于AST来解释执行了。解释执行的过程,其实就是调

用各个求解器的API,并把结果显示到界面上。

这么一个小工具,会给那些最优化领域的工作者和科研人员带来很大的便利。因为他们通

常专注于研究算法,对于通用的计算机编程并不是很熟练。

那在

文档评论(0)

159****9610 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档