ViSlang: A System for Interpreted Domain-specific Languages for Scientific Visualization
Peter Rautek, Stefan Bruckner, M. Eduard Gröller and Markus Hadwiger
IEEE Transactions on Visualization and Computer Graphics, Vol.20, No.12 (Proceedings IEEE Scientific Visualization 2014), pp. 2388-2396 , 2014
Researchers from many domains use scientific visualization in their daily practice. Existing implementations of algorithms usually come with a graphical user interface (high-level interface), or as software library or source code (low-level interface). In this paper we present a system that integrates domain-specific languages (DSLs) and facilitates the creation of new DSLs. DSLs provide an effective interface for domain scientists avoiding the difficulties involved with low-level interfaces and at the same time offering more flexibility than high-level interfaces. We describe the design and implementation of ViSlang, an interpreted language specifically tailored for scientific visualization. A major contribution of our design is the extensibility of the ViSlang language. Novel DSLs that are tailored to the problems of the domain can be created and integrated into ViSlang. We show that our approach can be added to existing user interfaces to increase the flexibility for expert users on demand, but at the same time does not interfere with the user experience of novice users. To demonstrate the flexibility of our approach we present new DSLs for volume processing, querying and visualization. We report the implementation effort for new DSLs and compare our approach with Matlab and Python implementations in terms of run-time performance.
@article{Rautek2014Vislang,
title = {ViSlang: A system for interpreted domain-specific languages for scientific visualization},
author = {Rautek, Peter and Bruckner, Stefan and Gr{\"o}ller, M Eduard and Hadwiger, Markus},
journal = {IEEE Transactions on Visualization and Computer Graphics (Proceedings IEEE Scientific Visualization 2014)},
year = {2014},
volume = {20},
number = {12},
pages = {2388--2396},
}