logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

用仓颉完成编译原理实验-消除左递归和左公共因子,求FIRST集和FOLLOW集

1. 非终结符排序:对非终结符进行字典顺序排序(或者按某个其他特性排序,如出现顺序等)。2. 遍历非终结符:对于每个非终结符 Ai:查找其候选式是否有其他非终结符(排在 Ai 前面的非终结符)作为开头:如果有,将候选式中该非终结符为首用该非终结符的产生式替代,从而将可能的间接左递归转化为直接左递归。如果没有,跳过该候选式。对所有直接左递归的候选式进行处理,⽣成新非终结符,并转换产生式,使其无左递归

文章图片
#算法#数据结构
用仓颉完成编译原理实验-正规式转NFA转DFA

虽然我只用到仓颉语言简单基础的语法,但能感觉到它融合了多种语言的便捷的写法,写起来是比较舒服的。实现子集构造算法,将NFA状态集合的子集映射为DFA的单个状态。设计合理的数据结构来表示NFA和DFA,应包括状态集、状态转移表、初始状态和接受状态的表示。步骤4:设计并实现DFA的数据结构,将其表示为状态集合、状态转换表、初始状态和接受状态。步骤5:模拟DFA,验证对给定输入字符串的接受性,确保DFA

文章图片
#算法#数据结构
到底了