编译原理集成实验环境 Engintime CP Lab
来源:英真时代 | 作者:某某 | 发布时间: 2022-09-21 | 2063 次浏览 | 分享到:
北京英真时代科技有限公司为了满足国内高校提升编译原理实验教学水平的迫切需要,经过两年潜心研发,成功发布了“编译原理集成实验环境CP Lab”软件产品。CP Lab配套实验方案成熟,资料齐全,已经完全可以满足高等院校编译原理实验教学的要求。由于CP Lab对编译原理实验改革有着巨大的推动作用,一经推向市场,就受到了广大高校教师和学生的欢迎。


编译原理集成实验环境 Engintime CP Lab 简介

      北京英真时代科技有限公司为了满足国内高校提升编译原理实验教学水平的迫切需要,经过两年潜心研发,成功发布了“编译原理集成实验环境CP Lab”软件产品。CP Lab配套实验方案成熟,资料齐全,已经完全可以满足高等院校编译原理实验教学的要求。由于CP Lab对编译原理实验改革有着巨大的推动作用,一经推向市场,就受到了广大高校教师和学生的欢迎。

      编译原理集成实验环境CP Lab成功将手工编码、Lex和Yacc工具的使用、以及一个小型开源编译器TINY结合在一起,并为手工编码提供了可视化工具,其主要特点如下:

      

      CP Lab已经完全接入了 开放实验管理平台。首先,该平台可帮助用户系统管理实验中的各个环节。教师可通过浏览器随时随地访问该平台,可以高效管理实验课信息,并全面掌握学生的实验情况,还可以自动统计出勤情况,实时掌握实验进度,自动评分等功能。学生可通过浏览器访问该平台查看实验课信息,在线填写实验报告,下载已提交的作业。学生还可使用配套的实验软件完成试验任务,并通过网络自动向该平台提交实验数据和源代码。

         

      提供了一个可视化的、集演示与编程于一体的集成实验环境。CP Lab提供了一个用户界面和操作习惯都类似于Visual Studio的可视化IDE环境,操作简单,易学易用,可避免学生学习多种不同IDE环境,对学生在参加工作后使用Visual Studio进行软件开发有很大帮助。集成实验环境可直接在Windows上安装,实验室无需安装多种操作系统,可有效降低管理和维护成本。集成实验环境可以在学生还未编写任何源代码的情况下,对编译程序执行的过程进行演示,并采用可视化的方式实时显示数据的状态及变化情况,从而帮助学生深入理解编译原理相关概念及经典算法,并为学生编写源代码提供参考。例如,CP Lab在下图左侧窗口中显示了Yacc输入文件的内容,并在右侧窗口中显示了LALR(1)项目集合的DFA有向图。CP Lab还可以图形化的方式展示NFA、DFA、文法结构、语法分析图等,如第二幅图所示。


      教师在课堂上也可以方便的使用CP Lab提供的演示功能,将理论教学与实验教学相结合,可显著提高课堂教学效果,充分调动学生的兴趣和积极性。集成实验环境还支持 C源代码级的调试功能,可在源代码中设置断点或者单步调试源代码,并可随意查看、修改变量的值,这些功能可帮助学生查找源代码中存在的逻辑错误和异常行为。学生还可以使用集成实验环境提供的验证功能,快速、准确的检测自己编写的源代码是否可以正确执行,大大减轻了教师逐一检查学生实验结果的负担。集成实验环境还可以统计学生的实验活跃时间,为教师提供准确的实验课考勤依据。

      可接入开放实验管理平台。学生完成实验后,可非常方便的将编写的源代码提交到平台。教师可通过平台实时查看学生的出勤情况和实验完成进度,还可以在线查看学生提交的源代码,并使用自动评分功能为学生的实验进行打分。

      提供了一套精心设计的实验源代码。为了方便教师和学生使用,CP Lab提供了一套包含若干实验题目的成熟方案,并为每个实验题目都提供了配套的实验源代码,以及实验源代码的参考答案。这些源代码包括了若干手工编写的C源代码文件,以及Lex和Yacc工具使用的源代码文件,还有一个小型开源编译器TINY的源代码文件。涵盖了从词法分析、语法分析、语义分析、代码生成等所有重要的编译原理和算法,可以与主流的编译原理教材配套使用。这些源代码以模块化的方式进行组织,并配有完善的中文注释,可读性好,完全符合商业级的编码规范。CP Lab作为一个优秀的实验平台,提供了强大的灵活性和扩展性,不但可以在现有实验题目的基础上进行简单定制,也完全可以定制出新的实验题目,从而与新教材配套使用。

      提供了完善的配套资料。在编译原理实验教学的各个环节,CP Lab都提供了完善的配套资料。这些资料包括文档、源代码参考答案、幻灯片、面向教师的培训录像以及面向学生的教学录像等。在这些配套资料的帮助下,教师可以方便、灵活的组织学生开展编译原理实验。部分核心文档还提供Word版本,方便二次编辑。所有配套资料都可以从CP Lab的产品光盘中获得。主要的文档资料包括《CP Lab 编译原理实验指导》《CP Lab编译原理实验教师参考》、《Engintime CP Lab 安装与使用指南》等。

    

      希望我们的努力能够帮助您培养出基础知识更扎实的学生。

