热门问题
时间线
聊天
视角
Pharo
来自维基百科,自由的百科全书
Remove ads
Pharo 是一套開源Smalltalk程式開發平台。Pharo具備所謂現場編程的特性,例如即時操控對象,即時更新等。Pharo支援進階Web開發框架,例如Seaside。
簡介

Pharo是在2008年3月從Squeak v3.9分叉而來[4][5][6][6]:10[7]。Pharo的英文名稱源自希臘語(Φάρος),意為燈塔。事實上在其標誌上的最後一個字母O里有一座燈塔。
作為Smalltalk平台,Pharo具備Smalltak的特點:
- 物件導向程式設計
- 立即對象身分切換
- 動態繼承
- 對象作為方法
- 可選的綠色執行緒
- 可客製化的元類
- 易於使用代理對象
它的虛擬機器的特點:
- 具有JIT的多平台虛擬機器,合併了分代垃圾回收器,ephemeron,轉發器
- 快速對象列舉
- 容易的呼叫棧操縱
- AST元連接
- 相對較低的主記憶體消耗
- 可客製化的編譯器
- 可選的完全的對象主記憶體持久化
- 可恢復的異常
- 快速對象序列化
它的內建軟體的特點:
- 已開發程式和開發環境的可選融合
- 現場對象檢查
憑藉Smalltalk與生具來的特點, Pharo最大的優勢之一是在修改代碼時不必全程編譯。例如,在除錯窗口裡編輯一個方法或者建立一個方法後不需要重新啟動行程。這就是所謂的「編輯、繼續」,有別於在其他語言裡常見的「編輯、編譯然後執行」。
Remove ads
特徵性語法

Pharo語法基於了具有一些擴充的Smalltalk-80語言語法。這些擴充在現代Smalltalk方言中是常見的。
- 用於動態陣列的文字,指定陣列內容在程式執行期間求值的表達式:
{1. 2. 1+2}
- 用於位元組陣列的文字,它只能用在
0
到255
範圍內的整數構成:
#[1 2 3 4]
- 用於比例十進制數的文字,它是能夠準確表示十進制分數的定點十進制數的表示法:
3.14s2
- pragma。在Smalltalk-80中,pragma只用於原始方法。在Pharo中,它們是全功能的方法標註:
<gtInspectorPresentationOrder: 30>
- 在注釋中的兩個雙引號,被被解釋為作為這個注釋內容一部份的一個單引號字元。
提供的Pharo語言語法是非常簡單和極簡主義的。基本語言元素通常可以體現在一張明信片上。它的文法被歸類為LL(1)。
Remove ads
歷史
自Squeak衍生,Pharo旨在建立一個符合Smalltalk-80規範的開源Smalltak環境。它專注於現代軟體工程和程式開發技術,而Squeak定位於教學。
學習Pharo
Pharo有一個活躍的社群和寬鬆的MIT許可。學習Smalltalk程式語言的利器,是兩本介紹Pharo的書。第一本書為《Pharo by Example》[23] ,免費下載。第二本書是《Deep into Pharo》,免費下載。[24]
初學者最好的體驗Pharo的方法是在其官方網站下載一站式版本[25]。
Pharo的使用
Pharo意在開發為公司和研究人員開發一個現代Smalltalk。作為範例,Pharo用於開發Seaside,一個Web應用框架。Pharo有兩個支援機構,面向公司的Pharo財團[26],和面向使用者的Pharo協會[27]。
一些公司在開發中使用Pharo[28],典型例子為:
一些教育機構使用Pharo,包括:
- 布宜諾斯艾麗斯大學
- 伯恩大學
- 布魯塞爾大學
- Bretagne Occidentale大學
- École des Mines de Douai
- Savoie大學
- Ivan Franko Nat. Uni. of Lviv
- Czech 技術大學
- CULS Prague
- 喀麥隆Maroua大學
- 北密執根大學
- 阿根廷天主教大學
- Santiago大學
- Policnica de Catalunya大學
- Saarland大學
- Quilmes大學
- La Plata大學
- Technologica Nacional大學
- Nacional de San Martin大學
- Tomsk大學
一些使用Pharo的研究機構:
- LAFHIS, AR
- SCG, CH
- CEA-List, FR
- CAR-EMD, FR
- RMOD-Inria, FR
- UMMISCO-IRD, FR
- Reveal, CH
- LYSIC, FR
- IGEVET, AR
- Pleiad, CL
- Uqbar, AR
Remove ads
虛擬機器
Pharo的虛擬機器幾乎完全用Smalltalk語言打造。自2008年,Pharo的虛擬機器的表現接近最快的Smalltalk虛擬機器。[33]
相關條目
參考
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads