Graphic Rendering Considered as a Compilation Chain

  • Benjamin Tissoires
  • Stéphane Conversy
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5136)


Graphical rendering must be fast enough so as to avoid hindering the user perception/action loop. Traditionally, programmers interleave descriptions and optimizations to achieve such performances, thus compromising modularity. In this paper, we consider graphic rendering as a compilation chain: we designed a static and dynamic graphical compiler that enables a designer to clearly separate the description of an interactive scene from its implementation and optimization. In order to express dependencies during run-time, the compiler builds a dataflow that can handle user input and data. We successfully used this approach on both a WIMP application and on a demanding one in terms of computing power: description is completely separated from implementation and optimizations while performances are comparable to manually optimized applications.


interactive software computer graphics compiler dataflow  modularity 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, V., R., S., Ullman, J.D., Ullman, J.: Compilers: Principles, Techniques, and Tools. Morgan Addison-Wesley, Boston (1986)Google Scholar
  2. 2.
    Barboni, E., Conversy, S., Navarre, D., Palanque, P.: Model-based engineering of widgets, user applications and servers compliant with arinc 661 specification. In: Doherty, G., Blandford, A. (eds.) DSVIS 2006. LNCS, vol. 4323, pp. 25–38. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Bederson, B.B., Grosjean, J., Meyer, J.: Toolkit Design for Interactive Structured Graphics. IEEE Transactions on Software Engineering 30(8), 535–546 (2004)CrossRefGoogle Scholar
  4. 4.
    Blanch, R., Beaudouin-Lafon, M., Conversy, S., Jestin, Y., Baudel, T., Zhao, Y.P.: Indigo : une architecture pour la conception d’applications graphiques interactives distribuées. In: 17th conference on Conférence Francophone sur l’Interaction Homme-Machine, pp. 139–146. ACM Press, New York (2005)CrossRefGoogle Scholar
  5. 5.
    Burke, M., Torczon, L.: Interprocedural optimization: eliminating unnecessary recompilation. ACM Trans. Program. Lang. Syst. 15, 367–399 (1993)CrossRefGoogle Scholar
  6. 6.
    Chatty, S.: Defining the behaviour of animated interfaces. In: IFIP TC2/WG2, pp. 95–111. North-Holland Publishing Co, Amsterdam (1992)Google Scholar
  7. 7.
    Chatty, S., Sire, S., Vinot, J.-L., Lecoanet, P., Lemort, A., Mertz, C.: Revisiting visual interface programming: creating GUI tools for designers and programmers. In: 17th annual ACM symposium on User interface software and technology, pp. 267–276. ACM Press, New York (2004)CrossRefGoogle Scholar
  8. 8.
    Conversy, S., Barboni, E., Navarre, D., Palanque, P.: Improving modularity of interactive software with the MDPC architecture. In: EIS (Engineering Interactive Systems) conference 2007, joint HCSE 2007, EHCI 2007 and DSVIS 2007 conferences. LNCS. Springer, Heidelberg (2008)Google Scholar
  9. 9.
    Deutsch, L.P., Schiffman, A.M.: Efficient implementation of the smalltalk-80 system. In: 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 297–302. ACM Press, New York (1984)CrossRefGoogle Scholar
  10. 10.
    Dourish, P.: Using Metalevel Techniques in a Flexible Toolkit for CSCW Applications. ACM Trans. Comput.-Hum. Interact. 5, 109–155 (1998)CrossRefGoogle Scholar
  11. 11.
    Dragicevic, P., Fekete, J.-D.: The input configurator toolkit: towards high input adaptability in interactive applications. In: AVI 2004: working conference on Advanced visual interfaces, pp. 244–247. ACM Press, New York (2004)CrossRefGoogle Scholar
  12. 12.
    Draves, S.: Compiler Generation for Interactive Graphics using Intermediate Code. In: Danvy, O., Thiemann, P., Glück, R. (eds.) Dagstuhl Seminar 1996. LNCS, vol. 1110, pp. 95–114. Springer, Heidelberg (1996)Google Scholar
  13. 13.
    Hölzle, U., Ungar, D.: A third-generation self implementation: reconciling responsiveness with performance. In: 9th annual conference on Object-oriented programming systems, language, and applications, pp. 229–243. ACM Press, New York (1994)CrossRefGoogle Scholar
  14. 14.
    Huot, S., Dumas, C., Dragicevic, P., Fekete, J.-D., Hégron, G.: The magglite post-wimp toolkit: draw it, connect it and run it. In: 17th annual ACM symposium on User interface software and technology, pp. 257–266. ACM Press, New York (2004)CrossRefGoogle Scholar
  15. 15.
    Kiczales, G., Lamping, J., Lopes, C.V., Maeda, C., Mendhekar, A., Murphy, G.: Open implementation design guidelines. In: 19th international Conference on Software Engineering, pp. 481–490. ACM Press, New York (1997)Google Scholar
  16. 16.
    Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: IEEE international symposium on Code generation and optimization, pp. 75–86. IEEE Press, New York (2004)CrossRefGoogle Scholar
  17. 17.
    Peercy, M.S., Olano, M., Airey, J., Ungar, P.J.: Interactive multi-pass programmable shading. In: 27th Annual Conference on Computer Graphics and interactive Techniques International Conference on Computer Graphics and Interactive Techniques, pp. 425–432. ACM Press, New York (2000)Google Scholar
  18. 18.
    Zanden, B.T.V., Halterman, R., Myers, B.A., McDaniel, R., Miller, R., Szekely, P., Giuse, D.A., Kosbie, D.: Lessons learned about one-way, dataflow constraints in the garnet and amulet graphical toolkits. ACM Trans. Program. Lang. Syst. 23, 776–796 (1994)CrossRefGoogle Scholar
  19. 19.
    Zanden, B.T.V., Myers, B.A., Giuse, D.A., Szekely, P.: Integrating pointer variables into one-way constraint models. ACM Trans. Comput.-Hum. Interact. 1, 161–213 (1994)CrossRefGoogle Scholar
  20. 20.
    Zanden, B.T.V., Halterman, R.: Using model dataflow graphs to reduce the storage requirements of constraints. ACM Trans. Comput.-Hum. Interact. 8, 223–265 (2001)CrossRefGoogle Scholar
  21. 21.
    ARINC Specification 661-3 Cockpit Display System Interfaces to User Systems, Aeronautical Radio Inc. (2007)Google Scholar
  22. 22.
    Scalable Vector Graphics (SVG) 1.1 Specification. W3C Recommendation (2003),
  23. 23.
    XSL Transformations (XSLT) Version 1.0. W3C Recommendation (1999),

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Benjamin Tissoires
    • 1
    • 2
    • 3
  • Stéphane Conversy
    • 2
    • 3
  1. 1.DGAC / DSNA / DTI / R&D.ToulouseFrance
  2. 2.ENAC, Laboratoire d’Informatique Interactive. ToulouseFrance
  3. 3.IRIT - IHCSUniversité Paul Sabatier.Toulouse Cedex 4France

Personalised recommendations