目前我在一個源代碼plagiarims檢測項目,我實際上使用輸入文件(源代碼文件)屬性的不同方面來檢測學生作業中的剽竊。例如,我現在使用(標識符/變量的數量,使用的方法數量,代碼行數)以及其他一些屬性來表示每個源代碼文件。Java源代碼屬性計數檢測
但是,當我嘗試計算使用的變量數時,一個問題是如何確定變量是否已被使用。因爲學生可以故意放置一些標識符來掩蓋剽竊。然而,當我試圖解決這個問題時,我發現這真的很難。做到這一點的一種方法是在java中使用正則表達式來處理查找標識符,但找到它們後,我堅持如何檢查使用情況。 (更重要的是,在此之後,我仍然需要找出是否調用java方法。)因此編寫我自己的正則表達式版本可能非常複雜。
我知道在一些像NetBeans一樣的IDE中編輯器可以立即發現變量是否被使用並且強調它。所以我想知道是否有任何檢查使用或不使用變量的好方法。
關於如何檢查變量的任何建議都會很好!
想到的
我的教授的確建議我編寫自己的正則表達式或'編譯器'版本太幼稚了,並告訴我看一些「編譯器編譯器」,但是在我搜索了一下之後,發現了lex和yacc。沒有太多關於編譯器設計的知識,經過一番閱讀後我就迷失了。 – Alex 2012-02-02 07:23:58