2015-09-06 62 views
4

我在Pharo進行實驗,我在想如何實現類,實例變量的範圍。Pharo Smalltalk - 對象中的變量範圍如何實現?

更重要的是,實例變量可以被類的實例的所有方法訪問,類實例變量也可以被類的所有方法訪問,等等。

這個範圍的深度在代碼中被定義在哪裏?人們可以看到發生的地點和方式,Smalltalk完全是面向對象的嗎?

+0

您是否嘗試過查看實例變量的訪問方式?一旦你發現「實例變量來自哪裏」,它應該是相當明顯的。 ;-) –

+0

我從字面上不知道在哪裏看,從概念上講,因爲這是滲透類和實例的行爲,我認爲它可能在ProtoObject的某處定義,但我會感謝確切的方向, – unmircea

回答

2

我認爲你在Pharo> = 4.0,在這種情況下,你有所謂的OpalCompiler

OpalCompiler中,變量範圍被定義(請參閱OCAbstractScope和子類),這是在抽象語法樹(請參閱OCASTSemanticAnalyzer)的語義分析過程中使用的範圍。

你現在有了一個入口點,並且應該從這個起點開始遵循消息發送者,類引用,實例變量引用......。