Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| research:dsal:rg [2008/12/29 18:46] – created jfabry | research:dsal:rg [2009/01/08 20:05] (current) – jfabry | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== RG ===== | ||
| + | (Internal classification: | ||
| + | |||
| + | Reference paper: **" | ||
| + | |||
| + | There is a Xerox PARC techreport ((**RG: A Case-Study for Aspect-Oriented Programming** Anurag Mendhekar, Gregor Kiczales, John Lamping, Xerox PARC technical Report SPL97-009, 1997)) but this however does not give any more detailed information. | ||
| + | |||
| + | From Lopes' history paper ((**Aspect-Oriented Programming: | ||
| + | > Although the optimization of memory usage has never, since then, been analyzed as an aspect, the RG example was actually very interesting, | ||
| + | |||
| + | ===== Domain of the language ===== | ||
| + | |||
| + | An image processing system in which model is one of images passing through a series of filters, implemented as procedures. (RG stands for Reverse Graphics) | ||
| + | |||
| + | ===== Intent of the language ===== | ||
| + | |||
| + | Optimization of memory usage when composing filters by performing loop fusion. When each filter procedure is called, it loops over a number of input images and produces a new output image. Output images only exist briefly before being consumed by another loop. Results are " | ||
| + | |||
| + | (In the original techreport referenced in the paper computation and cache use optimisation is also mentioned.) | ||
| + | |||
| + | ===== Join Point Model and Advice Model ===== | ||
| + | |||
| + | * JPM: Domain-Specific: | ||
| + | * AM: Domain-Specific: | ||
| + | |||
| + | |||
| + | ===== Anatomy of the language ===== | ||
| + | |||
| + | The grammar of the language is not explicitly described, a Common Lisp syntax is used in the examples. | ||
| + | |||
| + | ===== Typical Example ===== | ||
| + | |||
| + | The example from the paper we reference (which is the same as in the techreport): | ||
| + | |||
| + | (cond ((and (eq (loop-shape node) ' | ||
| + | (eq (loop-shape input) ' | ||
| + | (fuse loop input ' | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | |||
| + | The example " | ||
| + | |||
| + | ===== Enforced Restrictions ===== | ||
| + | |||
| + | No explicit mention is made of restrictions in the advice language. | ||
| + | |||
| + | ===== Implementation description ===== | ||
| + | |||
| + | Weaving is done through source code transformation: | ||
| + | |||
| + | |||

