Compiler design courses usually require students to build a small compiler as the course project to help students understand practical issues in compiler development. These projects use parser generators extensively to develop the front end. However, since parser generators are created for professional compiler developers, they assume that the end-user has complete knowledge of the theory of parsing. Since the students learn the theory of parsing almost simultaneously, they are unable to make use of the error messages and the diagnostics provided by these tools. Various teaching tools have been developed to overcome this issue by making the process of parsing interactive and providing user-friendly messages. In this paper, we present an experience and comparison report for teaching tools that explain the process of parsing, such as LL(1), LR(0), ParseIT, and JFLAP. We found that these tools, except ParseIT, focus on the practical aspects of the compiler design but do not help students connect with the theoretical concepts. On the other hand, ParseIT uses short quizzes and auto-generated examples to help students understand the theoretical aspects of the course, but it is relatively difficult to use.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

A Study of Teaching Tools for Parsing

  • Tushar Gautam,
  • Nimisha Agarwal,
  • Amey Karkare

摘要

Compiler design courses usually require students to build a small compiler as the course project to help students understand practical issues in compiler development. These projects use parser generators extensively to develop the front end. However, since parser generators are created for professional compiler developers, they assume that the end-user has complete knowledge of the theory of parsing. Since the students learn the theory of parsing almost simultaneously, they are unable to make use of the error messages and the diagnostics provided by these tools. Various teaching tools have been developed to overcome this issue by making the process of parsing interactive and providing user-friendly messages. In this paper, we present an experience and comparison report for teaching tools that explain the process of parsing, such as LL(1), LR(0), ParseIT, and JFLAP. We found that these tools, except ParseIT, focus on the practical aspects of the compiler design but do not help students connect with the theoretical concepts. On the other hand, ParseIT uses short quizzes and auto-generated examples to help students understand the theoretical aspects of the course, but it is relatively difficult to use.