Path: coconuts.jaist!wnoc-tyo-news!wnoc-sfc-news!news0-cc-keio!ae-news!ae-news!iijima From: iijima@ae.keio.ac.jp (Tadashi Iijima) Newsgroups: fj.meetings,fj.org.ipsj Subject: Tutorial: Aspect Oriented Programming Date: 6 Sep 97 17:30:44 Organization: Dept of Admin. Engineering, KEIO Univ., Yokohama Japan. Lines: 176 Distribution: fj Message-ID: NNTP-Posting-Host: festiva.ae.keio.ac.jp Xref: coconuts.jaist fj.meetings:4188 fj.org.ipsj:285 参加者募集!! 情報処理学会,ソフトウェア工学研究会 慶応大学の飯島でございます. 情報処理学会ソフトウェア工学研究会からのご案内をさせていただきます. 参加者募集 「チュートリアル:アスペクト指向プログラミング」 9月11日(木)に,情報処理学会会議室(JR田町駅徒歩8分くらい)で, ソフトウェア工学研究会を開催します.この研究会の中で, Xerox Palo Alto Research CenterのGregor Kiczales氏をお招きして, 「チュートリアル:アスペクト指向プログラミング」 を行う予定です.アスペクト指向プログラミングは, ポスト・オブジェクト指向(?!)として,ソフトウェア工学にとって 重要なパラダイムの一つです. 6月ECOOP'97でワークショップがあり,10月のOOPSLA'97でも 講演があるとのことで,OOPSLAに先立って本邦初のチュートリアルを お願いすることとなりました.是非,この機会をお見逃しのないよう, ご案内申し上げます. 日時:9月11日(木) 13:30〜14:45(チュートリアルの時間帯) 場所:情報処理学会会議室 (JR田町駅か地下鉄三田駅下車徒歩10分くらい) 東京都港区芝浦3-16-20芝浦前川ビル7F Tel.03-5484-3535 参加:事前に連絡の必要はありません.直接お越しください. 当日は11:35からソフトウェア工学研究会が開催されており, このチュートリアルはその一部です. 参加費(当日支払)は,以下の通りです. 当研究会登録会員:無料 情報処理学会会員:当日の資料代のみ 情報処理学会学生会員:500円 非会員:1000円+当日の資料代 ※当日の研究会全体のプログラムと会場の地図は, ソフトウェア工学研究会ホームページ http://www.comp.ae.keio.ac.jp/lab/iijima/sigse.html 中の http://www.comp.ae.keio.ac.jp/lab/iijima/meetings/sigse97/se9709prog1.html にあります.プログラムは学会誌会告ページにも掲載されています. 以下に, Gregor Kiczales氏から頂戴した要約と自己紹介(翻訳を 付けましたが,一応,原文も添付します),参考となりそうな 関連するリンクなどを補足したものを添付いたします. 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 チュートリアル講演要約(訳:飯島) アスペクト指向プログラミング (設計と実装における種々の側面の分離を目指した オブジェクトを越えるパラダイム) オブジェクトは,これまで多大な成功を収めてきた.(GUIツールの 単純なデータ構造からはじまって,ネットワークサーバに至るまでまで の)いろいろなスケールの機能単位が,オブジェクトによって分かりや すくカプセル化できるようになり,それによってソフトウェア開発の改善 が図られてきた. しかし,オブジェクトは,同期,ネットワーク利用法,メモリ管理,複製 などといったシステマティックな要素を取り扱うには,十分に役立つとは いえない.たとえば,同期に関することをオブジェクトの内部に局所化 することは,UI機能をオブジェクト内部に局所化するようにはうまくいか ない.既存のシステム中の複雑さや脆さの多くは,そうしたシステマティ ックな要素のプログラミングがコード全体に渡ってもつれ合っているた めに生じている. そこで,アスペクトと呼ぶ,ソフトウェアのモジュラリティの新しい単位 を提案した.アスペクトは,そうしたシステマティックな要素を管理する 上で,よりよい糸口を与えるものである. アスペクトは,設計と実装の両方で使うことを意図している.設計段 階では,アスペクトは,システマティックな設計要素をよりよく局所化す るのに役立つ.実装段階では,オブジェクト指向言語が設計中に含ま れるオブジェクトを,それぞれ直接,オブジェクトとしてプログラミングで きるのと同じように,アスペクト指向プログラミング言語では,アスペクト をアスペクトとして,そのままプログラミングできる. このチュートリアルでは,アスペクトのアイデア,そのための技術で あるアスペクト指向プログラミング,それらを理解するための事柄につ いて述べる. 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 後援者紹介(訳:飯島) Gregor Kiczales氏は,Xerox社Palo Alto研究所のprincipal scientist であり,ソフトウェア・アーキテクチャ,プログラミング言語およびソフト ウェア工学に関心を持っている. 彼の研究成果にはオブジェクト指向言語の設計と実装がある. CommonLisp Object System(CLOS)の設計者の一人であり,PCL(CLOS の高性能な移植性の高い実装)の実装者である.CLOSのメタオブジェ クトプロトコルを設計し,Jim des Rivieres と Danny Bobrowとともに, 「The Art of the Metaobject Protocol 」という本を著している.オープン ・インプリメンテーションという概念を構築し,最近では,アスペクト指向 プログラミングに力を注いでいる.アスペクト指向プログラミングは, 単一のモジュールに局所化しにくい(あるいはそれが可能であっ たとしても)要素が重要であるようなシステムを取り扱うのに,有効 な方法を提供することを目指している. 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 補足情報(飯島) 1) Gregor Kiczalesさんについては,以下のWWWページもあります. http://www.parc.xerox.com/spl/members/gregor/ 2) アスペクト指向プログラミングに関して印刷されたものでは, 以下の中にも,半ページほどの短いものですが言及されています. ACM Computing SurveysのACM50th Anniversary issue "Strategic Directions in Computing Research"(Vol.28 No.4,1996)の 中のRachid Guerraoui et al.: “StrategicDirection in Object-Oriented Programming" 3) アスペクト指向プログラミングのホームページは,以下です. http://www.parc.xerox.com/aop/ 4) アスペクト指向プログラミングの簡潔な解説は, ACMの電子図書館(登録が必要ですが,オンラインでできます)に もあります. http://www.acm.org/pubs/articles/journals/surveys/1996-28-4es/a154-kiczales 5) 自己紹介に書かれているオープン・インプリメンテーリョンに関し ては, http://www.parc.xerox.com/spl/projects/oi/ 印刷物では, Gregor Kiczales: "Beyond the Black Box: Open Implementation," IEEE Software, January 1996 6) 自己紹介に書かれているメタオブジェクトプロトコルの本は, Gregor Kiczales, Jim des Rivirres, and Daniel G. Bobrow: "The Art of the Metaobject Protocol," The MIT Press(1991) ISBN 0-262-11158-6(hc), ISBN 0-262-61074-4(pbk.) 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 チュートリアル講演要約(原文) Aspect-Oriented Programming (going beyond objects for better separation of concerns in design and implementation) Gregor Kiczales Principal Scientist, Xerox Palo Alto Research Center Objects have been a great success. They have improved software development by allowing us to cleanly encapsulate units of functionality of various scales -- from simple data structures to GUI tools to network servers. But objects don't seem to help as much in dealing with systemic concerns such as synchronization, network usage, memory management, replication and the like. Trying to localize synchronization issues inside of an object just doesn't seem to work as well as trying to localize UI functionality inside of an object. Much of the complexity and brittleness in existing systems appears to stem from the way in which the programming of these issues is intertwined throughout the code. We have invented a new unit of software modularity, called an aspect, that appears to provide a better handle on managing such systemic issues. Aspects are intended to be used in both design and implementation. During design they make it possible to better localize systemic design issues. During implementation, aspect-oriented programming languages make it possible to program directly in terms aspects, just as object-oriented languages have made it possible to program directly in terms of objects in the design. This talk will present the idea of aspects, aspect-oriented programming, the kinds of systems the technology appears to be best suited for, and some of what it will take to get us there. 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 後援者紹介(原文) Gregor Kiczales is a principal scientist at the Xerox Palo Alto Research Center. His research interests are in software architecture, programming languages and software engineering. He work includes object-oriented programming language design and implementation -- he was one of the designers of the Common Lisp Object system (CLOS), and was the implementor of PCL, a high-performance portable implementation of CLOS. He designed the CLOS metaobject protocol, and authored, together with Jim des Rivieres and Danny Bobrow, ``The Art of the Metaobject Protocol''. He developed the concept of open implementation. Most recently he has been focusing on aspect-oriented programming, which is intended to provide an effective way of handling systems in which there are issues of importance that are not easy (or even possible) to localize to a single module. 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 -- ----- iijima