實化

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

電腦科學中,實化(英語:reification)是把抽象的想法(idea)轉化為明確的資料模型程式設計語言建立的其他對象的過程。通過實化,以前是隱式的、未表示的、可能是不可表示的被顯式形成可概念(邏輯或計算)操作的。非正式地,實化也常被稱作在特定系統範圍內把某些東西變為「頭等公民」即物件化。 實化是概念分析知識表示中最常用的技術。

在程式設計語言中的實化與反射[編輯]

在程式設計語言中,把使用者程式或者程式設計語言某一部分本來在編譯期執行期是隱式的,表示為語言自身,這一過程稱為實化。這使得其對程式可當作普通資料來利用。在具有反射的程式設計語言中,實化的資料表示了相關的被實化的領域。實化的資料常被稱作頭等對象

資料實化[編輯]

資料實化涉及在形式規範英語formal specification中找到抽象資料類型的更為具體的表示。 [4] 例如,抽象資料類型集合(set)可以用map或者array來實化。

概念建模中的實化[編輯]

概念建模英語Conceptual model (computer science)中廣泛使用了實化。[5]實化一個關係(relationship)意味著把它視作一個實體。實化一個關係的目的是令其顯式,必要時可以增加額外的資訊。例如,關係IsMemberOf(member:Person, Committee)表示某人是某委員會的成員。下圖左側用表的形式列出了人P1是委員會C1C2的成員;人P2是委員會C1成員。

Example population of 关系IsMemberOf的實化。

這一關係,也可看作實體。見圖示的右側。稱作該實體實化了這個關係。這個實體類型為Membership。現在,可以給這個關係實體增加新的資訊,如某人屬於某委員會是由誰來提名加入的,可表示為IsNominatedBy(Membership, Person)

與其密切相關的用法見實化 (知識表示)英語Reification (knowledge representation)

實化在UML中[編輯]

UML的類圖表示Membership關係例子。

UML提供了關聯類(association class)用於構建被實化的關係類型。關聯類既是關聯又是類。[6]

參見[編輯]

參考文獻[編輯]

  1. ^ The Java Language Specification, section 4.7頁面存檔備份,存於網際網路檔案館), Java SE 7 Edition
  2. ^ Smalltalk Blocks And Closures. C2.com. 2009-10-15 [2010-10-09]. (原始內容存檔於2010-02-06). 
  3. ^ J. Malenfant, M. Jacques and F.-N. Demers, A Tutorial on Behavioral Reflection and its Implementation頁面存檔備份,存於網際網路檔案館
  4. ^ Formal Methods Europe, Frequently Asked Questions, part 13頁面存檔備份,存於網際網路檔案館).
  5. ^ Antoni Olivé, Conceptual Modeling of Information Systems, Springer Verlag, 2007.
  6. ^ Unified Modeling Language, UML superstructure, Object Management Group, 2007-11-02.