我写了一门编程语言,你也可以!

${website.getHeaderOriginal(${article.taxonomyName})}

点击图片报名参加广州&珠海源创会


在过去六个月··|,我一直在致力于开发一门叫 Pinecone 的编程语言··|--。我还不能说它已经成熟了··|,但是它在使用中已经拥有足够多(编程语言)的特征··|,例如:

  • 变量

  • 函数

  • 用户定义的结构体

如果你有兴趣··|,可以看看 Pinecone 的引导页(landing page)或者它的 GitHub repo··|--。

我不是一个专家··|--。当我开始这个工程的时候··|,我对我所做的事情还没有方向··|,但我还是没有放弃··|--。我在语言创建上的级别为0··|,只是读了一点点在线的资料··|,也没有遵循我给出的那些建议··|--。

不过··|,我还是创造了一门完整的新语言··|--。并且它能工作··|--。所以我一定做了正确的事情··|--。在这篇文章中··|,我将深入展示 Pinecone (以及其他编程语言)把源码变成新语言的过程··|--。我也会谈谈我已经做出的一些权衡··|,以及为什么我会做出那些决定··|--。

这绝对不是制作编程语言的完整教程··|,但是如果你对语言开发感到好奇··|,那么这是一个好的开始··|--。



“我都不知道我该从哪里开始”··|,当我告诉其他开发人员我在写一门语言时··|,我通常会得到这样的回应··|--。如果听后的反应也是这样··|,我现在将通过一些已经尝试过的决定和步骤··|,来告诉你如何开始一门新语言··|--。

语言主要有两种类型:编译型和解释型:

编译器会计算出一个程序将执行的操作··|,将其转换为“机器代码”(计算机可以运行的格式··|,非常快)··|,然后保存以便稍后执行··|--。

一个解释器逐行逐步执行源代码··|,弄清楚它在做什么··|--。

技术上··|,任何语言都可以被编译或解释··|,但是一种或另一种语言通常对于特定语言更有意义··|--。一般来说··|,解释往往更加灵活··|,而编译往往具有更高的性能··|--。但这只是解决复杂问题前的预热··|--。

我高度重视性能··|,我看到缺乏高性能和简单性的编程语言··|,所以我去编译了 Pinecone··|--。

这是需要今早确定的重要决定··|,因为很多语言设计决策受到它影响(例如··|,静态类型对于编译型语言来说是一个很大的好处··|,但对于解释型语言而言并不是那么重要)··|--。

尽管 Pinecone 是按照编译型设计··|,但它也有唯一一个可运行的··|,功能完整的解释器··|--。原因我稍后会解释··|--。

我知道这有点像是一个元数据··|,但编程语言本身就是一个程序··|,因此你需要用一种语言编写它··|--。 我选择了 C++ ··|,因为它的性能和庞大的功能集··|--。此外··|,我其实很喜欢使用 C ++ 工作··|--。

如果你正在编写一种解释性语言··|,那么在编译�

${website.getFooterOriginal(${article.taxonomyName})}

发布者 :沙龙365_沙龙365_沙龙365官方网站 - 分类 沙龙365娱乐