我有一个学校作业,其中包括为指定的简单语言编写扫描仪/词法分析器。扫描仪必须用C++编程。现有学校作业的替换项目
这种类型的任务自90年代以来一直使用,虽然仍然是一个有效的excersise,我认为它有点过时和有点无聊。
我已获得许可提出新的编程任务。它必须有同样的难度,它可以在C++,Objective C或Java中使用。
我该走的是什么方向,有相同的难度,但更现代一点,适用于现代CS /生活。
谢谢
我有一个学校作业,其中包括为指定的简单语言编写扫描仪/词法分析器。扫描仪必须用C++编程。现有学校作业的替换项目
这种类型的任务自90年代以来一直使用,虽然仍然是一个有效的excersise,我认为它有点过时和有点无聊。
我已获得许可提出新的编程任务。它必须有同样的难度,它可以在C++,Objective C或Java中使用。
我该走的是什么方向,有相同的难度,但更现代一点,适用于现代CS /生活。
谢谢
这种类型的任务...被认为是有点过时和有点无聊。
我很好奇:谁认为这个陈旧?你的教授?有人在解析社区中显着?或者你?
扫描仪和解析器仍然与专业软件开发相关,更重要的是与计算科学相关。如果你想了解电脑,那么你应该了解扫描仪和解析器。如果你确信你应该做一些其他的任务,为什么不写一个工具来生成C++中的扫描器呢?您可以提供一组正则表达式来定义语法的标记,它可以提供一个C++程序来识别输入标记。然后,你永远不需要再次写一个扫描仪!
对于该建议+1。虽然对于像OP这样聪明的人来说,这不会是一个挑战;-) – 2010-01-18 15:47:25
这不是我遇到的问题,编写扫描仪绝对是一个挑战。问题是其他学生发现它很无聊(我会)。这是第四年的任务,第二年有一些项目,这些项目更有趣并且涵盖相同的概念。 即将进入第四年,如斯蒂芬C恰当地注意到的那样,对于许多学生来说这样做是无聊的。 另外,你在哪里阅读,我认为扫描仪和解析器是不相关的? 事实是,这个任务不符合当前的项目和类,这是一个过去的遗留问题。 – bing 2010-01-18 17:23:12
所以,如果你认为他们是相关的,你会说“我想跳过相关知识,因为我觉得它很无聊”?也许你不应该再学习CS。 – jalf 2010-01-18 17:59:57
为什么你认为Lexers/Parsers不再相关?我发现我至少每年都会按照这些原则写一些内容。
作为一名软件工程师,我会说你在CS课程中编写的任何代码都是你生活中可能编写的最好的代码。一旦你进入这个行业,你可能只会写模块而不是整个东西。
相信我。一旦你进入这个行业并在这里待了一段时间,你只需要编写这些编译器,汇编器,词法分析器。所以请不要错过这个机会。
我相信在编写这些“无聊”的东西时遇到的挑战是值得的,一旦你开始设计这些东西,你会发现它们真的很有趣。
这个作业的课程名称是什么? – laura 2010-01-18 13:35:15
在学校做无聊练习是至关重要的,这样你就可以学习编写无聊的程序,当你进入劳动力队伍时:-) – 2010-01-18 14:17:27
听起来像无聊的手段,以帮助你:-) – 2010-01-18 17:45:40