AspectC++
એસ્પેક્ટસી + + એ સી અને સી + + ભાષાઓનું એક પાસું-લક્ષી વિસ્તરણ છે. તેમાં સોર્સ-ટુ-સોર્સ કમ્પાઇલર છે, જે એસ્પેક્ટસી + + સોર્સ કોડને કમ્પાઈલેબલ સી + + માં અનુવાદિત કરે છે. કમ્પાઇલર જી. એન. યુ. જી. પી. એલ. હેઠળ ઉપલબ્ધ છે, જોકે માઇક્રોસોફ્ટ વિન્ડોઝ માટે વિશિષ્ટ કેટલાક એક્સ્ટેન્શન્સ માત્ર પ્યોર-સિસ્ટમ્સ જી. એમ. બી. એચ. દ્વારા ઉપલબ્ધ છે. એસ્પેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ એક જ મોડ્યુલમાં ક્રોસ-કટિંગની ચિંતાઓને મોડ્યુલરાઇઝ કરવાની મંજૂરી આપે છે, એક પાસું. પાસાઓ પ્રવર્તમાન વર્ગોમાં ફેરફાર કરી શકે છે, પરંતુ સામાન્ય રીતે તેઓ 'સલાહ' પ્રદાન કરે છે જે પ્રવર્તમાન કાર્યક્ષમતા પહેલા, પછી અથવા તેની આસપાસ ચાલે છે. ઉદાહરણ કોઈ ચોક્કસ કાર્ય માટેના તમામ કૉલ્સને 'સી. આર. આર.' દાખલ કરવાને બદલે એક પાસાનો ઉપયોગ કરીને શોધી શકાય છે અથવા ઘણી જગ્યાએ સ્ટેટમેન્ટ પ્રિન્ટ કરી શકાય છેઃ એસ્પેક્ટ ટ્રેસર {સલાહ કૉલ ("%% આઈ. ટી. આર.: રીસેટ (.)"): પહેલાં () {સી. આર. આર. <<"આઈ. ટી. આર. ને કૉલ કરવા જઈ રહ્યું છેઃઃ" <<જોઇનપોઈન્ટઃઃ સહી () <<એન્ડલ;} "માટે રીસેટ કરો; ટ્રેસર પાસું"% આઈ. ટી. આર.:: રીસેટ "પર કોઈપણ કૉલ પહેલાં સંદેશ પ્રિન્ટ કરશે. % Iter વાક્યરચનાનો અર્થ એ છે કે તે Iter માં સમાપ્ત થતા તમામ વર્ગો સાથે મેળ ખાશે. સ્રોત કોડમાં દરેક 'મેળ ખાતા' સ્થાનને જોડ બિંદુ કહેવામાં આવે છે-સલાહ તે કોડ સાથે જોડાયેલી હોય છે (અથવા સલાહ આપે છે). એસ્પેક્ટસી + + જોડ બિંદુ વિશેની માહિતી પ્રદાન કરવા અને તેની પહોંચ મેળવવા માટે જોડ બિંદુ એપીઆઈ પ્રદાન કરે છે. ઉદાહરણ તરીકે, ફંક્શનઃ JoinPoint:: સ્બાક્ષર () ફંક્શનનું નામ આપે છે (જે% Iter:: રીસેટ સાથે મેળ ખાય છે) જે કૉલ થવા જઈ રહ્યું છે. જોડા બિંદુ API સંકલન-સમય પ્રકારની માહિતી પણ પ્રદાન કરે છે જેનો ઉપયોગ દલીલોના પ્રકાર અથવા મૂલ્ય અને પદ્ધતિ અથવા કાર્યના વળતર પ્રકાર અને વળતર મૂલ્યને ઍક્સેસ કરવા માટે એક પાસામાં થઈ શકે છે. સંદર્ભો બાહ્ય કડીઓ ભૂતકાળની AOSD પરિષદોમાં એસ્પેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ અને એસ્પેક્ટ-C + + પરના લેખો એસ્પેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ C + + પ્રોગ્રામિંગ લેંગ્વેજ ફેમિલી