Traditionally, parsing has been a laborious and error-prone component of compiler development, and most parsers for full industrial programming languages are still written by hand. The author [Zim22] shows that automatic parser generation can be practical, via a number of new innovations upon the standard LR paradigm of Knuth et al. With this methodology, we can automatically generate efficient parsers for virtually all languages that are intuitively "easy to parse". This includes Golang 1.17.8 and Python 3.9.12, for which our generated parsers are, respectively, 1.2x and 4.3x faster than the standard parsers. This document is a companion technical report which describes the software implementation of that work, which is available open-source at https://github.com/jzimmerman/langcc.
翻译:传统上,分类一直是编纂者发展过程中一个困难和容易出错的部分,而大多数工业全面编程语言的剖析员仍然是手写的。作者[Zim22]表明,通过对Knuth等人的标准LR范式进行一些新的创新,自动的剖析员生成可能是实用的。通过这种方法,我们可以自动为几乎所有直觉“容易粗略”的语言生成高效的剖析员。这包括戈兰格 1.17.8 和Python 3.9.12, 我们制作的剖析员比标准剖析员分别快1.2x和4.3x。这份文件是一份配套技术报告,描述了这项工作的软件实施情况,可在https://github.com/jzimmerman/lanchcc查阅。