Perl被認爲是通用編程語言嗎?Perl提供的其他語言不支持哪些編譯時功能?
Perl的閱讀有關它具有圖靈完全語法解析,因爲可通過在編譯階段執行的運行時代碼的影響。[41]因此,Perl不能由直接的Lex/Yacc詞法分析器/解析器組合來分析。相反,解釋器實現自己的詞法分析器,它與修改過的GNU野牛分析器進行協調,以解決語言中的歧義問題。
通常會說「只有perl可以解析Perl」,這意味着只有Perl解釋器(perl)才能解析Perl語言(Perl),但即使這樣也不是真的。由於Perl解釋器可以在其編譯階段模擬圖靈機,因此需要確定停機問題以便在每種情況下完成解析。這是一個長期以來的結果,暫停問題是不可判定的,因此甚至連perl都不能解析Perl。 Perl使得用戶可以在自己的編譯階段訪問其完整的編程能力。理論純度方面的成本很高,但實際的不便似乎很少見。
所以,它說,雖然Perl有圖靈完整的徽章,它與其他語言不同,因爲給了「在自己的編譯階段,以充分發揮其編程能力的用戶訪問」。那是什麼意思? Perl在編譯階段爲我提供了哪些編程能力?
社區Wiki? – fredley 2010-08-26 13:39:34
這是一個非主觀答案的恰當問題。 – muhmuhten 2010-08-26 13:42:54
這個維基百科條目需要編輯。即使編譯完成,編譯器也不需要在編譯過程中「決定」暫停問題。這是循環邏輯。 – dawg 2010-08-26 13:49:08