解釋器是什么 能否用JS實現(xiàn)一個CSS解釋器?
能否用JS實現(xiàn)一個CSS解釋器?任何可以被JS重寫的東西都會被JS重寫,更不用說解析器了,它已經(jīng)被重復(fù)實現(xiàn)了n次。學習過編譯原理的學生都知道解析器的理論已經(jīng)非常成熟?,F(xiàn)成的模板可以用任何語言實現(xiàn)。更重
能否用JS實現(xiàn)一個CSS解釋器?
任何可以被JS重寫的東西都會被JS重寫,更不用說解析器了,它已經(jīng)被重復(fù)實現(xiàn)了n次。學習過編譯原理的學生都知道解析器的理論已經(jīng)非常成熟。現(xiàn)成的模板可以用任何語言實現(xiàn)。更重要的是,JS
C語言實際上是一種相對“老”和“低級”的語言。其執(zhí)行效率僅次于匯編語言。
它之所以古老是因為C語言出現(xiàn)得很早。
盡管FORTRAN和COBOL比C語言出現(xiàn)得早,但現(xiàn)代主流操作系統(tǒng)(windows、Mac OS、Linux、IOS、Android、Unix)都是從C語言中誕生的。
最根本的原因是C語言被設(shè)計用來同時編寫匯編語言。從理論上講,它可以用外匯來表示。匯編語言是最有效的語言。
所以Python是用C語言編寫的也就不足為奇了。它與能否生成exe無關(guān)。
Exe文件是Windows平臺的專用格式。最簡單的exe是com可執(zhí)行文件。EXE文件實際上由引導加載程序和解釋器組成。
由Python語言生成的代碼只能通過引導加載程序和解釋器作為EXE文件執(zhí)行。
因此Python生成EXE文件并不困難。只是它是否愿意提供的問題。
既然Python是用C實現(xiàn)的,那為什么Python不能直接生成exe呢?
我曾經(jīng)為微軟工作,我認識了比爾·蓋茨。應(yīng)該說,在他的時代,他的編程能力是相當不錯的。一個可以在PC機上寫basic的商業(yè)翻譯是相當不錯的。最重要的是遠見。我記得,反微軟陣營同時推出了兩個利器,一個是sun的Java,另一個是Oracle的網(wǎng)絡(luò)PC(沒有硬盤)。他說不能低估Java。微軟已經(jīng)有很多種語言,但是Java的“運行時”已經(jīng)超越了語言的概念。這是一個具有無限擴張可能性的生態(tài),我們必須認真對待。而網(wǎng)絡(luò)PC純粹是自毀概念炒作,后來發(fā)生的事情,真的如他所說,不得不佩服。