From: SourceForge.net <no...@so...> - 2007-04-23 15:56:11
|
Feature Requests item #1705635, was opened at 2007-04-23 07:58 Message generated for change (Comment added) made by wsfulton You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=351645&aid=1705635&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Priority: 5 Private: No Submitted By: Markus Elfring (elfring) Assigned to: William Fulton (wsfulton) Summary: aspect-oriented software development Initial Comment: Can your implementation and the generated software benefit from this design approach? http://en.wikipedia.org/wiki/Aspect-oriented_programming ---------------------------------------------------------------------- >Comment By: William Fulton (wsfulton) Date: 2007-04-23 15:56 Message: Logged In: YES user_id=242951 Originator: NO If you are looking for pure C++ aspects, then there is a missing part to SWIG. One day someone will provide a C++ language module which will then fill in the missing piece. This would basically be a C++ generator when parsing C or C++ code. Right now the aspects are for cross language interoperation where the code being generated for use by Java/Python etc is tailored using various SWIG directives. Directives like SWIG's %extend/($this or $action) (akin to FEATUREC++'s refines/super) solve the extensibility problem and constructor propagation by generating target language proxy classes. The canonical logging example is solved using the %exception feature, see the Customization.html chapter or even just Customization.html#Customization_clearing_features for an example on logging. Typemaps and %feature provide what seems to be called pointcuts. Introduction advices, such as adding in new methods/constructors are supported by %extend. Removal of methods/classes is done with %ignore and we even have %rename to rename methods/classes. I'm not sure what we can reuse as we have our own parser. SWIG parses standard C++, so I'm not sure about C++ extensions. If someone wants to wrap code with these aspects, then I guess support for the extension could be added. ---------------------------------------------------------------------- Comment By: Markus Elfring (elfring) Date: 2007-04-23 08:53 Message: Logged In: YES user_id=572001 Originator: YES Would you like to reuse anything from the evolving tools and libraries? http://aspectc.org/ http://wwwiti.cs.uni-magdeburg.de/iti_db/forschung/fop/featurec/ Are any pointcuts and advices provided by your software already? I would appreciate the addition of a dedicated chapter in the documentation. ---------------------------------------------------------------------- Comment By: William Fulton (wsfulton) Date: 2007-04-23 08:31 Message: Logged In: YES user_id=242951 Originator: NO I see the SWIG features and typemaps as aspects. The aspects are concerned with code marshalling and error checking. What SWIG does is take the snippets of code from these aspects to generate code before and after a function call. Can you please elaborate if there is some particular feature of AOP that you are interested in seeing SWIG support? Aspects and AOP terminology isn't used in the SWIG documentation, but putting a section on AOP techniques and SWIG directives might be useful. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=351645&aid=1705635&group_id=1645 |