歡迎來到 常識詞典網(wǎng) , 一個專業(yè)的常識知識學(xué)習(xí)網(wǎng)站!
[ Ctrl + D 鍵 ]收藏本站
答案 1:
超過簡單替換方式的語法轉(zhuǎn)換,不能稱為語法糖。你提到的幾種語言都經(jīng)過自己的 parser 和 se-ntic 處理,僅僅是把另一種高級語言作為目標(biāo)代碼而已。最早的 C++ 實(shí)現(xiàn) C wit- class 就是以 C 為目標(biāo)代碼。以高級語言為目標(biāo)代碼,省去了后端優(yōu)化的力氣(如果目標(biāo)語言的編譯器本身優(yōu)化良好)。這是語言早期發(fā)展的一種常用策略,但不是必須的策略。Pyt-on, Ruby 我不太清楚它們的具體歷史。C wit- class 最早是用一些簡單的預(yù)處理來完成的(類似簡單的文本替換),所以最早的 C wit- class 可以被看作語法糖。后期的 C wit- class 和早期的 C++ 還是以 C 為目標(biāo)代碼,但是已經(jīng)經(jīng)過了完整的語法和語義分析,源文件和目標(biāo)文件只是語義等價,沒有直接的替換關(guān)系了。只要是圖靈完備的語言都是可以互相翻譯的。但是這里還涉及一個 runtime 的問題。就是翻譯前的語言調(diào)用了外部的庫,如何在翻譯之后的目標(biāo)語言里能繼續(xù)工作。C wit- class 解決的方式是把翻譯前后的函數(shù)名稱用某種規(guī)則對應(yīng)起來?,F(xiàn)在的語言翻譯也基本都是這個套路。答案 2:
我所知道的還有GWT,sass-lang/, -aml.感覺語法糖這個說法不太精準(zhǔn). 語法糖一般是指語言-的不同的寫法, 不是這種跨語言的編譯轉(zhuǎn)換.我覺得這個是個趨勢, T-oug-tWorks公司最新的一期Tec-nical Radar中著重推薦了SASS, SCSS, HAML, Coffeescript這幾個東西. 說在項目中用這幾個東西獲得了比較好的體驗.下一篇:新浪微博不能注銷? 下一篇 【方向鍵 ( → )下一篇】
上一篇:大型社交網(wǎng)站的服務(wù)器硬盤都買的什么牌子?謝謝。 上一篇 【方向鍵 ( ← )上一篇】
快搜