lin_cx 无数的计算机科学家不是吃饱了没事干耗费自己的天资去研究他们琢磨出这些东西就为了让大家听着牛逼
有些抽象出来的概念也是高效的工具吧
这里当作一个坑记录一下学习感受(在慢慢狗中)
词法分析部分对比传统处理逻辑处理和使用DFA状态转换矩阵处理效率差别应该比较大(待完善)
文法分析部分的生成式在编程语言的语法规则范式定义上有用到 感觉应该能更快上手一个编程语言吧(待完善)
#定义函数
funcdef ::= "def" funcname "(" [parameters] ")" ":" suite
parameters ::= defparameter ("," defparameter)*
defparameter ::= parameter ["=" expression]
parameter ::= identifier [":" expression]
#函数调用
atom ::= identifier "(" [arguments] ")"
#参数传递
arguments ::= positional_arguments ["," starred_and_keyword]
["," keyword_arguments]
["," double_starred]
| starred_and_keyword ["," keyword_arguments]
["," double_starred]
| keyword_arguments ["," double_starred]
| double_starred
positional_arguments ::= expression ("," expression)*
starred_and_keyword ::= starred_item ("," keyword_item)*
keyword_arguments ::= keyword_item ("," keyword_item)*
double_starred ::= "**" expression
starred_item ::= "*" expression
keyword_item ::= identifier "=" expression
阅读上述内容使用的概念工具应该是产生式(文法G定义四元组中的一部分)(具体如何将python语法套用到文法定义的四元组上目前还不清楚)
ps: 学习辅助环境-- 老师(chatgpt), 教材(经典的编译原理书,学校老师给的随便一个教材和老师作业), 讲义(中科大老师的课件(郑启龙)(链接之后找找), 辅助工具(词法分析辅助理解DFA, NFA, 正规式以及相互转换的用的是JFLAP)(待完善)