我有一个学校作业,包括为指定的简单语言编写扫描仪/词法分析器。扫描仪必须用C ++编程。
这种类型的任务自90年代开始使用,虽然仍然是有效的,但我认为它有点陈旧,有点无聊。
我已经获准提出新的编程任务。 它必须具有同样的难度,它可以是C ++,Objective C或Java。
我应该走哪条方向,具有相同的难度,但更现代化,适用于现代CS /生活。
由于
答案 0 :(得分:9)
这种类型的任务......被认为有点陈旧,有点无聊。
我很好奇:谁认为这个过时了?你的教授?有人在解析社区中有名吗?或者你呢?
扫描仪和解析器仍然与专业软件开发相关,更重要的是,与计算科学相关。如果您想了解计算机,那么您应该了解扫描仪和解析器。
但是,如果你确信你应该做一些其他任务,为什么不编写一个工具来用C ++生成扫描程序?您可以提供一组定义语法标记的正则表达式作为输入,它将生成一个识别输入标记的C ++程序。然后,你永远不需要再次编写扫描仪了!
答案 1 :(得分:2)
为什么您认为Lexers / Parsers不再相关?我发现我每年至少写一次这样的东西。
答案 2 :(得分:1)
作为一名软件工程师,我会说你在CS课程中编写的任何代码都是你生命中可能写的最好的代码。一旦你进入这个行业,你可能只会写模块,而不是整个。
相信我。一旦你进入这个行业,并在这里花了一些时间,你只需要编写那些编译器,汇编器和词法分析器。所以请不要错过这个机会。
我相信编写这些“无聊”东西的挑战是值得的,一旦你开始设计这些东西,你会发现它们真的很有趣。
答案 3 :(得分:1)