Ho letto delle librerie che le persone hanno scritto per linguaggi come Java e C # che fanno uso della codifica di byte code per fare cose come le chiamate alle funzioni di intercettazione, inserire il codice di registrazione, ecc. Ho anche letto su Lisp / Clojure macro nel tentativo di capire meglio come utilizzarli. Più leggo sui macro, più mi sembra che forniscano lo stesso tipo di funzionalità delle librerie di codice byte. Per funzionalità, intendo la capacità di manipolare il codice in fase di compilazione.
Esempi di librerie che ho visto sarebbero AspectJ, PostSharp e Cecil.
C'è qualcosa che può essere fatto con uno e non con l'altro? In realtà risolvono gli stessi problemi o sto confrontando mele e arance?