实验题目清单

一、实验环境的使用(正则表达式到NFA)

  • 熟悉编译原理集成实验环境CP Lab的基本使用方法。

  • 掌握正则表达式和NFA的含义。

  • 实现正则表达式到NFA的转换。

、NFA 到 DFA

  • 掌握 NFA 和 DFA 的概念。

  • 掌握ε-闭包的求法和子集的构造方法。

  • 实现 NFA 到 DFA 的转换。

三、使用Lex自动生成扫描程序

  • 掌握 Lex输入文件的格式。

  • 掌握使用Lex自动生成扫描程序的方法。

四、消除左递归(无替换)

  • 了解在上下文无关文法中的左递归的概念。

  • 掌握直接左递归的消除算法。

五、消除左递归(有替换)

  • 了解在上下文无关文法中的左递归的概念。

  • 掌握直接左递归、一般左递归的消除算法。

六、提取左因子

  • 了解在上下文无关文法中的左因子的概念。

  • 掌握提取左因子的算法。

七、First集合

  • 了解在上下文无关文法中的First集合的定义。

  • 掌握计算First集合的方法。

八、Follow集合

  • 了解在上下文无关文法中的First集合和Follow集合的定义。

  • 掌握计算First集合和Follow集合的方法。

九、Yacc分析程序生成器

  • 掌握 Yacc输入文件的格式。

  • 掌握使用Yacc自动生成分析程序的方法。

十、符号表的构建与使用

  • 了解符号表的结构。

  • 掌握符号表的插入、查找和删除等基本操作。

十一、三地址码转换为P-代码

  • 了解三地址码和P-代码的定义。

  • 实现三地址码到P-代码的转换。

十二、GCC编译器案例综合研究

  • 了解GCC提供的C编译器。

  • 掌握GCC提供的C编译器在32位Windows操作系统上产生的汇编代码,及C语言运行时环境。

课程设计题目清单

1、编写一个程序,可以根据输入的正则表达式生成NFA,然后将NFA转换为最小化的DFA,最后使用得到的DFA完成字符串匹配。
2、参考Lex生成TINY语言扫描程序的过程,使用Lex为C-Minus语言生成一个扫描程序。
3、编写一个程序,可以为输入的BNF消除左递归或提取左因子,然后根据BNF计算出First集合和Follow集合,从而构造一个LL(1)分析表,最终实现一个表驱动的LL(1)分析算法。
4、参考Yacc生成TINY语言语法分析程序的过程,使用Yacc为C-Minus语言生成一个语法分析程序。
5、根据表达式的BNF,使用Yacc输出表达式的Modula-2转换式。
6、编写一个程序,可将输入的三地址码转换为P-代码,还可将输入的P-代码转换为三地址码。


高校教师可免费使用 CP Lab,现在就联系我们吧!