SEF9 - 46 Aspect Oriented Programming (AOP) Languages (e.g. C++, Java, Python, Ada)

AspectC++ - Aspect Oriented Programming (AOP) in C++
===========================================================
http://www.aspectc.org/

About the Project

The success of Aspect-Oriented Software Development rises and falls with user-friendly tool support. With AspectJ® ¹ the first complete and powerful language extension for AOP has been created.

With the AspectC++ project we extend the AspectJ approach to C/C++. It is a set of C++ language extensions to facilitate aspect-oriented programming with C/C++. An implementation of an AspectC++ compiler is available for download from our download page.

AspectJ - Aspect Oriented Programming (AOP) in JAVA
===========================================================

AspectJ is an aspect-oriented programming (AOP) extension created at PARC for the Java programming language. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse.

AspectJ has become a widely-used de facto standard for AOP by emphasizing simplicity and usability for end users. It uses Java-like syntax, and included IDE integrations for displaying crosscutting structure since its initial public release in 2001.

http://www.eclipse.org/ajdt/

Some aspects of system implementation, such as logging, error handling, standards enforcement and feature variations are notoriously difficult to implement in a modular way. The result is that code is tangled across a system and leads to quality, productivity and maintenance problems.

Aspect Oriented Software Development enables the clean modularization of these crosscutting concerns. The AspectJ Development Tools (AJDT) project provides Eclipse platform based tool support for AOSD with AspectJ. Our goal is to deliver a user experience that is consistent with the Java Development Tools (JDT) when working with AspectJ projects and resources.

AspectAda – Aspect Oriented Programming (AOP) in Ada95 (Ada Language)
============================================================

Concerns for concurrent systems are not always easy to modularize within single units using traditional programming languages.

The concept of aspect orientation can be applied to allow a modular implementation of these concerns. Existing programming languages has been extended with new language features to support aspect-orientation.

The most dominant of these language extensions are AspectJ for the Java programming language. However, Java is not ideal for all types of applications, or there exists legacy systems that need to be maintained.

This paper presents AspectAda a new language extension to Ada95 and an AspectAda weaver tool built with the Ada Semantic Interface Specifciation (ASIS).

The AspectAda language provides powerful language elements to facilitate aspect oriented programming in domains where Ada’s capabilities are of high interest and the AspectAda weaver tool demonstrates the AspectAda language in action

High-Integrity Object-Oriented Programming in Ada Release 1.4
===========================================================

http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf

Pytilities - Aspect Oriented Programming (AOP) in PYTHON
===========================================================
http://pytilities.sourceforge.net/doc/1.2.0/guide/

pytilities is a utility library, written in python. It provides various features, with aspect oriented programming capabilities for python being the major feature.

http://www.matusiak.eu/numerodix/blog/2010/3/12/aopy-aspect-oriented-python/

http://pytilities.sourceforge.net/doc/1.2.0/guide/aop/

Introduction
====================

The aim of aspect oriented programming (AOP) is to allow better separation of concerns. It allows you to centralise code spread out over multiple classes into a single class, called an aspect, uncluttering code.

Aspects consist of pieces of advice which are given to methods of a class. Advice are functions/methods that wrap around a method/descriptor, allowing them to change its behaviour.

With this AOP library you can give advice to methods, and any other kind of descriptor (e.g. properties). You can even ‘advise’ unexisting attributes on a class, effectively adding new attributes to the class.

--
WASSALAM
wruslan.hahaha

Microsoft Word Version
Return to Software Engineering Fundamentals (SEF9MMUWRY)
Previous Topic: 45 Object Oriented (OO) versus Aspect Oriented (AO) software design
Next Topic: READING => Ubuntu Edge on a mobile device (handphone)?

0 comments:

Post a Comment