Subject-oriented programming: Difference between revisions

Content deleted Content added
Filled in 3 bare reference(s) with reFill 2
Bender the Bot (talk | contribs)
 
(2 intermediate revisions by 2 users not shown)
Line 1:
{{Cleanup bare URLs|date=August 2022}}
In [[computing]], '''subject-oriented programming''' is an [[Object-oriented programming|object-oriented]] [[programming paradigm|software paradigm]] in which the state (fields) and behavior (methods) of objects are not seen as intrinsic to the objects themselves, but are provided by various subjective perceptions ("subjects") of the objects. The term and concepts were first published in September 1993 in a conference paper<ref>William Harrison and Harold Ossher, Subject-Oriented Programming - A Critique of Pure Objects, Proceedings of 1993 Conference on Object-Oriented Programming Systems, Languages, and Applications, September 1993</ref> which was later recognized as being one of the three most influential papers to be presented at the conference between 1986 and 1996.<ref>{{Cite web|url=https://www.sigplan.org/Awards/OOPSLA/|title=Most Influential OOPSLA Paper Award|website=www.sigplan.org}}</ref> As illustrated in that paper, an analogy is made with the contrast between the philosophical views of [[Plato]] and [[Immanuel Kant|Kant]] with respect to the characteristics of "real" objects, but applied to software ones. For example, while we may all perceive a tree as having a measurable height, weight, leaf-mass, etc., from the point of view of a bird, a tree may also have measures of relative value for food or nesting purposes, or from the point of view of a tax-assessor, it may have a certain taxable value in a given year. Neither the bird's nor the tax-assessor's additional state information need be seen as intrinsic to the tree, but are added by the perceptions of the bird and tax-assessor, and from Kant's analysis, the same may be true even of characteristics we think of as intrinsic.
 
Line 36 ⟶ 35:
* and a priority ordering specification to resolve conflicts among conflicting rules.
 
Both Hyper/J and CME are available, from alphaWorks<ref>{{Cite web|url=http://www.alphaworks.ibm.com/tech/hyperj|title = Legacy Communities - IBM Community| date=23 April 2009 }}</ref> or sourceforge,<ref>{{Cite web|url=httphttps://sourceforge.net/projects/cme/|title=Concern Manipulation Environment (CME)|date=24 April 2015 }}</ref> respectively, but neither is actively supported.
 
===Subject-oriented programming as a "third dimension"===