2010-01-18 66 views
3

我有一個學校作業,其中包括爲指定的簡單語言編寫掃描儀/詞法分析器。掃描儀必須用C++編程。現有學校作業的替換項目

這種類型的任務自90年代以來一直使用,雖然仍然是一個有效的excersise,我認爲它有點過時和有點無聊。

我已獲得許可提出新的編程任務。它必須有同樣的難度,它可以在C++,Objective C或Java中使用。

我該走的是什麼方向,有相同的難度,但更現代一點,適用於現代CS /生活。

謝謝

+2

這個作業的課程名稱是什麼? – laura 2010-01-18 13:35:15

+3

在學校做無聊練習是至關重要的,這樣你就可以學習編寫無聊的程序,當你進入勞動力隊伍時:-) – 2010-01-18 14:17:27

+1

聽起來像無聊的手段,以幫助你:-) – 2010-01-18 17:45:40

回答

9

這種類型的任務...被認爲是有點過時和有點無聊。

我很好奇:誰認爲這個陳舊?你的教授?有人在解析社區中顯着?或者你?

掃描儀和解析器仍然與專業軟件開發相關,更重要的是與計算科學相關。如果你想了解電腦,那麼你應該瞭解掃描儀和解析器。如果你確信你應該做一些其他的任務,爲什麼不寫一個工具來生成C++中的掃描器呢?您可以提供一組正則表達式來定義語法的標記,它可以提供一個C++程序來識別輸入標記。然後,你永遠不需要再次寫一個掃描儀!

+3

對於該建議+1。雖然對於像OP這樣聰明的人來說,這不會是一個挑戰;-) – 2010-01-18 15:47:25

+0

這不是我遇到的問題,編寫掃描儀絕對是一個挑戰。問題是其他學生髮現它很無聊(我會)。這是第四年的任務,第二年有一些項目,這些項目更有趣並且涵蓋相同的概念。 即將進入第四年,如斯蒂芬C恰當地注意到的那樣,對於許多學生來說這樣做是無聊的。 另外,你在哪裏閱讀,我認爲掃描儀和解析器是不相關的? 事實是,這個任務不符合當前的項目和類,這是一個過去的遺留問題。 – bing 2010-01-18 17:23:12

+0

所以,如果你認爲他們是相關的,你會說「我想跳過相關知識,因爲我覺得它很無聊」?也許你不應該再學習CS。 – jalf 2010-01-18 17:59:57

2

爲什麼你認爲Lexers/Parsers不再相關?我發現我至少每年都會按照這些原則寫一些內容。

1

作爲一名軟件工程師,我會說你在CS課程中編寫的任何代碼都是你生活中可能編寫的最好的代碼。一旦你進入這個行業,你可能只會寫模塊而不是整個東西。

相信我。一旦你進入這個行業並在這裏待了一段時間,你只需要編寫這些編譯器,彙編器,詞法分析器。所以請不要錯過這個機會。

我相信在編寫這些「無聊」的東西時遇到的挑戰是值得的,一旦你開始設計這些東西,你會發現它們真的很有趣。

1

寫一個掃描儀/詞法分析器是我最喜歡的任務之一。我認爲它也是最相關的一個。這是一個現實世界的問題。

我的猜測是,它並不覺得現代,因爲你正在掃描的簡單編程語言。我個人會更換簡單的編程語言,如MarkdownTextile。這兩個都用於現代編程,並會教你類似的概念。