相信每個 programmer 都跟西傑一樣想過設計一種自己的編程語言,最近西傑就有機會要寫一個編譯器了。雖然在大學時已經讀過如何編寫一個編譯器,但要認真寫起上來還真的不容易,而且網上教寫編譯器的教材不多(尤其中文的),所以就把這次經驗記下來,疏理一下自己在開發過程中所學到的東西,也同時為互聯網增加一些有關編譯器這方面的中文資源吧。
相信每個 programmer 都跟西傑一樣想過設計一種自己的編程語言,最近西傑就有機會要寫一個編譯器了。雖然在大學時已經讀過如何編寫一個編譯器,但要認真寫起上來還真的不容易,而且網上教寫編譯器的教材不多(尤其中文的),所以就把這次經驗記下來,疏理一下自己在開發過程中所學到的東西,也同時為互聯網增加一些有關編譯器這方面的中文資源吧。
根據“TIOBE編程語言排行榜”(榜單雖然統計方式有侷限,但是仍然不失為一個比較好的參考),2010年PHP最高曾經在世界編程語言中排名第三。可見,PHP語言在PC互聯網時代的Web領域可謂叱咤風雲,擎天一柱。
什麼是繼承啊?答:別人白給你的過程就叫繼承。
為什麼要用繼承呢?答:撿現成的唄。
好吧,既然大家都想撿現成的,那就要學會怎麼繼承!
在瞭解之前,你需要先瞭解構造函數、對象、原型鏈等概念......
JS裡常用的兩種繼承方式:
對於那些熟悉基於類的面向對象語言(java或者c++)的開發者來說,JavaScript的語法是比較怪異的, 這是由於javascript是一門動態語言,而且它沒有類的概念
(雖然class
是個保留字,不能作為變量名來使用).
繼承方面,javascript中的每個對象都有一個內部私有的鏈接指向另一個對象 (或者為 null
),這個對象就是原對象的原型. 這個原型也有自己的原型, 直到對象的原型為null為止. 這種一級一級的鏈結構就稱為原型鏈.
jasmine是一個有名的javascript單元測試框架,它是獨立的「行為驅動開發」框架,提供了對javascript開發者來說相對容易使用的測試語法,可以幫助你輕鬆寫出自己的單元測試代碼。
WIKI:https://github.com/pivotal/jasmine/wiki
API: http://pivotal.github.com/jasmine/jsdoc/index.html
(Jasmine的API文件是用jsdoc生成的,關於jsdoc)
可以在下載頁面直接下載jasmine的源碼:https://github.com/pivotal/jasmine
還可以使用git下載(關於git的用法,可以看這裡http://progit.org/book/zh/ch1-4.html)
1
|
$ git clone https:\/\/github.com/pivotal/jasmine.git |
下載jasmine的源碼之後,可以看到目錄有一個example的文件夾,這裡就是我們要說的例子
還有一個文件夾lib,這裡放了運行測試案例所必須的文件
其中jasmine.js就是整個框架的核心代碼,
jasmine-html.js用來展示測試結果,jasmine.css用來美化測試結果。
當臨時需要時,我們都使用記事本來編輯一些代碼片段,想法,或部落格內容與待辦事項。最近我才知道,我們可以用我們的瀏覽器當成記事本。用 data URI 和html contenteditable屬性即可。
所有你需要做的是到瀏覽器的地址欄輸入下面的代碼:
data:text/html, <html contenteditable>
它會讓你的頁面就像記事本一樣能編輯。如果您希望您的內容可以被保存,用 Ctril+S即可將您的內容保存為HTML文件。
在2013年的Google I/O大會上,Google公司提出了一個新的UI框架,名為Polymer。Google稱Polymer框架代表著所有Web UI框架的未來。
Pure 是 Yahoo! 新近推出的一個基於 Normalize.CSS 的 CSS 框架,它沒有使用任何 JavaScript,只是 HTML 和 CSS。