this work should motivate and enable research in
connecting methods particularly developed for high-
performance rendering (e.g. (W
¨
orister et al., 2013;
Haaser et al., 2015)) with domain specific languages
for scene and interaction specification (e.g. Vega-
lite’s grammar (Satyanarayan et al., 2017)). Anot-
her interesting research direction might be to con-
nect declarative scene descriptions to shader-centered
methods as recently explored by He et al. (He et al.,
2017).
4.3 Experience and Future Work
Clean concepts and semantics are noble goals. Our
experience with the system shows that a declarative
approach greatly reduces application complexity wit-
hout sacrificing expressiveness and performance and
that attribute grammars give structure to computer
graphics problems. In previous versions of our system
we used conventional scene graph implementations,
and it was crucial for our new approach to compose
with existing code and not to alienate developers with
too many tools and abstraction layers. In retrospect
we find that our new implementation is much smaller,
while having many more features, is easier to work
with and easier to extend. In the future we would like
to improve our naive attribute grammar implementa-
tion with native code generation in order to push even
more towards high-performance rendering.
5 CONCLUSIONS
Although concepts from computer language theory
are applicable to a wide range of use cases, we see sur-
prisingly little interdisciplinary work in this regard.
In this paper, we demonstrated a non-trivial applica-
tion of attribute grammars and self-adjusting compu-
tation in the field of visual computing. As our evalu-
ation shows, this approach solves a number of typical
problems of state-of-the-art scene graph systems in a
clean and well-founded manner.
ACKNOWLEDGEMENTS
We would like to thank Robert F. Tobler for all his
contributions — rest in peace.
VRVis is funded by BMVIT, BMDW, Styria, SFG
and Vienna Business Agency in the scope of CO-
MET - Competence Centers for Excellent Technolo-
gies (854174) which is managed by FFG.
REFERENCES
Acar, U. A. (2005). Self-adjusting computation. PhD thesis,
Carnegie Mellon University, Pittsburgh, PA, USA.
Acar, U. A., Blelloch, G., Ley-Wild, R., Tangwongsan, K.,
and Turkoglu, D. (2010). Traceable data types for
self-adjusting computation. In Proc. of the 2010 ACM
SIGPLAN conference on Programming language de-
sign and implementation, PLDI ’10, pages 483–496,
New York, NY, USA. ACM.
Acar, U. A., Blelloch, G. E., and Harper, R. (2002). Adap-
tive functional programming. In Proceedings of the
29th ACM SIGPLAN-SIGACT symposium on Prin-
ciples of programming languages, POPL ’02, pages
247–259, New York.
Bierman, G. M., Meijer, E., and Torgersen, M. (2007). Lost
in Translation: Formalizing Proposed Extensions to
C#. SIGPLAN Not., 42(10):479–498.
Burns, D. and Osfield, R. (2004). Open Scene Graph A:
Introd., B: Examples a. Applications. In Proc. of the
IEEE Virtual Reality 2004, VR ’04, page 265, Wa-
shington.
Carlsson, M. (2002). Monads for incremental computing.
In Proc. of the 7th ACM SIGPLAN internat. conf. on
Func. progr., ICFP ’02, pages 26–35, New York.
Durbin, J., Gossweiler, R., and Pausch, R. (1995). Amorti-
zing 3D Graphics Optimization Across Multiple Fra-
mes. In Proceedings of the 8th Annual ACM Sym-
posium on User Interface and Software Technology,
UIST ’95, pages 13–19, New York.
Ekman, T. and Hedin, G. (2007). The JastAdd system —
modular extensible compiler construction. Sci. Com-
put. Program., 69(1-3):14–26.
Haaser, G., Steinlechner, H., Maierhofer, S., and Tobler,
R. F. (2015). An Incremental Rendering VM. In Proc.
of the 7th Conference on High-Performance Graphics,
HPG ’15, pages 51–60, New York, NY, USA. ACM.
Hammer, M. A., Phang, K. Y., Hicks, M., and Foster, J. S.
(2014). Adapton: Composable, demand-driven in-
cremental computation. In Proceedings of the 35th
ACM SIGPLAN Conference on Programming Lan-
guage Design and Implementation, PLDI ’14, pages
156–166, New York.
He, Y., Foley, T., Hofstee, T., Long, H., and Fatahalian, K.
(2017). Shader components: Modular and high per-
formance shader development. ACM Trans. Graph.,
36(4):100:1–100:11.
Hudson, S. E. (1991). Incremental attribute evaluation: a
flexible algorithm for lazy update. ACM Trans. Pro-
gram. Lang. Syst., 13(3):315–341.
Jeff, B., Wallez, C., Tavenrath, M., Kilgard, M., Em-
mons, J., and Ludwig, T. (2015). NVidia com-
mand list. https://www.khronos.org/registry/OpenGL/
extensions/NV/NV command list.txt. accessed Oct
‘18.
Khronos Group, I. (2016). Vulkan 1.0 specifica-
tion. https://www.khronos.org/registry/vulkan/specs/
1.0/pdf/vkspec.pdf. accessed Oct ‘18.
Knuth, D. E. (1968). Semantics of context-free languages.
Mathematical systems theory, 2:127–145.
Attribute Grammars for Incremental Scene Graph Rendering
87