| ES6

ES6匯入地獄

關於JavaScript的規範ECMAScript 6(ES6),主要的網頁瀏覽器都已經提供支援,但實作使用的時候,在模組匯入過程的當中,經常面臨複雜冗長的階層設定

2018-08-05

| JavaScript | 物件導向語言 | this

JavaScript風格的this

this具有動態變化的特性,會依照同時函式呼叫的方式而定,令人難以捉摸,我們可以令其保存環境物件,不過,就其本質而言,可視為函式呼叫時的一種參數

2018-07-29

| 程式人 | 例外處理

從語言實作看例外

多數程式語言都具有例外處理的語法,它可自動傳播錯誤訊息,但這是如何實現?從沒有例外處理語法的語言對於錯誤訊息的處理,以及傳播的方式,我們可以掌握更多關鍵

2018-07-22

| 物件導向

無拘的物件導向

想要實現物件導向的開發方式,並非僅能透過語法的角度來實作,我們可以從了解物件、方法、類別的本質,以及開發的方向來思考

2018-07-15

| 程式人 | 林信良

從實作看語言特性

程式語言的建構,牽涉到值、變數、陳述句、函式的存在作用,以及相關的原理,而經過親自實作之後,再來探討這些部分,有助於理解meta-programming的本質

2018-07-07

| 程式人 | 林信良

自造語言的好奇心

我們之所以學習多種程式語言,可能都是基於各種好奇的動機而來,而每一種語言的創立,其實也代表著看待問題的不同角度,而自己在親自打造一套語言的過程中,更能體會這樣的精神

2018-06-30

| 程式人.林信良

設計語言剖析器

在程式語言的語法分析當中,我們可採用現成的剖析器,雖然較為簡便,但也能自行設計剖析器,而透過這樣的開發過程,對於手中正在打造的程式語言,能夠獲得更多了解

2018-06-24

| 抽象語法樹

用抽象語法樹寫程式

如果我們要構造一套程式語言,起點其實是建立抽象的語法樹,而當中的階層關係,其實就具有運算順序的規則,接下來則是設法組合節點,我們可透過陳述句和運算式來進行

2018-06-17

| 玩具語言

打造玩具語言

除了熟悉既有的程式語言,開發者其實也能自行發展、構造程式語言,透過這樣的過程,我們可以更深入了解語言這輪子,是如何打造出來,甚至未來還有機會能夠設計出需要的領域語言

2018-06-09

| 有限狀態自動機 | 下推自動機 | 非確定性演算

瞎猜有益的機器

透過有限狀態自動機,我們可以針對當前的狀態來解決問題,透過設計適當的處理程序,即使是透過非確定性的演算方式,而這種非確定性可以是某種外部參與

2018-06-03

| 程式人.林信良 | 圖靈機

打造圖靈機

試著動手打造幾臺簡單的圖靈機,同時,我們可以趁機探討現代程式設計的本質

2018-05-27

| 林信良 | 決策問題 | Decision problem

不可運算的決策問題

程式並非無所不能,但如何實際認知與驗證其中的道理,仍然非常重要,因為這能讓我們從過程中,深刻思考一件事是否可解決,就算確認行不通,還是可以把心力用在思考其他達到目的的方法

2018-05-20