Abstract
Designing optimizing compilers is a challenging task that involves numerous mutually interdependent transformations. Often, these interdependencies are only captured in an ad-hoc manner, relying on the ingenuity and experience of the compiler engineers. ViDoC is a tool-kit for the specification-driven, interactive development of program optimizers in a service oriented way. In particular, ViDoC facilitates the specification of dependencies between transformations in terms of modal logic properties and requirements. These specifications can be used for checking, as well as synthesizing, suitable optimization sequences , which are expressed in terms of a workflow (graph) model. ViDoC also offers various kinds of visual support, like the display of flow graphs, call graphs and analysis information, and the visualization and even manipulation of the graphs expressing the optimization workflows. These features make ViDoC especially appropriate for rapid prototyping. ViDoC is constructed on top of the Soot infrastructure project, that targets the manipulation of Java byte code and offers powerful engines for realizing the specified analyzes and transformations. The visualization and workflow handling are designed according to the paradigm of Lightweight Process Coordination, realized in the jABC environment.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Margaria, T., Arenas, A., Bicarregui, J.: The FMICS view on the verified software repository. In: Proc. Integrated Design and Process Technology, IDPT-2006, San Diego, USA, 26-29 June 2006, pp. 26–29. Society for Design and Process Science (2006)
Click, C., Cooper, K.D.: Combining analyses, combining optimizations. ACM Transactions on Programming Languages and Systems 17(2), 181–196 (1995)
Giegerich, R., Möncke, U., Wilhelm, R.: Invariance of approximate semantics with respect to program transformations. In: 11. GI Jahrestagung. In conjunction with Third Conference of the European Co-operation in Informatics (ECI). Informatik-Fachberichte, vol. 50, pp. 1–10. Springer, Heidelberg (1981)
Knoop, J., Rüthing, O., Steffen, B.: Optimal code motion: Theory and practice. ACM Trans. Prog. Lang. Syst. 16(4), 1117–1155 (1994)
Knoop, J., Rüthing, O., Steffen, B.: Partial dead code elimination. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 147–158 (1994)
Lam, P., Qian, F., Lhoták, O.: Soot: a java optimization framework. http://www.sable.mcgill.ca/soot/
Lerner, S., Grove, D., Chambers, C.: Combining dataflow analyses and transformations. In: Conferernce Record of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2002), pp. 270–282. ACM Press, New York (2002)
Lerner, S., Millstein, T., Chambers, C.: Automatically proving the correctness of compiler optimizations. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 220–231 (2003)
Lerner, S., et al.: Automated soundness proofs for dataflow analyses and transformations via local rules. In: Conferernce Record of the 32nd ACM SIGPLAN-SIGACT, Symposium on Principles of Programming Languages (POPL 2005), pp. 364–377. ACM Press, New York (2005)
Margaria, T.: Web services-based tool-integration in the ETI platform. Int. Journal on Software and System Modelling 4(2), 141–156 (2005)
Margaria, T., Steffen, B.: Service engineering: Linking business and IT. IEEE Computer (To appear), Cover feature of IEEE Computer (invited), issue for the 60th anniversary of the Computer Society (2006)
Rüthing, O.: Interacting Code Motion Transformations: Their Impact and Their Complexity. LNCS, vol. 1539. Springer, Heidelberg (1999)
Steffen, B., Braun, V., Margaria, T.: The electronic tool integration platform: Concepts and design. Int. Journal on Software Tools for Technology Transfer (STTT) 1(1/2), 9–30 (1997), http://eti.cs.uni-dortmund.de
Steffen, B., Margaria, T.: Metaframe in practice: Intelligent network service design. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, pp. 390–415. Springer, Heidelberg (1999)
Steffen, B., et al.: Model-driven development with the jABC. In: Bin, E., Ziv, A., Ur, S. (eds.) HVC 2006. LNCS, vol. 4383, Springer, Heidelberg (2007)
Steffen, B., Margaria, T., von der Beeck, M.: Automatic synthesis of linear process models from temporal constraints: An incremental approach. In: Proc. ACM Int. Workshop on Automated Analysis of Software (AAS’97) - affiliated to POPL’97, pp. 127–141. ACM Press, New York (1997)
Steffen, B.: Data flow analysis as model checking. In: Ito, T., Meyer, A.R. (eds.) TACS 1991. LNCS, vol. 526, pp. 346–364. Springer, Heidelberg (1991)
Steffen, B.: Generating data flow analysis algorithms from modal specifications. International Journal on Science of Computer Programming 21, 115–139 (1993)
Whitfield, D.L., Soffa, M.L.: An approach for exploring code improving transformations. ACM Transactions on Programming Languages and Systems 19(6), 1053–1084 (1997)
Zhao, W., et al.: Vista: a system for interactive code improvement. In: Proceedings of the joint conference on Languages, compilers and tools for embedded systems (LCTES), pp. 155–164. ACM Press, New York (2002)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this chapter
Cite this chapter
Margaria, T., Rüthing, O., Steffen, B. (2007). ViDoC - Visual Design of Optimizing Compilers. In: Reps, T., Sagiv, M., Bauer, J. (eds) Program Analysis and Compilation, Theory and Practice. Lecture Notes in Computer Science, vol 4444. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71322-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-71322-7_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71315-9
Online ISBN: 978-3-540-71322-7
eBook Packages: Computer ScienceComputer Science (R0)