开发者

What to read as a good intro and quickstart to aspect-oriented programming and metaprogramming?

开发者 https://www.devze.com 2022-12-29 20:55 出处:网络
As I\'ve found myself repeating myself a lot, writing very similar queries and classes for different entities (despite 开发者_如何学编程of doing strong object and relational normalisation), etc, I\'ve

As I've found myself repeating myself a lot, writing very similar queries and classes for different entities (despite 开发者_如何学编程of doing strong object and relational normalisation), etc, I've came to an Idea that I could and should automate the most of this and write an engine which will compile simple declarative models I specify into all the code limiting my job to describe the task and and finally just customise the result as needed.

As far as I know this is about metaprogramming and aspect-oriented programming. How do I get acquainted with modern tools available quickly so that I don't invent one more bicycle developing my own?


For a good book introducing these concepts, see Domain-Specific Modeling: Enabling Full Code Generation by the creators of a DSM tool, MetaEdit+

Domain-Specific Modeling is a way to translate your concepts into code generation models, and covers AOP and metaprogramming.

I am working on ABSE, a system that lets you define aspects and concepts, and then automate your tasks through a code generation framework.


The most general background for understanding metaprogramming are program transformations. These are actions that convert program (fragments) to other program (fragments). All of metaprogramming can be explained in these terms: generation, template metaprogramming, code optimization, aspect-oriented programming, ...


Even though it's aimed at a specific programming language, the discussion of generics in the ConceptC++ tutorial is excellent. The conceptual approach they use is applicable to just about any kind of generic programming exercise -- I was able to adapt it for use in function-level generics in J, which is about as far from the C++ programming experience as it gets.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号