FSM 语言入门:语法与应用详解
传统课程问题与 FSM 语言的引入
在传统的形式语言和自动机理论课程中,学生往往只进行理论上的算法设计,在纸面上完成算法和定理的推导,而不实际实现算法。这样一来,如果算法存在漏洞,尤其是对于学生而言,这些漏洞很难被发现,并且定理证明中也可能存在相应的错误,这与计算机科学教育强调实践和反馈的理念背道而驰。
作为计算机科学专业的学生,我们接受过设计和实现算法的训练,单元测试和运行时错误能为我们的实现提供即时反馈,让我们有机会在提交作业评分之前进行修正。而如果只设计算法却不实现,就很难做到这一点。
有一种新颖的方法,即使用一种名为 FSM(Functional State Machines)的领域特定语言。FSM 语言允许我们在编写定理或提交作业之前,设计、编程、测试和调试算法,充分发挥我们作为计算机科学学生的训练和经验。如果你之前使用过 Racket 或 Lisp 家族的其他编程语言,那么你对 FSM 语言的基本语法应该不会太陌生。
FSM 语法基础
1. 样板代码
编写 FSM 程序时,每个程序的第一行必须是:
#lang fsm
这行代码告知 DrRacket 所使用的编程语言是 FSM。除了 FSM 的基本原语外,该语言还提供了来自 rackunit 的测试功能。你可以在 DrRacket 的帮助文档中搜索 rackunit,了解编写单元测试的相关功能。在整个学习过程中,一个完整的程序必须包含单元测试。
超级会员免费看
订阅专栏 解锁全文
706

被折叠的 条评论
为什么被折叠?



