EBNF形式的简单编程语言

问题描述 投票:0回答:1

我正在研究一种非常简单的编程语言的语法,我需要用(E)BNF形式编写它。我已经看过许多简单语言的例子,例如,只允许对数字/标识符进行操作,或者使用The Syntax of C in Backus-Naur Form等更大复杂性的例子。

我需要什么(是的,我用Googled搜索了很多)是一个更简单的例子,我可以看看,以便我可以理解一般的层次结构。具有变量声明,函数声明,循环,赋值,操作等的东西,但是比BNF中编写的所有C都小得多且简单得多。

我不是要求有人在这里写一个,因为这将是一项大工作,但如果有人能指出我的资源,那么我将非常感激。

我理解在BNF写一种语言的规则;我只是觉得我不知道从哪里开始以及如何订购语言。

compiler-construction bnf ebnf
1个回答
0
投票

(看起来你可能找到了你想要的东西,但是你 - 以及未来的读者 - 可能会发现以下内容很有用。)

来自哥本哈根大学的TorbenÆgidiusMorgensen所着的书Basics of Compiler Design包含了一种非常简单的语言,用于实现编译器和解释器。它的BNF如下:

Program --> Funs

Funs --> Fun
Funs --> Fun Funs

Fun --> TypeId ( TypeIds ) = Exp

TypeId --> *int* **id**
TypeId --> *bool* **id**

TypeIds --> TypeId
TypeIds --> TypeId , TypeIds

Exp --> num
Exp --> id
Exp --> Exp + Exp
Exp --> Exp = Exp
Exp --> if Exp then Exp else Exp
Exp --> id ( Exps ) 
Exp --> let id = Exp in Exp

Exps --> Exp 
Exps --> Exp , Exps

编写翻译是一种非常小而且非常容易的语言 - 对于你想做的事情,你不能变得更小,更务实。我推荐这本书以及它包含的练习。

© www.soinside.com 2019 - 2024. All rights reserved.