Abstract
Smalltalk is not only an object-oriented programming language; it is also known for its extensive integrated development environment supporting interactive and dynamic programming. While the default tools are adequate for browsing the code and developing applications, it is often cumbersome to extend the environment to support new language constructs or to build additional tools supporting new ways of navigating and presenting source code. In this paper, we present the OmniBrowser, a browser framework that supports the definition of browsers based on an explicit metamodel. With OmniBrowser a domain model is described in a graph and the navigation in this graph is specified in its associated metagraph. We present how new browsers are built from predefined parts and how new tools are easily described. The browser framework is implemented in the Squeak Smalltalk environment. This paper shows several concrete instantiations of the framework: a remake of the ubiquitous Smalltalk System Browser, and a coverage browser.
We gratefully acknowledge the financial support of the Swiss National Science Foundation Recast (SNF 2000-061655.00/1), the Cook ANR french projects and the Science Foundation Ireland and Lero - the Irish Software Engineering Research Centre.
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
Alpert, S.R., Brown, K., Woolf, B.: The Design Patterns Smalltalk Companion. Addison-Wesley, Reading (1998)
Ducasse, S., et al.: Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems 28(2), 331–388 (2006)
Freeman-Benson, B.N.: A module mechanism for constraints in Smalltalk. In: Proceedings OOPSLA ’89. ACM SIGPLAN Notices, vol. 24, pp. 389–396. ACM, New York (Oct. 1989)
Fowler, M., et al.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
Goldberg, A.: Smalltalk 80: the Interactive Programming Environment. Addison-Wesley, Reading (1984)
Goodman, D.: The Complete HyperCard 2.2 Handbook. iUniverse (1998)
Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison-Wesley, Reading (May 1983)
Haldimann, N.: A sophisticated programming environment to cope with scoped changes. Informatikprojekt, University of Bern (December 2005)
Jhotdraw: a java gui framework for technical and structured graphics, http://www.jhotdraw.org
Johnson, R.E.: Documenting frameworks using patterns. In: Proceedings OOPSLA ’92, October 1992, vol. 27, pp. 63–76 (1992)
Krasner, G.E., Pope, S.T.: A cookbook for using the model-view-controller user interface paradigm in Smalltalk-80. Journal of Object-Oriented Programming 1(3), 26–49 (1988)
Roberts, D., Brant, J., Johnson, R.E.: A refactoring tool for Smalltalk. Theory and Practice of Object Systems (TAPOS) 3(4), 253–263 (1997)
Roberts, D., et al.: An automated refactoring tool. In: Proceedings of ICAST ’96, Chicago, IL (April 1996)
Reenskaug, T.M.H.: The model-view-controller (mvc) – its past and present. In: JavaZONE, Oslo (2003)
Reenskaug, T.M.H.: Models - views - controllers (December 1979), http://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf
Roberts, D., Johnson, R.E.: Evolving frameworks: A pattern language for developing object-oriented frameworks. In: Pattern Languages of Program Design 3, Addison-Wesley, Reading (1997)
Schärli, N., Black, A.P.: A browser for incremental programming. Computer Languages, Systems and Structures 30, 79–95 (2004)
Steyaert, P., et al.: Reflective user interface builders. In: Zimmerman, C. (ed.) Advances in Object-Oriented Metalevel Architectures and Reflection, pp. 291–309. CRC Press, Boca Raton (1996)
Steyaert, P., et al.: Reuse Contracts: Managing the Evolution of Reusable Assets. In: Proceedings of OOPSLA ’96 (International Conference on Object-Oriented Programming, Systems, Languages, and Applications), pp. 268–285. ACM Press, New York (1996)
Szekely, P., Myers, B.: A user interface toolkit based on graphical objects and constraints. In: Proceedings OOPSLA ’88, November 1988. ACM SIGPLAN Notices, vol. 23, pp. 36–45. ACM, New York (1988)
Wuyts, R., Ducasse, S.: Unanticipated integration of development tools using the classification model. Journal of Computer Languages, Systems and Structures 30(1-2), 63–77 (2004)
Wuyts, R.: Class-management using logical queries, application of a reflective user interface builder. In: Polak, I. (ed.) Proceedings of GRONICS ’96, pp. 61–67 (1996)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Bergel, A., Ducasse, S., Putney, C., Wuyts, R. (2007). Meta-driven Browsers. In: De Meuter, W. (eds) Advances in Smalltalk. ISC 2006. Lecture Notes in Computer Science, vol 4406. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71836-9_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-71836-9_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71835-2
Online ISBN: 978-3-540-71836-9
eBook Packages: Computer ScienceComputer Science (R0)