<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Dylan%E8%AA%9E%E8%A8%80</id>
	<title>Dylan語言 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Dylan%E8%AA%9E%E8%A8%80"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Dylan%E8%AA%9E%E8%A8%80&amp;action=history"/>
	<updated>2026-04-04T07:21:11Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Dylan%E8%AA%9E%E8%A8%80&amp;diff=404679&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Dylan%E8%AA%9E%E8%A8%80&amp;diff=404679&amp;oldid=prev"/>
		<updated>2025-08-22T10:50:59Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Dylan&amp;#039;&amp;#039;&amp;#039;是多範式的程式語言，包括支援函數式佮物件導向程式設計（OOP）， 伊是動態佮反射式的，煞提供設計用佇支援生做高效機器碼的編程模型，包括佇咧動態佮靜態行為頂懸的細粒度的控制。伊是佇一九九空年代早期由蘋果公司領導的群組創造的。&lt;br /&gt;
&lt;br /&gt;
==概述==&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 參考手冊內底有足簡明的徹底的語言概述。Dylan 衍生自 Scheme 和 Common Lisp，並且增加了衍生自 Common Lisp 東西系統（CLOS）的整合的物件系統。佇咧 Dylan 中，彼个所有的值（包括數值、字元、函式和類）攏是頭等等的物件。Dylan 支援多重繼承、多型、多分派、關鍵字參數、物件內省、是因為模式的語法擴充宏佮真濟其他進階特徵。程式會當表達佇咧動態性上的細粒度的控制，允准程式占佇咧動態佮靜態編程之間的連續區，並支援演進式開發（允准先快速原型隨後增進精製和最佳化）。&lt;br /&gt;
&lt;br /&gt;
Dylan 的主要設計目標是成做適合開發商業軟體的動態語言。Dylan 試看覓影決潛在的效能問題，通過向完全靈活性的 Lisp 系統介入「本性」限制，允准編譯器清楚的理解會當編譯單元比如函式庫。Dylan 對 Scheme 佮其他 Lisp 衍生出著伊的足濟語意；某寡 Dylan 實現上頭起佇咧現存 Lisp 系統之內。猶毋過 Dylan 有類似 ALGOL 的語法相𫝛是一个類似 Lisp 字條語法。&lt;br /&gt;
&lt;br /&gt;
==歷史==&lt;br /&gt;
&lt;br /&gt;
Dylan 是佇一九九空年代早期由蘋果公司領導的一个群組建立的。佇伊的開發的時陣，伊予意圖用佇咧 Apple Newton 電腦，猶毋過 Dylan 實現彼陣猶無達到充分成熟，而且 Newton 轉來使用矣 C 和 Walter Smith 開發的 NewtonScript 二者的混合。Apple 佇咧一九九五年尾止矣其實 Dylan 開發努力，就算講𪜶製作一个真接著的「技術發行」版本（Apple Dylan TR 一）， 並且包括一个進階整合式開發環境（IDE）。&lt;br /&gt;
&lt;br /&gt;
其他兩个小組對語言設計佮開發實現做出了貢獻：Harlequin 公司發行矣 Microsoft Windows 下的商業 IDE，卡內基 ・ 梅隆大學發行矣叫做 Gwydion Dylan 的 Unix 下跤的編譯器。二者的實現分別於二空空四年和一九九八年開放矣原始碼。Harlequin 實現早當咧叫做 Open Dylan 並且由一組志願者維護。&lt;br /&gt;
&lt;br /&gt;
Dylan 語言的代號是 Ralph。James Joaquin 選擇名 Dylan 表示「動態語言」（&amp;#039;&amp;#039;&amp;#039;Dy&amp;#039;&amp;#039;&amp;#039;namic&amp;#039;&amp;#039;&amp;#039;lan&amp;#039;&amp;#039;&amp;#039;guage）。&lt;br /&gt;
&lt;br /&gt;
==語法==&lt;br /&gt;
&lt;br /&gt;
Dylan 的多數語法特徵來自伊的 Lisp 傳承。Dylan 頭仔咧使用類似 Lisp 字條語法，伊敢若是 S-表達式。到甲語言設計完成的時陣，語法予人變更做類似 ALGOL 的語法，預期廣泛的編程者受眾會閣較熟似伊。語法由 Michael Kahl 設計的。伊佇咧 Dylan 來參考手冊有詳盡描寫。&lt;br /&gt;
&lt;br /&gt;
===詞法===&lt;br /&gt;
&lt;br /&gt;
Dylan 毋是大細寫敏感的。Dylan 的詞法允准使用連字佮減號的號名約定，來連接多單詞識別碼的各部份（有時叫做「lisp-case」抑是「kebab case」）。 這个約束佇咧 Lisp 語言內底是捷看著的，但無適用佇將毋是數值文字一部份的連字號佮減號，當做一个單一詞法記號處理的遐的程式語言，就算佇伊無包圍佇空白字元的時陣。&lt;br /&gt;
&lt;br /&gt;
除了字母數字元佮連字佮減號以外，Dylan 允准特定非字母數字元作為識別碼的一部份。捌別碼袂使單獨的由非字母數字元或數字元組成。若有任何歧義，應使用空白。&lt;br /&gt;
&lt;br /&gt;
===樣例代碼===&lt;br /&gt;
&lt;br /&gt;
有幾若个溝的一个簡單的類：&lt;br /&gt;
&lt;br /&gt;
佇咧約束頂懸，類使用尖括號（即的小於號佮大於號）來號名，比如講這个代碼例內底的類名 ` &amp;lt; point &amp;gt; `。&lt;br /&gt;
&lt;br /&gt;
佇咧 ` end class &amp;lt; point &amp;gt; ` 中，` class ` 和 ` &amp;lt; point &amp;gt; ` 二者攏是可選的。嘿所有 ` end ` 子句攏是按呢。比如講，通好寫 ` end if ` 抑是唯寫 ` end ` 來終止一个 ` if ` 語句。&lt;br /&gt;
&lt;br /&gt;
仝款的類，會當用極小化的方式重寫：&lt;br /&gt;
&lt;br /&gt;
槽這馬攏確定類型做 ` &amp;lt; object &amp;gt; `。槽著愛予手動初初化。&lt;br /&gt;
&lt;br /&gt;
佇咧約束頂懸，常有數名開始就 ` $ `：&lt;br /&gt;
&lt;br /&gt;
階乘函式：&lt;br /&gt;
&lt;br /&gt;
遮的 ` n ! ` 和 ` &amp;lt; integer &amp;gt; ` 就是正常的識別碼。&lt;br /&gt;
&lt;br /&gt;
遮無顯式的倒轉去語句。一个方法抑是函式的結果是到尾仔求值的彼个表達式。除掉佇回位置的表達式後壁的分號是捷看的風格。&lt;br /&gt;
&lt;br /&gt;
==模組佮號名空間==&lt;br /&gt;
&lt;br /&gt;
佇足濟物件導向語言內底，類是封裝和模組化的主要方式；每一个類別定義一个號名的空間並控制佗一寡定義是佇外部可見的。進一步的，佇真濟語言中類別定義必須愛予人用做一个整體的不可見單元。比如講，使用 ` String ` 串接函式要求匯入並編譯全部的 ` String `。&lt;br /&gt;
&lt;br /&gt;
某一寡語言的套件括 Dylan，閣包括一个分立的顯式的號名空間或者是模組系統，會當用閣較一般性的方式來進行封裝。&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 中，編譯單元和匯入單元的概念是分開的，類對兩个攏無啥物特殊會當講。「庫」定義應當被做伙編譯佮處理的專案，而且「模組」定義一个號名空間。類會當共囥佇咧模組內底，抑是分拆到其中，隨編程者意願。定定是一个類的完全定義無存在佇一个單一的模組內底，是延展佇進行選擇性收集的多個模組至上。無仝的程式會當有仝的類的無仝的定義，而且包括𪜶所需要的。&lt;br /&gt;
&lt;br /&gt;
比如講，考慮支援 ` String ` 的一个附加庫 regex。佇咧某一寡語言內底，一个功能愛予人包括佇字串內底，這个功能著愛予人增加到 ` String ` 號名空間。隨這款代誌不斷發生，` String ` 類變愈來愈大，毋免閣用 regex 的函式猶原需要為增加著庫大細付出代價。為此，這種附加件典型的共囥佇咧𪜶家己的號名空間和物件內底。這種方式的缺點是新函式無閣再是 ` String ` 的一部份；伊轉去予隔離佇單獨聲明的伊家己的函式集合內底。無閣用矣 ` myString . parseWith ( myPattern ) `，對 OO 視角這是自然的組織方式，是使用像 ` myPattern . parseString ( myString ) ` 這款的物件，彼个效果頂懸反轉矣次序。&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 之下，會當為相仝代碼的定義誠濟介面，比如講 ` String ` 串接方法會當共囥咧 ` String ` 介面佮 ` concat ` 介面二者內底，後者將無仝的類中的無仝的串接函式收集做伙。這捷用數學庫內底，遮的函式意圖適用廣泛的無仝物件類型。&lt;br /&gt;
&lt;br /&gt;
介面構造的閣較實際用法是建造一个模組的公開佮私有版本，佇咧其他的語言內底這予人包括做一个附帶特徵，並且總是致使問題並增加語法。佇咧 Dylan 之下，所有的函式呼叫會當簡單的囥咧「私有」抑是「開發」介面當中，而共可公開存取的函式收集佇咧 ` Public ` 介面內底。佇咧 Java 抑是 C + + 之下，一个物件的可見性是定義佇代碼中的，意味著愛提供類似的變更，編程者將予人強制的去完全重寫定義，並且袂當同齊有兩个版本。&lt;br /&gt;
&lt;br /&gt;
==類==&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 中以類似大多數 OO 語言的風格，類似的物件欲描寫 ` slot `（槽，資料成員，欄位，ivar 等）。 所有對槽的存取攏愛通過方法，就親像 Smalltalk 彼款的。預設的 ` getter ` 和 ` setter ` 方法基於槽名而自動生成。著比如講多數其他 OO 語言，會當應用於類的其他方法定定義佇這个類的外部，所以佇遮 Dylan 中類別定義典型的只包括儲存的定義。比如講：&lt;br /&gt;
&lt;br /&gt;
佇這个例中，定義矣類 ` &amp;lt; window &amp;gt; `。` &amp;lt; 徛名 &amp;gt; ` 語法只是約束，予類名顯得通好突出，尖括號只是這个類名的一部份。佮之相對比，佇一寡語言內底，約束做大寫類名的首字母，抑是予名字條頂懸 C 抑是 T（比一个例）。 ` &amp;lt; window &amp;gt; ` 繼續承一个單一類 ` &amp;lt; view &amp;gt; `，並包含二个槽：` title ` 持有這个窗口標題的字串，和 ` position ` 持有這个窗口一角的 X-Y 點。佇這个例中，標題予出為預設值，彼位置猶閣無值。可選的 ` init-keyword ` 語法允准編程者佇咧初初化這个類的物件指定這个槽的初初值。&lt;br /&gt;
&lt;br /&gt;
語言譬論講 C + + 抑是 Java 中，類猶閣定義矣伊的介面。所以佇咧這二種語言內底，若像上述案例中，類別定義無顯式的著可見性的指令，是對資料成員佮方法的存取攏予人當做是 ` protected `，意味著𪜶干焦會當予子類使用。愛予無關代碼使用這个窗口的實例，𪜶著愛予聲明為 ` public `。&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 中，遮的槽的可見性規則無予當做是這个代碼的一部份，是一个模組 / 介面系統的一部份。這是增加足大的靈活性。比如講，佇早期開發中用的介面會當聲明所有的物件為 ` public `，毋過用佇咧測試佮部署內底用的介面會加以限制。對於 C + + 抑是 Java，這種變更加會需要改變原始碼，所有的人就無愛做矣，啊若佇咧 Dylan 中，這是完全無關係的概念。&lt;br /&gt;
&lt;br /&gt;
就算講這个例無用著，Dylan 閣支援偌重繼承咧。&lt;br /&gt;
&lt;br /&gt;
==方法佮泛化函式==&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 中，方法毋是講原生的關聯佇咧任何特定的類似；方法會當予人認為存在佇咧這个類以外。就親像 CLOS，Dylan 是因為多分派（多方法）的，遮特定方法的呼叫是因為伊的所有實際參數的類型來選擇的。方法無需要咧編譯時間就知，是因為使用者偏好，所要求的函式會當是得著的嘛會當袂當。&lt;br /&gt;
&lt;br /&gt;
佇咧 Java 之下，仝款的方法予人隔離佇咧特定的類之中。欲使用這个功能，編程者去予人強制去 ` import ` 這个類並顯式的參照伊來呼叫這个方法。抑若這个類袂當得著，或者是這个編譯時間未知，這个應用簡單的袂當編譯。&lt;br /&gt;
&lt;br /&gt;
佇咧 Dylan 中，泛化函式表示零抑是濟類似的方法，用 ` define method ` 方式來建立的所有方法自動的包含佇仝名的泛化函式內底。泛化函式嘛會當顯式的用 ` define generic ` 聲明，允准編程者精確控制會當增加佗一種方法。代碼被隔離佇儲存才佇位泛化函式當中。足濟類佇內底有𪜶家己的方法，因此佇感官頂懸就親像多數其他 OO 語言仝款。但是代碼實際上位佇咧泛化函式內底，意味著𪜶無附屬於特定的類似，並會當予任何人自然的呼叫。下例將類 ` &amp;lt; window &amp;gt; ` 的方法 ` turn-blue ` 併入仝名的泛化函式內底：&lt;br /&gt;
&lt;br /&gt;
這个定義類似其他的語言的定義，並有可能去予人封裝著 ` &amp;lt; window &amp;gt; ` 類之中。注意 ` :=` 這乎 ` setter ` 搧叫，伊是 ` color-setter ( $ blue , w ) ` 的語法糖。&lt;br /&gt;
&lt;br /&gt;
泛化函式的自主利用會當看著遮爾仔譀化的例內底。比如講，多數的語言內底的一个常見函式 ` to-string `，伊閣轉去這个物件的某種人類會當讀形式。比如講一个窗口可能倒轉來伊的標題佮伊佇咧爸窗口內底的位置，啊若一字串將返回伊家己。佇咧 Dylan 中，遮的方法會當共收集著叫做 ` to-string ` 的一个單一模組內底，毋過這个代碼予對這个自身的定義中徙掉。若是一个特定的物件無支援 ` to-string `，會當簡單的佇咧 ` to-string ` 模組中增加上伊。&lt;br /&gt;
&lt;br /&gt;
==擴充性==&lt;br /&gt;
&lt;br /&gt;
述的整體概念可能予讀者感覺足奇怪。處理一个窗仔口的 ` to-string ` 無定義佇咧 ` &amp;lt; window &amp;gt; ` 之中。除非考慮著講 Dylan 著 ` to-string ` 呼叫的處理方式，抑若無就可能會變做無意義。佇多數語言內底，佇咧程式的編譯的時陣，走揣予 ` &amp;lt; window &amp;gt; ` 的 ` to-string ` 並共替代為著這个方法的一个指標（抑是濟抑是少）。 佇咧 Dylan 中，這是發生佇程式初次咧執行的時陣，執行時系統建造一个方法名 / 形式參數細節的表格，並且通過這个表格來動態的走揣方法。這意味對一个特定的方法會當徛佇任何所在，毋但是編譯時間單元內底。最後編程者得著咧囥其代的碼頂頭的相當大的靈活性，只要若合，會使收集佇伊的類之中，嘛閣會當佮仝款的功能的方法來收集佇咧泛化函式內底。&lt;br /&gt;
&lt;br /&gt;
遮隱含著編程者會當通過佇單獨檔案中定義函式，來向現存的類增加功能。譬如講人可能希望講向所有 ` &amp;lt; string &amp;gt; ` 增加拼寫檢查，這佇多數語言內底會需要存取著字串類的原始碼，這款基本類真少以原始寫碼形式共出。佇咧 Dylan（佮其他會使延伸語言）中，拼寫檢查方法會當增加到 ` spell-check ` 模組中，通過 ` define method ` 構造定義伊會當適用所有的類似。佇這个情形下，實際功能會當定義佇一个單一的泛化函式中，伊接受一个字串閣回錯誤。當 ` spell-check ` 模組去予人編譯入程式的時陣，所有的字捾（佮其他的物件）攏會得著這个增加的功能。&lt;br /&gt;
&lt;br /&gt;
==參照==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* 官方網站 , Open Dylan–hosts open source , optimizing Dylan compiler targeting Unix / Linux , macOS , Microsoft Windows&lt;br /&gt;
* Overview of the language&lt;br /&gt;
* An Introduction to Dylan&lt;br /&gt;
* Apple Dylan TR 一&lt;br /&gt;
* The Marlais Dylan Interpreter–An implementation of a subset of Dylan , suitable for bootstrapping a compiler&lt;br /&gt;
* 開放 kha-tá-lok-guh 專案中的「Dylan」&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>