巴克斯诺尔范式 && 乔姆斯基谱系,词法 && 语法

Posted ssaylo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巴克斯诺尔范式 && 乔姆斯基谱系,词法 && 语法相关的知识,希望对你有一定的参考价值。

巴科斯诺尔范式

我的理解:

1、 词法, 定义组成语言的单词, 是语言中最小单元。

2、 语法, 将单子组织成有含义的短语和句子的规则。

3、 语义, 结合上下文,可以推导出语句的真实含义。

词法分析实现:

http://www.cnblogs.com/yanlingyin/archive/2012/04/17/2451717.html

正则表达式的词法分析:

http://www.cnblogs.com/naturemickey/p/3667571.html

“a”

"b"

:= "a"+ | "b"+
:= "a"+ | "b"+

abababababbbbbababaaaa

= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
= "0" | (("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")+ *)

0
1 093023412

// 加法表达式的定义
= +
= "+"
// 然后把上面的两个步骤揉在一起
= | "+"

// 四则运算
// 加法表达式 支持连+
= | "+" | "-"
// 乘法表达式 支持连* 除法表达式 支持连/
= | "*" | "/"
// 逻辑表达式
= | "||" | "&&"

// 左项: 1 右项: 2 * 3
1 + 2 * 3

// // // // // 总结 // // // // //

= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

= "0" | (("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")+ *)

= | "(" ")"

= | "+" | "-"

= | "*" | "/"

// // // // // 总结完毕 // // // // //

// // // BNF // // //

::= | * | / |

:: | "+" | "-"

// 咱们现在还不能验证对不对 只能上代码才能验证
// 等下自己还需要再写一遍

// 无限制相关文法
::= "c" |

// 上下文相关文法 什么意思呢 "?" 和 "!"的位置是会动的
?
! = ?!
:: "x"
"a" "c" :: "a" "x" "c"

// "四则运算" xxxxxxx是不会动的xxxxxxxxx ""
"四则运算" <LogicalExpression> "" = "四则运算" (<LogicalExpression> = <AdditiveExpression> | <LogicalExpression> "||" <AdditiveExpression> | <LogicalExpression> "&&" <AdditiveExpression>)""

// 上下文无关文法
// 这里有一个注意事项 如果有递归 是一定出现在左边的 下面这个是对的
::= ?
// 这里也有地柜,但是这种就是不对的,
javascript也是这个样子的。。。
::= ?

////////////////////////////// 这里winter老师跟我们留了一个optional作业 ///////////////////
////////////////////////////// 把上面的用正则表达式写一下 ///////////////////
////////////////////////////// 写倒是想写,问题还不会正则呀,先留着一个坑好了 ///////////////////

// 用DecimalNumber写一下正则
// /0|[1-9][0-9]/ 十进制正则表达式 正则表达式扫描 词法分析 然后建立语法树 剪剪枝干 把不需要的部分去把它干掉 然后就变成了抽样语法树
= /0|[1-9][0-9]
/

// 这里的get是 无限制文法 ? 上下文相关文法? 上下文无关文法? 正则文法?
// get是 上下文相关文法 开始我给出的答案是 上下文无关文法
// JavaScript大部分就是上下文相关的文法
{
get a {return 1},
get: 1
}



































以上是关于巴克斯诺尔范式 && 乔姆斯基谱系,词法 && 语法的主要内容,如果未能解决你的问题,请参考以下文章

四种类型的文法总结

更强大的计算机(图灵机)能否解决乔姆斯基层次结构中功能较弱的机器可以很好地解决的问题

乔姆拉星岩

MM & 萨克斯

乔姆拉!:将模块放置在代码中的任意位置

乔姆拉!:在代码中的任意位置放置位置