Scope variazioni comportamentali in estensioni dinamiche

1

Durante la lettura di un documento nel contesto di Aspect Oriented Programming, ho riscontrato la seguente dichiarazione:

Aspects enable scoping variations in space (with a rich variety of static pointcuts), in time (with dynamic aspects), and in the control flow (with the corresponding pointcuts). Scoping a variation to the dynamic extent of an expression is however challenging, since scoping between threads is not easily realized with aspects.

Ho già familiarità con AOSD: la sua funzione principale è modulare i problemi trasversali. Tuttavia non mi è chiaro cosa intendano con "scope scope", in particolare l'ultima: "definire una variazione dell'estensione dinamica in un'espressione".

Qualcuno potrebbe elaborare su cosa significano queste variazioni dell'ambito?

    
posta Pieter Meiresone 07.12.2014 - 10:39
fonte

1 risposta

1

Ecco la mia comprensione.

Aspects enable scoping variations in space (with a rich variety of static pointcuts),

Ciò significa che una sezione specifica di codice può fare cose diverse.

in time (with dynamic aspects),

Ciò significa che dal momento in cui si colpisce un punto del codice in un altro, il comportamento viene modificato dall'aspetto.

and in the control flow (with the corresponding pointcuts).

Il flusso delle chiamate alle funzioni cambia.

Scoping a variation to the dynamic extent of an expression is
however challenging, since scoping between threads is not
easily realized with aspects.

Supponiamo che tu abbia un programma multi-thread con il messaggio che passa tra i thread. L'estensione dinamica di un'espressione è tutto ciò che è parte del calcolo di quell'espressione, incluso il lavoro svolto da altri thread.

Quindi ecco cosa stanno cercando di ottenere. I thread A e B comunicano entrambi con un thread di lavoro C. Vogliono che cosa C sia interessato dallo stato del thread che richiede il lavoro. Ma A e B sono fili indipendenti, in diversi stati con diversi aspetti attivati. Ciò significa che non è possibile ottenere il comportamento desiderato da C con uno dei meccanismi sopra descritti.

A giudicare dall'astratto, il loro metodo per raggiungere questo obiettivo è quello di passare le informazioni nel messaggio che indurrà C a delegare importanti decisioni al thread di origine, che può quindi essere controllato dall'aspetto per avere un comportamento corretto. Devo chiedermi qual è il sovraccarico risultante di questo comportamento in termini di passaggio di messaggi aggiuntivi e di opzioni di contesto.

(C'è un vecchio detto: "Per eseguire il debug del codice devi essere due volte più intelligente di quando lo hai scritto. Quindi se scrivi codice che è il più intelligente possibile, allora per definizione non sei abbastanza intelligente debug. "Questo è il motivo per cui sono sospettoso di AOP, non importa quali benefici i suoi aderenti si siano convinti che stanno guadagnando ...)

    
risposta data 07.12.2014 - 19:52
fonte

Leggi altre domande sui tag