在Swift中实现编程语言—第1部分:简介

欢迎! 这是关于“在Swift中实现编程语言”的系列教程的第一部分。

通常,创建新的编程语言不是很实用。 实际上,在大多数情况下,它甚至被认为是浪费时间。 不够务实。 值得庆幸的是,在大多数情况下都是如此,几乎所有利基市场都存在开源语言。 但是尽管如此,当解决众多问题时,了解一两个解释器的实现方法实际上可以派上用场。

了解内部机制甚至可能像我一样改变您的软件开发方法。 当我写第一语言(Zolang)时,驱动因素是工作中的挑战。 对我来说,这是第一次实现一个口译员,这似乎是一个好方法。 我不希望这是最后一个。

当时,我们需要使用多种编程语言分别实现的各种业务逻辑的单一来源。 我们使用了脚本语言(Ruby),然后使用了每种平台的单独语言:iOS(Swift),Android(Kotlin)和服务器(TypeScript)。

通过实现一个简单的解释器,我们能够为所有这些接口创建一个接口,并且比我预期的要容易得多。

德怀特同意!

如您所见,我发现用自己的语言写作绝对是值得的。 一种实现的灵感促使我与大家分享了本教程系列。

在本系列中,我们将从为计算器创建一个简单的解释器开始,然后将该实现扩展为一种简单的编程语言。 这是本系列前六部分的粗略计划:

  • 第1部分:简介
  • 第2部分:语法-设计我们的第一语言(01/28/19)
  • 第3部分:Lexer(02/04/19)
  • 第4部分:解析器(02/11/19)
  • 第5部分:主要功能(02/18/19)
  • 第6部分:解析变量(02/25/19)
  • 第7部分:声明变量(19/04/19)
  • 第8部分:函数(03/11/19)
  • 第9部分:定义函数(03/18/19)
  • 第10部分:If陈述(03/25/19)

我希望你们对此充满期待,我知道。 在接下来的几周中,您将在每个星期一早上看到我发来的帖子。 我想添加比我已经计划好的更多的教程,但这将取决于您的反馈,所以请不要犹豫评论或鼓掌。 反馈的每一点都非常感谢。

接下来:语法!

PS随时在Twitter(valdi101)上或在Medium上随时关注我,以获取有关将来教程的通知和讨论。