Class browser

Class browser
Screenshot of Gedit with Python, LaTeX and Class Browser extensions, displaying Inkscape's lorem ipsum extension.

A class browser is a feature of an integrated development environment (IDE) that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code.

Contents

History

Most modern class browsers owe their origins to Smalltalk, one of the earliest object-oriented languages and development environments. The typical Smalltalk "five-pane" browser is a series of horizontally-abutting selection panes positioned above an editing pane, the selection panes allow the user to specify first a category and then a class, and further to refine the selection to indicate a specific class- or instance-method the implementation of which is presented in the editing pane for inspection or modification.

Most succeeding object-oriented languages differed from Smalltalk in that they were compiled and executed in a discrete runtime environment, rather that being dynamically integrated into a monolithic system like the early Smalltalk environments. Nevertheless, the concept of a table-like or graphic browser to navigate a class hierarchy caught on.

With the popularity of C++ starting in the late-1980s, modern IDEs added class browsers, at first to simply navigate class hierarchies, and later to aid in the creation of new classes. With the introduction of Java in the mid-1990s class browsers became an expected part of any graphic development environment.

In modern IDEs

All major development environments supply some manner of class browser, including

Modern class browsers fall into three general categories: the columnar browsers, the outline browsers, and the diagram browsers.

Columnar browsers

Continuing the Smalltalk tradition, columnar browsers display the class hierarchy from left to right in a series of columns. Often the rightmost column is reserved for the instance methods or variables of the leaf class.

Outline browsers

Systems with roots in Microsoft Windows tend to use an outline-form browser, often with colorful (if cryptic) icons to denote classes and their attributes.

Diagram browsers

In the early years of the 21st century class browsers began to morph into modeling tools, where programmers could not only visualize their class hierarchy as a diagram, but also add classes to their code by adding them to the diagram. Most of these visualization systems have been based on some form of the Unified Modeling Language (UML).

Refactoring class browsers

As development environments add refactoring features, many of these features have been implemented in the class browser as well as in text editors. A refactoring browser can allow a programmer to move an instance variable from one class to another simply by dragging it in the graphic user interface, or to combine or separate classes using mouse gestures rather than a large number of text editor commands.

Logic browsers

An early add-on for Digitalk Smalltalk was a logic browser for Prolog rules encapsulated as clauses within classes. More recent logic browsers have appeared as BackTalk and SOUL (Smalltalk Open Unification Language with LiCor, or library for code reasoning) for Squeak and VisualWorks Smalltalk. A logic browser provides an interface to Prolog implemented in Smalltalk (Lisp engines have often been implemented in Smalltalk). A comparable browser can be found in ILog rules and some OPS production systems. Visual Prolog and XPCE provide comparable rule browsing. In the case of SOUL, VisualWorks is provided with both a query browser and a clause browser; Backtalk provides a constraints browser. It is interesting to note the comments of Alan Kay on the parallel of Smalltalk and Prolog emerging in the same time-frame but with very little cross-fertilization. The interest in XSB prolog for XUL and the migration of AMZI! prolog to the Eclipse IDE are current paths in logic browser evolution. Rules encapsulated in classes can be found in Logtalk and several OOP Prolog variants such as LPA Prolog, Visual Prolog and AMZI! as well as mainstream SICSTUS.

Web-based versions

One variant of the Seaside web framework in Smalltalk permits a class browser to be opened at runtime in the running web browser: an edit to a method then takes immediate effect in the running web application. In the case of Vistascript (Vista Smalltalk) for Microsoft IE7, a right-click on the background opens a ClassHierarchyBrowser. This is somewhat like editing JavaScript prototypes in a web browser or Ruby, Groovy or Jython classes in an IDE running in a JVM.

See also


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Browser Helper Object — Browser Helper Object  DLL модуль, разработанный как плагин для Internet Explorer для обеспечения дополнительной функциональности. Некоторые модули обладают возможностью открывать файлы различных форматов, первоначально не предназначенных… …   Википедия

  • Code browser — A code Browser is an editor, sometimes with folding or other advanced layout capabilities, designed to structure source code or, by extension, other kinds of text file. Since it is typically aware of the syntax (and, to some extent, the… …   Wikipedia

  • Cross-browser — refers to the ability for a website, web application, HTML construct or client side script to support all the web browsers. The term cross browser is often confused with multi browser. Multi browser is a new paradigm in web development that… …   Wikipedia

  • Opera (web browser) — Opera Opera 11.51 displaying Wikipedia on Windows 7. Developer(s …   Wikipedia

  • Kalev class submarine — The Kalev Class consisted of two mine laying submarines built for the Estonian Navy. The newly independent Republic of Estonia followed the Finnish naval armament program in acquiring submarines. Unlike the German designed Finnish subs, Estonia… …   Wikipedia

  • Framework Class Library — The Framework Class Library (FCL) is a standard library and one of two core components of Microsoft .NET Framework. The FCL is a collection of thousands of reusable classes (within hundreds of namespaces), interfaces and value types. BCL(Base… …   Wikipedia

  • Comparison of integrated development environments — Main article: Integrated development environment The following tables list notable software packages that are nominal IDEs; standalone tools such as source code editors and GUI builders are not included. Contents 1 ActionScript 2 Ada 3 Basic …   Wikipedia

  • Metaclass — In object oriented programming, a metaclass is a class whose instances are classes. Just as an ordinary class defines the behavior of certain objects, a metaclass defines the behavior of certain classes and their instances. Not all object… …   Wikipedia

  • Nokia N79 — Manufacturer Nokia Compatible networks Quad band GSM 850/900/1800/1900, EGSM 900, Dual Band UMTS 900/2100 with HSDPA Availability by country October 20, 2008 …   Wikipedia

  • Java Platform, Standard Edition — or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use.In practical terms, Java SE consists of a virtual machine, which must be used to run Java… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”