2、FSM 语言入门:语法与应用详解

FSM 语言入门:语法与应用详解

传统课程问题与 FSM 语言的引入

在传统的形式语言和自动机理论课程中,学生往往只进行理论上的算法设计,在纸面上完成算法和定理的推导,而不实际实现算法。这样一来,如果算法存在漏洞,尤其是对于学生而言,这些漏洞很难被发现,并且定理证明中也可能存在相应的错误,这与计算机科学教育强调实践和反馈的理念背道而驰。

作为计算机科学专业的学生,我们接受过设计和实现算法的训练,单元测试和运行时错误能为我们的实现提供即时反馈,让我们有机会在提交作业评分之前进行修正。而如果只设计算法却不实现,就很难做到这一点。

有一种新颖的方法,即使用一种名为 FSM(Functional State Machines)的领域特定语言。FSM 语言允许我们在编写定理或提交作业之前,设计、编程、测试和调试算法,充分发挥我们作为计算机科学学生的训练和经验。如果你之前使用过 Racket 或 Lisp 家族的其他编程语言,那么你对 FSM 语言的基本语法应该不会太陌生。

FSM 语法基础
1. 样板代码

编写 FSM 程序时,每个程序的第一行必须是:

#lang fsm

这行代码告知 DrRacket 所使用的编程语言是 FSM。除了 FSM 的基本原语外,该语言还提供了来自 rackunit 的测试功能。你可以在 DrRacket 的帮助文档中搜索 rackunit,了解编写单元测试的相关功能。在整个学习过程中,一个完整的程序必须包含单元测试。

2. 值表达式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值