AspectC ++ - AspectC++
Vývojáři | Olaf Spinczyk (vedoucí projektu), Georg Blaschke, Christoph Borchert, Benjamin Kramer, Daniel Lohmann, Horst Schirmeier, Ute Spinczyk, Reinhard Tartler, Matthias Urban [1] |
---|---|
První vydání | 6. listopadu 2001[2] |
Stabilní uvolnění | 2.2 / 10. března 2017 |
Napsáno | C ++ |
Operační systém | Cross-platform |
Typ | Kompilátor zdroj-zdroj |
Licence | GPL 2+ |
webová stránka | www |
AspectC ++ je aspektově orientovaný rozšíření C a C ++ jazyky. Má to kompilátor zdroj-zdroj, který překládá AspectC ++ zdrojový kód do kompilovatelného C ++. Kompilátor je k dispozici pod GNU GPL, ačkoli někteří rozšíření specifické pro Microsoft Windows jsou k dispozici pouze prostřednictvím pure-systems GmbH.
Aspektově orientované programování umožňuje modularizovat průřezové problémy v jednom modul, an aspekt.Aspects can modify existing třídy, ale nejčastěji poskytují „rady“, které běží před, po nebo kolem existujících funkcí.
Příklad
Všechna volání konkrétní funkce lze vysledovat pomocí aspektu, místo vkládání příkazů 'cerr' nebo tisku na mnoha místech:
aspekt Stopař{ Rada volání("%% Iter :: Resetovat (...)") : před() { cerr << „zavolám Iter :: Reset na“ << JoinPoint::podpis() << konec; }};
Aspekt Tracer vytiskne zprávu před voláním na % Iter :: Reset
. The % Iter
syntaxe znamená, že bude odpovídat všem třídám, které končí v Iter.
Každé „shodné“ místo ve zdrojovém kódu se nazývá a připojit bod - rada je spojena s tímto kódem (nebo radí). AspectC ++ poskytuje rozhraní API pro připojení k poskytování a přístupu k informacím o bodě připojení. Například funkce:
JoinPoint::podpis()
vrací název funkce (která se shodovala % Iter :: Reset
), které bude brzy voláno.
API bodu spojení také poskytuje čas kompilace zadejte informace, které lze v rámci anaspect použít pro přístup k typu nebo hodnotě argumentů a návratovému typu a návratové hodnotě metody nebo funkce.
Reference
externí odkazy
Tento softwarové inženýrství související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |