自從《序》胡扯了快一個月之后,終於迎來了正片。之所以系列文章叫《看實例學編譯原理》,是因為整個系列會通過帶大家一步一步實現Tinymoe的過程,來介紹編譯原理的一些知識點。 但是第一個系列還沒到開始處理Tinymoe源代碼的時候,首先的跟大家講一講我設計Tinymoe的故事。為什么這種東西 ...
在 如何設計一門語言 里面,我講了一些語言方面的東西,還有痛快的噴了一些XX粉什么的。不過單純講這個也是很無聊的,所以我開了這個 跟vczh看實例學編譯原理 系列,意在科普一些編譯原理的知識,盡量讓大家可以在創造語言之后,自己寫一個原型。在這里我拿我創造的一門很有趣的語言 https: github.com vczh tinymoe 作為實例。 商業編譯器對功能和質量的要求都是很高的,里面大量的東 ...
2014-01-19 01:22 22 12293 推薦指數:
自從《序》胡扯了快一個月之后,終於迎來了正片。之所以系列文章叫《看實例學編譯原理》,是因為整個系列會通過帶大家一步一步實現Tinymoe的過程,來介紹編譯原理的一些知識點。 但是第一個系列還沒到開始處理Tinymoe源代碼的時候,首先的跟大家講一講我設計Tinymoe的故事。為什么這種東西 ...
文章中引用的代碼均來自https://github.com/vczh/tinymoe。 實現Tinymoe的第一步自然是一個詞法分析器。詞法分析其所作的事情很簡單,就是把一份代碼分割成若干個token,記錄下他們所在文件的位置,以及丟掉不必要的信息。但是Tinymoe是一個按行分割的語言 ...
文章中引用的代碼均來自https://github.com/vczh/tinymoe。 看了前面的三篇文章,大家應該基本對Tinymoe的代碼有一個初步的感覺了。在正確分析"print sum from 1 to 100"之前,我們首先得分析"phrase sum from (lower ...
曾經,我熟練操作grep、awk、sed,甚至自認對sed尚算精通,我一度愛上了寫腳本。但是隨着寫腳本的次數多了,需求復雜了,我深深的感受到shell的無奈。 例如,我多次遇到過類似下面這種惡心的需 ...
突然發現已經接近半年沒有寫過博客了,熙熙攘攘的城市里發生了巨大的變化。而IT行業也在開始變革,各種新技術,新思維。大數據,雲計算的發展,代表者移動互聯網的時代即將到來。可是我們還是要回歸本質,服務 ...
目前大家都在說微服務,其實微服務不是一個名字,是一個架構的概念,大家現在使用的基於RPC框架(dubbo、thrift等)架構其實也能算作一種微服務架構。 目前越來越多的公司開始使用微服務架構,所以 ...
本文我們一起通過學習Vue模板編譯原理(一)-Template生成AST來分析Vue源碼。預計接下來會圍繞Vue源碼來整理一些文章,如下。 一起來學Vue雙向綁定原理-數據劫持和發布訂閱 一起來學Vue模板編譯原理(一)-Template生成AST 一起來學Vue模板編譯原理 ...
本文我們一起通過學習Vue模板編譯原理(一)-Template生成AST來分析Vue源碼。預計接下來會圍繞Vue源碼來整理一些文章,如下。 一起來學Vue雙向綁定原理-數據劫持和發布訂閱 一起來學Vue模板編譯原理(一)-Template生成AST 一起來學Vue模板編譯原理 ...