热门问题
时间线
聊天
视角

Pharo

来自维基百科,自由的百科全书

Pharo
Remove ads

Pharo 是一套開源Smalltalk程序開發平台。Pharo具備所謂現場編程英語Interactive programming的特性,例如實時操控對象,實時更新等。Pharo支持高級Web開發框架,例如Seaside英語Seaside (software)

事实速览 編程範型, 實作者 ...

簡介

Thumb
Pharo 10.0的截圖

Pharo是在2008年3月從Squeak v3.9分叉而來[4][5][6][6]:10[7]。Pharo的英文名稱源自希臘語(Φάρος),意為燈塔。事實上在其標誌上的最後一個字母O里有一座燈塔。

作為Smalltalk平台,Pharo具備Smalltak的特點:

  • 面向對象編程
  • 立即對象身份切換
  • 動態繼承
  • 對象作為方法
  • 可選的綠色線程
  • 可定製的元類
  • 易於使用代理對象

它的虛擬機的特點:

  • 具有JIT的多平台虛擬機,合併了分代垃圾回收器ephemeron英語ephemeron,轉發器(forwarder)
  • 快速對象枚舉
  • 容易的調用棧操縱
  • AST元連接
  • 相對較低的內存消耗
  • 可定製的編譯器
  • 可選的完全的對象內存持久化
  • 可恢復的異常
  • 快速對象序列化

它的內建軟件的特點:

  • 已開發程序和開發環境的可選融合
  • 現場對象檢查

憑藉Smalltalk與生具來的特點, Pharo最大的優勢之一是在修改代碼時不必全程編譯。例如,在調試窗口裡編輯一個方法或者創建一個方法後不需要重啟進程。這就是所謂的「編輯、繼續」,有別於在其他語言裡常見的「編輯、編譯然後運行」。

Remove ads

特徵性語法

Thumb
Pharo語法明信片

Pharo語法基於了具有一些擴展的Smalltalk-80語言語法。這些擴展在現代Smalltalk方言中是常見的。

  • 用於動態數組的文字,指定數組內容在程序執行期間求值的表達式:
{1. 2. 1+2}
  • 用於字節數組的文字,它只能用在0255範圍內的整數構成:
#[1 2 3 4]
  • 用於比例十進制數的文字,它是能夠準確表示十進制分數的定點十進制數的表示法:
3.14s2
  • pragma。在Smalltalk-80中,pragma只用於原始方法。在Pharo中,它們是全功能的方法標註:
<gtInspectorPresentationOrder: 30>
  • 在注釋中的兩個雙引號,被被解釋為作為這個注釋內容一部份的一個單引號字符。

提供的Pharo語言語法是非常簡單和極簡主義的。基本語言元素通常可以體現在一張明信片上。它的文法被歸類為LL(1)

語言文法不直接指定代碼應怎樣存儲在文件中。Pharo使用Tonel[8],作為其偏好的代碼序列化格式。

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英語Seaside (software),一個Web應用框架。Pharo有兩個支持機構,面向公司的Pharo財團[26],和面向用戶的Pharo協會[27]

公司和諮詢

一些公司在開發中使用Pharo[28],典型例子為:

  • Seaside英語Seaside (software),動態Web開發[29]
  • Zinc,服務器架構[30]
  • Moose英語Moose (analysis),分析所有程序語言的數據和軟件[31]
  • 圖形庫,用於演化的用戶界面
  • Roassal,用於可視化數據[32]

虛擬機

Pharo的虛擬機幾乎完全用Smalltalk語言打造。自2008年,Pharo的虛擬機的表現接近最快的Smalltalk虛擬機。[33]

相關條目

參考

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads