订盟是什么意思| 省长什么级别| 吃肝补什么| 火凤凰是什么意思| au750是什么意思| 公粮是什么意思| sby是什么意思| 糖蛋白是什么| 血沉高说明什么| 豌豆什么时候种最好| 衡于虑的衡什么意思| 下午5点是什么时辰| 考虑黄体是什么意思| 形容高兴的词语有什么| pta是什么| 吃什么可以降尿酸| 头发厚适合剪什么发型| 上梁不正下梁歪什么意思| 补肾吃什么药最好| 草木皆兵指什么生肖| 迎春花像什么| 什么叫私生饭| 脚踝肿是什么原因| 肝内小钙化灶是什么意思| 什么是嗳气有何症状| 炎黄子孙是什么生肖| 高姓和什么姓是世仇| 吃什么降血脂最快| 什么是血脂高| 什么食物含锌最多| 什么时候需要打破伤风针| 男人练臀桥有什么用| eyki是什么牌子的手表| 女人平胸是什么原因| 猫咪感冒吃什么药| 梦见钱是什么预兆| 天麻有什么作用与功效| 吃了小龙虾不能吃什么| 什么症状吃柏子养心丸| 湿疹不能吃什么食物| 7.7什么星座| 云的五行属性是什么| 丹毒病是什么原因引起的| 柯基为什么要断尾巴| 印度为什么那么热| 植物光合作用产生什么| 令郎是什么意思| 黑曜石适合什么人戴| 什么的鼻子填词形容词| 光年是什么单位| 菩提是什么| 缺钠是什么原因造成的| 为什么叫新四军| 吐血是什么原因| 胃烧灼吃什么立马缓解| 儿童拉稀吃什么药| 女性外痔擦什么药膏好| 乳腺增生是什么意思| 微波炉蒸鸡蛋羹几分钟用什么火| 冬至穿什么衣服| 蜂胶是什么| 蜘蛛代表什么生肖| 人工周期是什么意思| 阴道发臭是什么原因| 满族不吃什么肉| 错峰是什么意思| 物美价廉是什么意思| 手术后能吃什么| 两个日是什么字| 小孩咳嗽流鼻涕吃什么药效果好| 晚上吃什么减肥快| 痛经吃什么| 骨加客念什么| 气滞吃什么中成药| 割包皮属于什么科| 肛门湿疹用什么药膏最有效| 打羽毛球有什么好处| 心悸吃什么中成药| 桃子可以做什么美食| 贫血看什么指标| 人黄是什么原因| 吹风样杂音见于什么病| 大便不成形是什么原因造成的| 大义灭亲是什么意思| 什么是继发性高血压| 秀女是什么意思| 咽喉炎吃什么药好| 三聚磷酸钠是什么| 血小板有什么作用| 4.9是什么星座| 教师节送什么礼物给老师| 结节影是什么意思| 甄是什么意思| a-l-岩藻糖苷酶偏高是什么原因| 鼻子红是什么原因| 胃不舒服想吐是什么原因| 土加亥念什么| 体能是什么| 卯五行属什么| 长可以加什么偏旁| 纯阳之人有什么特征| 歼是什么意思| 传染性单核细胞增多症是什么病| 胃疼可以吃什么食物| 阑尾炎可以吃什么| 打酱油是什么意思| 耳朵嗡嗡响什么原因| 漏蛋白是什么原因造成的| 意阑珊什么意思| 什么叫白癜风| 适得其反是什么意思| 肛门痒痒的是什么原因| 早上起来口苦是什么原因| 是谁在敲打我窗是什么歌| 三净肉是什么| 摩羯座什么性格| 中耳炎吃什么药| 豚是什么意思| 身份证是什么字体| 留置针是什么| ems是什么意思| 肠子长息肉有什么症状| 爆表是什么意思| 了解是什么意思| 这是什么| prp是什么意思| 为什么拉尿会刺痛| 菠萝与凤梨有什么区别| bmi是什么意思| 发烧可以吃什么水果| 陈百强属什么生肖| 血浆蛋白是什么| 子宫息肉是什么| 做狐臭手术挂什么科| 女人矜持是什么意思| 奥肯能胶囊是什么药| 膝盖疼用什么药| 水彩笔用什么能洗掉| 什么是鬼压床| 隆鼻后吃什么消肿快| 打强心针意味着什么| 珊瑚绒是什么面料| 黄鼠狼是什么科| birads3类是什么意思| 月经期间洗澡会有什么影响吗| 儿保科主要是检查什么| 阿米巴病是什么病| 四肢冰凉是什么原因| 不忘初心方得始终是什么意思| 月经来有血块是什么原因| 小儿积食吃什么药| gms是什么意思| 东星斑为什么这么贵| 结节性甲状腺肿是什么意思| 低密度脂蛋白是什么| 咳嗽吃什么能治好| 孕初期吃什么对胎儿好| 为什么会长黄褐斑| 排湿气最快的方法吃什么| 安然无恙是什么意思| 血小板低看什么科| 尿道炎是什么症状| 六月十三日是什么日子| 呼吸音粗是什么原因| 什么身是胆| 脚踝浮肿是什么原因引起的| 看高血压挂什么科| 多尔衮是什么意思| ns什么意思| 冗长什么意思| 右肺上叶钙化灶是什么意思| 胃窦炎吃什么药最好| 嘴唇正常颜色是什么样| 伟五行属性是什么| 朝秦暮楚是什么意思| 霸王别姬是什么菜| 埋怨是什么意思| 成人大便绿色是什么原因| 喜结连理是什么意思| 蛇什么时候出来活动| 朋友梦到我怀孕了是什么意思| 脾胃有火是什么症状| 怀孕前期有什么征兆| 武夷山岩茶属于什么茶| 恭请是什么意思| 人做梦是什么原因| dollars是什么意思| 萌字五行属什么| 不为良相便为良医是什么意思| 阿司匹林和阿莫西林有什么区别| 飓风什么意思| 想当演员考什么学校| 奇异果是什么水果| 供血不足吃什么好| 为什么会子宫内膜增厚| 胆的作用及功能是什么| 手脚发热吃什么药| 红豆配什么打豆浆好喝| 叶公好什么| 死党是什么意思| 治疗风湿有什么好方法| 什么时间运动减肥效果最好| 梦见蜂蜜是什么意思| 农历六月十一是什么星座| 胃胀胃酸是什么原因| 什么人容易得阿尔兹海默症| 吃了什么药不能喝酒| 筹钱是什么意思| 妇科炎症吃什么消炎药效果好| 戊日是什么意思| 女人生气容易得什么病| 二线用药是什么意思| 状元红又叫什么荔枝| 脓毒症是什么病| 红茶用什么茶具泡好| 客厅用什么灯具好| 半夜睡不着是什么原因| ect是什么意思| 阴茎硬度不够吃什么好| 不自觉摇头是什么病| 朱元璋为什么杀徐达| 子宫内膜增生有什么症状| 失眠挂什么科| 下午五点到七点是什么时辰| 什么叫转基因| 人类什么时候灭绝| 1936年属什么生肖| 欲仙欲死是什么意思| 胃溃疡可以吃什么水果| 什么是纤维瘤| 竖心旁的字和什么有关| 紫外线过敏用什么药膏| 男人都是大猪蹄子是什么意思| 宫颈纳囊是什么病| 血压低头疼是什么原因| 吃什么补脾胃| 三马念什么| 摘环后需要注意什么| 这个季节吃什么水果| 随心所欲的欲什么意思| 麻瓜是什么意思| 路上遇到蛇是什么征兆| 狗皮肤溃烂用什么药| 妈妈是什么意思| 做牛排需要什么调料| 石蜡是什么| 三下乡是什么意思| 玄冥是什么意思| 母乳是什么味| 被蜱虫咬了挂什么科| 肛门痒用什么药| 一饿就胃疼什么原因| 梦见家里发大水了是什么征兆| 脸肿眼睛肿是什么原因引起的| 亚急性甲状腺炎吃什么药| 脾虚吃什么好的最快| 黄鼠狼为什么怕鹅| 社恐到底在害怕什么| 丑什么意思| 胸部爱出汗是什么原因| 栀子泡水喝有什么功效| jk是什么| 什么药治肝最好最安全| 辟谷吃什么| 百度Jump to content

端午节晚上吃什么

From Wikipedia, the free encyclopedia
百度 责任编辑:邓雅琪PSY031

In computing, subject-oriented programming is an object-oriented 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[1] which was later recognized as being one of the three most influential papers to be presented at the conference between 1986 and 1996.[2] As illustrated in that paper, an analogy is made with the contrast between the philosophical views of Plato and 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.

Subject-oriented programming advocates the organization of the classes that describe objects into "subjects", which may be composed to form larger subjects. At points of access to fields or methods, several subjects' contributions may be composed. These points were characterized as the join-points[3] of the subjects. For example, if a tree is cut down, the methods involved may need to join behavior in the bird and tax-assessor's subjects with that of the tree's own. It is therefore fundamentally a view of the compositional nature of software development, as opposed to the algorithmic (procedural) or representation-hiding (object) nature.

Relationships

[edit]

Relationship to aspect-oriented programming

[edit]

The introduction of aspect-oriented programming in 1997[4] raised questions about its relationship to subject-oriented programming, and about the difference between subjects and aspects. These questions were unanswered for some time, but were addressed in the patent on Aspect-oriented programming filed in 1999[5] in which two points emerge as characteristic differences from earlier art:

  • the aspect program comprises both a) a cross-cut that comprises a point in the execution where cross-cutting behavior is to be included; and b) a cross-cut action comprising a piece of implementation associated with the cross-cut, the piece of implementation comprising computer readable program code that implements the cross-cutting behavior.
  • the aspect transparently forces the cross-cutting behavior on object classes and other software entities

In the subject-oriented view, the cross-cut may be placed separately from the aspect (subject) and the behavior is not forced by the aspect, but governed by rules of composition. Hindsight[6] makes it also possible to distinguish aspect-oriented programming by its introduction and exploitation of the concept of a query-like pointcut to externally impose the join-points used by aspects in general ways.

In the presentation of subject-oriented programming, the join-points were deliberately restricted to field access and method call on the grounds that those were the points at which well-designed frameworks were designed to admit functional extension. The use of externally imposed pointcuts is an important linguistic capability, but remains one of the most controversial features of aspect-oriented programming.[7]

Relationship to aspect-oriented software development

[edit]

By the turn of the millennium, it was clear that a number of research groups were pursuing different technologies that employed the composition or attachment of separately packaged state and function to form objects.[8] To distinguish the common field of interest from Aspect-Oriented Programming with its particular patent definitions and to emphasize that the compositional technology deals with more than just the coding phase of software development, these technologies were organized together under the term Aspect-Oriented Software Development,[9] and an organization and series on international conferences begun on the subject. Like aspect-oriented programming, subject-oriented programming, composition filters, feature-oriented programming and adaptive methods are considered to be aspect-oriented software development approaches.

Dimensions

[edit]

Multi-dimensional separation of concerns, Hyper/J, and the Concern Manipulation Environment

[edit]

The original formulation of subject-oriented programming deliberately envisioned it as a packaging technology – allowing the space of functions and data types to be extended in either dimension. The first implementations had been for C++,[10] and Smalltalk.[11] These implementations exploited the concepts of software labels and composition rules to describe the joining of subjects.

To address the concern that a better foundation should be provided for the analysis and composition of software not just in terms of its packaging but in terms of the various concerns these packages addressed, an explicit organization of the material was developed in terms of a multi-dimensional "matrix" in which concerns are related to the software units that implement them. This organization is called multi-dimensional separation of concerns, and the paper describing it[12] has been recognized as the most influential paper of the ICSE 1999 Conference.[13]

This new concept was implemented for composing Java software, using the name Hyper/J for the tool.[14]

Composition and the concept of subject can be applied to software artifacts that have no executable semantics, like requirement specifications or documentation. A research vehicle for Eclipse, called the Concern Manipulation Environment (CME), has been described[15] in which tools for query, analysis, modelling,[16] and composition are applied to artifacts in any language or representation, through the use of appropriate plug-in adapters to manipulate the representation.

A successor to the Hyper/J composition engine[17] was developed as part of CME which uses a general approach for the several elements of a composition engine:

  • a query language with unification to identify join points,
  • a flexible structural-attachment model,
  • a nested-graph specification for ordering identified elements,
  • and a priority ordering specification to resolve conflicts among conflicting rules.

Both Hyper/J and CME are available, from alphaWorks[18] or sourceforge,[19] respectively, but neither is actively supported.

Subject-oriented programming as a "third dimension"

[edit]

Method dispatch in object oriented programming can be thought of as "two dimensional" in the sense that the code executed depends on both the method name and the object in question. This can be contrasted[20] with procedural programming, where a procedure name resolves directly, or one dimensionally, onto a subroutine, and also to subject oriented programming, where the sender or subject is also relevant to dispatch, constituting a third dimension.

See also

[edit]

References

[edit]
  1. ^ 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
  2. ^ "Most Influential OOPSLA Paper Award". www.sigplan.org.
  3. ^ Harold Ossher, Peri Tarr. Operation-Level Composition: A Case in (Join) Point, in ECOOP '98 Workshop Reader, 406–409
  4. ^ Kiczales, G.; Lamping, J.; Mendhekar, A.; Maeda, C.; Lopes, C.; Loingtier, J. M.; Irwin, J. (1997). Aspect-oriented programming (PDF). ECOOP'97. Proceedings of the 11th European Conference on Object-Oriented Programming. LNCS. Vol. 1241. pp. 220–242. CiteSeerX 10.1.1.115.8660. doi:10.1007/BFb0053381. ISBN 3-540-63089-9.
  5. ^ Kiczales; Gregor J.; Lamping; John O.; Lopes; Cristina V.; Hugunin; James J.; Hilsdale; Erik A.; Boyapati; Chandrasekhar, Aspect Oriented Programming, United States Patent 6,467,086, October 15, 2002
  6. ^ William Harrison. De-constructing and Re-constructing Aspect-Orientation, Seventh Annual Workshop on Foundations of Aspect Languages, Brussels, Belgium, 1 April 2008, edited by Gary T. Leavens, ACM Digital Library, 2008, pp. 43-50
  7. ^ Friedrich Steimann. The paradoxical success of aspect-oriented programming, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, Portland, Oregon, USA, 2006, pp. 481 - 497
  8. ^ Communications of the ACM, Vol. 44, No. 10, October 1994, pp. 28-95
  9. ^ "Home". AOSD.net.
  10. ^ Harold Ossher, Matthew Kaplan, William Harrison, Alexander Katz and Vincent Kruskal, Subject-Oriented Composition Rules, Proceedings of 1995 Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1995
  11. ^ Hafedh Mili, William Harrison, Harold Ossher, Supporting Subject-Oriented Programming in Smalltalk, Proceedings of TOOLS USA 96, August 1996
  12. ^ Harold Ossher, Peri Tarr, William Harrison, Stanley Sutton, N Degrees of Separation: Multi-Dimensional Separation of Concerns, Proceedings of 1999 International Conference on Software Engineering, May 1999
  13. ^ "SIGSOFT - ACM Special Interest Group on Software Engineering".
  14. ^ Harold Ossher, Peri Tarr. Hyper/J: Multi-dimensional separation of concerns for Java, Proceedings of the 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, 2001, Pages: 821 - 822
  15. ^ William Chung, William Harrison, Vincent Kruskal, Harold Ossher, Stanley M. Sutton, Jr., Peri Tarr, Matthew Chapman, Andrew Clement, Helen Hawkins, Sian January. The concern manipulation environment, Proceedings of the 27th international conference on Software engineering table of contents, St. Louis, MO, USA, 2005
  16. ^ William Harrison, Harold Ossher, Stanley Sutton, Peri Tarr. Concern modeling in the concern manipulation environment, Proceedings of the 2005 workshop on Modeling and analysis of concerns in software, St. Louis, Missouri, 2005
  17. ^ William Harrison, Harold Ossher, Peri Tarr. General Composition of Software Artifacts, Proceedings of Software Composition Workshop 2006, March 2006, Springer-Verlag, LNCS 4089, pages 194-210
  18. ^ "Legacy Communities - IBM Community". 23 April 2009.
  19. ^ "Concern Manipulation Environment (CME)". 24 April 2015.
  20. ^ "Journal of Object Technology: Context Oriented Programming".
[edit]
sahara是什么牌子 女人的逼是什么意思 周期是什么意思 小孩肚子痛吃什么药 准生证什么时候办理
酷暑难当是什么意思 间质性肺炎是什么意思 轰20什么时候首飞 舌苔发苦是什么原因 玻璃水是什么
肝内胆管结石是什么意思 身体乳有什么用 倒吊人是什么意思 只要睡觉就做梦是什么原因 吃黄精有什么好处
医院介入科是干什么的 交期是什么意思 助产士一般什么学历 hpa是什么意思 老豆腐和嫩豆腐有什么区别
5月出生是什么星座hcv8jop2ns1r.cn 肾炎吃什么食物好hcv9jop4ns1r.cn 什么茶养胃hcv7jop9ns2r.cn 女孩小名叫什么好hcv8jop5ns1r.cn 细菌性结膜炎用什么药hcv8jop6ns1r.cn
cpr是什么hcv9jop4ns0r.cn pdrn是什么yanzhenzixun.com 河豚吃什么baiqunet.com 贵族是什么意思啊hcv9jop4ns7r.cn 水保是什么hcv9jop3ns6r.cn
狗狗呕吐是什么原因hcv8jop6ns2r.cn 湿疹是什么皮肤病hcv8jop1ns2r.cn 阑尾在什么位置1949doufunao.com 1.23是什么星座hcv8jop9ns0r.cn 大拇指戴戒指是什么意思hcv8jop9ns2r.cn
pc肌是什么liaochangning.com 什么孕妇容易怀脑瘫儿hcv9jop5ns1r.cn 什么食物降火hcv8jop9ns1r.cn 舌头边上有锯齿状是什么原因hcv8jop1ns2r.cn 猪尾巴炖什么好吃hcv8jop3ns6r.cn
百度