• BNF巴科斯-诺尔范式


    概述

    BNF是描述编程语言的文法。自然语言存在不同程度的二义性。这种模糊、不确定的方式无法精确定义一门程序设计语言。必须设计一种准确无误地描述程序设计语言的语法结构,这种严谨、简洁、易读的形式规则描述的语言结构模型称为文法。最著名的文法描述形式是由Backus定义Algol60语言时提出的Backus-Naur范式(Backus-Naur Form, BNF)及其扩展形式EBNF。BNF能以一种简洁、灵活的方式描述语言的语法。具体内容可参考针对编译原理的书。

    BNF

    巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。
      在BNF中,双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
      在双引号外的字(有可能有下划线)代表着语法部分。
      < > : 内包含的为必选项。
      [ ] : 内包含的为可选项。
      { } : 内包含的为可重复0至无数次的项。
      | : 表示在其左右两边任选一项,相当于"OR"的意思。
      ::= : 是“被定义为”的意思
      "..." : 术语符号
      [...] : 选项,最多出现一次
      {...} : 重复项,任意次数,包括 0 次
      (...) : 分组
      | : 并列选项,只能选一个
      斜体字: 参数,在其它地方有解释
      下面是是用BNF来定义的Java语言中的For语句的实例:

    FOR_STATEMENT ::= 
          "for" "(" ( variable_declaration | 
      ( expression ";" ) | ";" ) 
          [ expression ] ";" 
          [ expression ] ";" 
          ")" statement
    
  • 相关阅读:
    虚拟设备 ide1:0 将开始断开
    虚拟机集群启动 某一台启动失败
    jeesite1,工具类,文件介绍
    line-clamp
    js中同名的函数的调用情况
    获取子页面iframe的点击事件及iframe跨域的交互
    Docker环境搭建入门
    软件工程课后作业:论我对百度搜索的看法
    第二阶段第十天12.10
    软件工程:用户场景描述
  • 原文地址:https://www.cnblogs.com/Neo007/p/7399659.html
Copyright © 2020-2023  润新知