You can edit almost every page by Creating an account and confirming your email.

AspectC++

From EverybodyWiki Bios & Wiki

AspectC++ Compiler
Developer(s)Olaf Spinczyk (project leader), Georg Blaschke, Christoph Borchert, Benjamin Kramer, Daniel Lohmann, Horst Schirmeier, Ute Spinczyk, Reinhard Tartler, Matthias Urban [1]
Initial releaseNovember 6, 2001; 24 years ago (2001-11-06) [2]
Stable release
2.3 / February 17, 2021; 5 years ago (2021-02-17)
Written inC++
Engine
    Operating systemCross-platform
    TypeSource-to-source Compiler
    LicenseGPL 2+
    Websitewww.aspectc.org

    Search AspectC++ on Amazon.

    AspectC++ is an aspect-oriented extension of C and C++ languages. It has a source-to-source compiler, which translates AspectC++ source code into compilable C++. The compiler is available under the GNU GPL, though some extensions specific to Microsoft Windows are only available through pure-systems GmbH.

    Aspect-oriented programming allows modularizing cross-cutting concerns in a single module, an aspect. Aspects can modify existing classes, but most commonly they provide 'advice' that runs before, after, or around existing functionality.

    Example

    All calls to a specific function can be traced using an aspect, rather than inserting 'cerr' or print statements in many places:

    aspect Tracer
    { 
       advice call("% %Iter::Reset(...)") : before()
       {
          cerr << "about to call Iter::Reset for " << JoinPoint::signature() << endl;
       }
    };
    

    The Tracer aspect will print out a message before any call to %Iter::Reset. The %Iter syntax means that it will match all classes that end in Iter.

    Each 'matched' location in the source code is called a join point—the advice is joined to (or advises) that code. AspectC++ provides a join point API to provide and access to information about the join point. For example, the function:

    JoinPoint::signature()
    

    returns the name of the function (that matched %Iter::Reset) that is about to be called.

    The join point API also provides compile-time type information that can be used within an aspect to access the type or the value of the arguments and the return type and return value of a method or function.

    References

    1. "AspectC++ Contact".
    2. "NetBeat Webhosting - www.netbeat.de".

    External links

    Template:Aosd


    This article "AspectC++" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:AspectC++. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.