当前位置:  开发笔记 > 编程语言 > 正文

什么是开始编写编程语言的好资源,这不是上下文无关的?

如何解决《什么是开始编写编程语言的好资源,这不是上下文无关的?》经验,为你挑选了3个好方法。

我正在寻找一种有趣的编程语言,但是我所看到的大多数资源都是用于编写无上下文的语言,但我希望编写一种像python一样使用缩进的语言,这对我的理解意味着它可以没有上下文.



1> Walter Brigh..:

简单地说,无上下文语法是一种不需要符号表以正确解析代码的语法.上下文敏感的语法可以.

D编程语言是无上下文语法的示例.C++是一个上下文敏感的.(例如,T*x声明x是指向T的指针,还是将T乘以x?我们只能通过在符号表中查找T来判断它是一个类型还是一个变量.)

空白与它无关.

D使用无上下文语法以大大简化解析它,因此简单的工具可以解析它(例如语法高亮编辑器).



2> Jason Dagit..:

您可能想要阅读这篇关于解析Python的相当精彩的文章,Python:关于缩进的神话.

虽然我没有尝试使用类似yacc的东西编写无上下文解析器,但我认为使用条件词法分析器可以返回缩进更改标记,如url中所述.

顺便说一句,这是来自python.org的官方python语法:http://www.python.org/doc/current/ref/grammar.txt



3> λ Jonas Gora..:

我首先要通过阅读有关该主题的一些文献来熟悉这个问题.Aho等人的经典编译器书.人.可能在数学和复合科学上很重要,但更可靠的文本是Jack Crenshaw 的Let's Build a Compiler文章.这是Crenshaw先生在80年代后期写的一系列文章,它是有史以来编写的最不受欢迎的文本.方法很简单,重点:克伦肖先生表示" A"方法很有效.你可以轻松地浏览几个晚上的内容,并对编译器的内容有更好的理解.有几点需要注意的是,文中的例子是用Turbo Pascal编写的.编译器发出68K汇编程序.这些示例很容易移植到更新的编程语言,我推荐Python.但是如果你想跟随示例,你将至少需要Turbo Pascal 5.5和68K汇编程序.和模拟器.该文本今天仍然具有相关性,使用这些旧技术非常有趣.我强烈推荐它作为任何人在编译器上的第一篇文章.好消息是像Python和Ruby这样的语言是开源的,你可以下载和研究C源代码,以便更好地理解它是如何完成的.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有