我一直在想這個很長一段時間。已經有一大堆他們可以被重載,所以爲什麼不做到底,並允許自定義運算符?我認爲這可能是一個很好的補充。爲什麼C++不允許用戶定義的運算符?
我被告知這會使語言太難編譯。這讓我想知道,無論如何,C++不能真正被設計爲易於編譯,那麼它是否真的可撤銷?當然,如果你使用LR語法分析器和靜態表和文法,如
E → T + E | T
T → F * T | F
F → id | '(' E ')'
它不起作用。在Prolog中,通常使用運算符優先級解析器AFAIK進行分析,可以輕鬆定義新運算符,但語言要簡單得多。現在,語法顯然可以被重寫爲接受identifiers
在每一個操作符被硬編碼到語法中的地方。
還有什麼其他的解決方案和解析器方案,還有什麼其他的東西影響了設計決策?
你必須在我猜的地方畫線。是的,如果你曾經試圖編寫一個編譯器,你會明白它們並不容易編碼。 – Matt 2010-12-20 10:27:12