搜尋

隨機推薦

23 十一月 2010
12 八月 2013
23 十一月 2010
24 十二月 2010

上回提到,我們要寫一個 Recursive descent parser,從 Scanner 一直讀 Token 進來,並建立一棵 Parse tree。在建立途中,我們還用了 lookahead 的技巧,就是偷看下一個 Token 但是不會佔用它,原因是我們需要用它來判斷下一步怎麼走,但是我們又不能用掉它,否則到下一步時我們就用不到了。現在我們就來完成餘下的部份吧!

繼續上一節未完成的 Scanner 吧,上一節我們寫好了一個 Reader,可以逐個逐個字元讀取,有需要時又可以退回 n 個字元之後再讀(本節將會使用這個功能)。另外,上一節亦寫好了一個簡單的 Scanner,可以讀取七款單字元 Token,並忽略其他字元。本節將會教大家如何建立多字元 Token,過程將會利用 FSM 來分析字元,忘記了什麼是 FSM 的朋友請到上一節回顧一下嚕。

寫 Compiler 第一步通常都是先寫 Scanner,什麼是 Scanner 呢?這裡只給你初步概念,詳細解釋在維基看吧。試想像有一句英文句子(例子:”The quick brown fox jumps over the lazy dog” is an English-language pangram.),人類看英文的方法就是逐個逐個詞語地看,電腦怎樣才能知道要跳過 ” 雙引號才能讀取第一個詞語呢?那就是要靠 Scanner 來分析了,Scanner 會逐個逐個字元讀進來並且在“適當時候”把字元合成一組詞語供後邊的 Parser 做其他處理工作。

相信每個 programmer 都跟西傑一樣想過設計一種自己的編程語言,最近西傑就有機會要寫一個編譯器了。雖然在大學時已經讀過如何編寫一個編譯器,但要認真寫起上來還真的不容易,而且網上教寫編譯器的教材不多(尤其中文的),所以就把這次經驗記下來,疏理一下自己在開發過程中所學到的東西,也同時為互聯網增加一些有關編譯器這方面的中文資源吧。

西傑在開發過程中經常參考 Actionscript 編譯器的 source code(用Java 寫的),大家有興趣可以看看這裡(在 /trunk/modules/asc 裡), 是 open source 的

http://i.imgur.com/Ie41hDj.png

 

消息隊列處理後台任務帶來的問題

項目中經常會有後台運行任務的需求,比如發送郵件時,因為要連接郵件服務器,往往需要5-10秒甚至更長時間,如果能先給用戶一個成功的提示信息,然後在後台慢慢處理發送郵件的操作,顯然會有更好的用戶體驗。

為了實現類似的需求,Web項目中一般的實現方法是使用消息隊列(Message Queue),比如MemcacheQRabbitMQ等等,都是很著名的產品。

http://i.imgur.com/7JtSNUu.png

PHP語言的排名變化

根據“TIOBE編程語言排行榜”(榜單雖然統計方式有侷限,但是仍然不失為一個比較好的參考),2010年PHP最高曾經在世界編程語言中排名第三。可見,PHP語言在PC互聯網時代的Web領域可謂叱咤風雲,擎天一柱。 

 

Preview

目前主流的電腦顯示器解析度是1920x1080,也就是常說的FHD標準,不過在智能手機都開始朝2560x1440前進了,PC顯示器顯然還需要更進一步的強化,下一代的標準就是4K解析度,也就是Utlra HD標準。今年以來,戴爾、聯想、華碩、三星等公司紛紛推出廉價型4K顯示器,最便宜的只有4000多即可買到,預計今年底明年初就能降到3000元內,用戶也更容易接受。

4K對我們來說不僅是一次解析度升級,其影響遠遠比之前1680x1050解析度升級到1920x1080還要大,從應用體驗、UI優化及性能上都提出了更嚴峻的挑戰,更重要的是4K即將來臨之前,很多人對4K尚無清晰的認識。從本文開始,超能網也會推出一系列有關4K解析度的科普文章,從4K顯示器到4K電視,從4K基礎知識再到4K視頻、遊戲應用皆有涉及。

Zend Framework 3框架即將推出 支持PHP7_天極yesky軟件頻道

近日PHP開發框架Zend Framework透露未來技術計畫,表示將在2015年第三季度推出Zend Framework的第3版。

  新版框架將支持新一代的PHP 7語言,可同時用於開發網頁及移動應用,同時改善了效能及提高重複利用性。例如Zend Framework 3將採取松耦合架構的設計,目標是讓用戶可以獨立使用不同組件,組件與組件之間幾乎不存在互相依賴的關係,Zend Framework稱此為Use-At-Will架構。  

當你第一次嘗試瞭解搜索引擎是如何工作的時候,很可能會不知道從哪裡開始。下文中我給出了很多SEO方面的建議。

雖然當你覺得你已經瞭解優化方法之後,Google又會發佈新的搜索算法讓你再次一無所知。但是如果你是一個Web開發者,你有必要道一些基礎的知識從而讓你的網站更容易被用戶看到,這裡應該有一些你感興趣的東西。

Please publish modules in offcanvas position.