๐ฎ
๐ฎ
The Ethereal
Describing the syntax of programming languages using conjunctive and Boolean grammars
December 07, 2020 ยท The Ethereal ยท ๐ arXiv.org
"No code URL or promise found in abstract"
Evidence collected by the PWNC Scanner
Authors
Alexander Okhotin
arXiv ID
2012.03538
Category
cs.FL: Formal Languages
Cross-listed
cs.PL
Citations
0
Venue
arXiv.org
Last Checked
2 months ago
Abstract
A classical result by Floyd ("On the non-existence of a phrase structure grammar for ALGOL 60", 1962) states that the complete syntax of any sensible programming language cannot be described by the ordinary kind of formal grammars (Chomsky's ``context-free''). This paper uses grammars extended with conjunction and negation operators, known as conjunctive grammars and Boolean grammars, to describe the set of well-formed programs in a simple typeless procedural programming language. A complete Boolean grammar, which defines such concepts as declaration of variables and functions before their use, is constructed and explained. Using the Generalized LR parsing algorithm for Boolean grammars, a program can then be parsed in time $O(n^4)$ in its length, while another known algorithm allows subcubic-time parsing. Next, it is shown how to transform this grammar to an unambiguous conjunctive grammar, with square-time parsing. This becomes apparently the first specification of the syntax of a programming language entirely by a computationally feasible formal grammar.
Community Contributions
Found the code? Know the venue? Think something is wrong? Let us know!
๐ Similar Papers
In the same crypt โ Formal Languages
๐ฎ
๐ฎ
The Ethereal
Supervisor Synthesis to Thwart Cyber Attack with Bounded Sensor Reading Alterations
๐ฎ
๐ฎ
The Ethereal
An Abstraction-Based Framework for Neural Network Verification
๐ฎ
๐ฎ
The Ethereal
Recurrent Neural Networks as Weighted Language Recognizers
๐ฎ
๐ฎ
The Ethereal
TeSSLa: Temporal Stream-based Specification Language
๐ฎ
๐ฎ
The Ethereal