From: Peter Date: 2003-12-10T22:47:13+09:00 Subject: Re: Underpinnings of Method Wrapping > Sorry, Peter. I just noticed that I may have misread this. You still mean to > use wraps just not cflow. Is that what you mean? I thought by *explict* you > meant not using wraps at all. > > I can see that cflow may not be easier as compared to just keeping a varaible > status, although they are practically interchangable -- once you determine > the algorthim that relates the cflow to such a variable. But if cflow causes > too much interpretor overhead to maintain, then variable is quite reasonable. Yep, that's the point. Writing it using cflow is a different way of thinking - which isn't necessarily bad - but it may not match the fact that the code you're looking at is procedural. There is a reason why program analyses - which look at the program in a mathematical way - are limited in their possibilities. It is even hard to do it oneself in the general case. And I used the term explicit probably because cflow is what AspectJ offers and it implements it using a wrap and a avriable, so the former is a higher level description of the latter which is then explicit. They can do that in AspectJ by limiting the combinations of cflow (&&, ||, !), and because it's a static language. Also they don't have to deal with method redefinition. As such, I'm sure they can handle more complex expressions involving cflow and have little overhead at runtime. Peter