现有学校作业的替换项目

时间:2010-01-18 13:32:13

标签: java c++ objective-c

我有一个学校作业,包括为指定的简单语言编写扫描仪/词法分析器。扫描仪必须用C ++编程。

这种类型的任务自90年代开始使用,虽然仍然是有效的,但我认为它有点陈旧,有点无聊。

我已经获准提出新的编程任务。 它必须具有同样的难度,它可以是C ++,Objective C或Java。

我应该走哪条方向,具有相同的难度,但更现代化,适用于现代CS /生活。

由于

4 个答案:

答案 0 :(得分:9)

  

这种类型的任务......被认为有点陈旧,有点无聊。

我很好奇:谁认为这个过时了?你的教授?有人在解析社区中有名吗?或者你呢?

扫描仪和解析器仍然与专业软件开发相关,更重要的是,与计算科学相关。如果您想了解计算机,那么您应该了解扫描仪和解析器。

但是,如果你确信你应该做一些其他任务,为什么不编写一个工具来用C ++生成扫描程序?您可以提供一组定义语法标记的正则表达式作为输入,它将生成一个识别输入标记的C ++程序。然后,你永远不需要再次编写扫描仪了!

答案 1 :(得分:2)

为什么您认为Lexers / Parsers不再相关?我发现我每年至少写一次这样的东西。

答案 2 :(得分:1)

作为一名软件工程师,我会说你在CS课程中编写的任何代码都是你生命中可能写的最好的代码。一旦你进入这个行业,你可能只会写模块,而不是整个。

相信我。一旦你进入这个行业,并在这里花了一些时间,你只需要编写那些编译器,汇编器和词法分析器。所以请不要错过这个机会。

我相信编写这些“无聊”东西的挑战是值得的,一旦你开始设计这些东西,你会发现它们真的很有趣。

答案 3 :(得分:1)

编写扫描仪/词法分析器是我最喜欢的任务之一。我认为它也是最相关的之一。这是一个现实世界的问题。

我的猜测是,由于您正在扫描的简单编程语言,它不会感觉很现代。我个人会更改MarkdownTextile之类的简单编程语言。这两个都用于现代编程,并将教你类似的概念。