comparison lisp/oobr/BR-FEATURES @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children 4103f0995bd7
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 #
2 # SUMMARY: Summary of OO-Browser features
3 #
4 # AUTHOR: Bob Weiner
5 #
6 # ORIG-DATE: 15-Oct-90
7 # LAST-MOD: 3-May-96 at 21:30:00 by Harri Pasanen
8 #
9 # Copyright (C) 1990-1995 Free Software Foundation, Inc.
10 # See the file BR-COPY for license information.
11 #
12 # This file is part of the OO-Browser.
13
14 OO-Browser Features
15 *******************
16
17 The OO-Browser is a multi-windowed, interactive object-oriented class browser
18 similar in use to the well-known Smalltalk browsers. It is unique in a
19 number of respects foremost of which is that it works well with a
20 multiplicity of object-oriented languages. It provides both textual
21 views within an editor and graphical views under the X window system.
22
23
24 * Support for all popular OO Languages on UNIX
25 ----------------------------------------------
26
27 ** Contains support for Eiffel, C++, Objective-C, Common Lisp and its
28 Object System (CLOS), Java, Python, and Smalltalk class browsing.
29 Additionally, support for browsing large amounts of material in Info
30 format by node name (a popular online documentation format with cross
31 references and hierarchical structure) is included.
32
33 ** Method browsing is supported for C++, Objective-C, Eiffel, Java,
34 Python and CLOS. CLOS supports browsing all elements defined with
35 (def* constructs. In-source feature browsing is also supported for
36 all of these languages. One simply selects a feature name to jump to
37 its corresponding source. Method name overloading in C++ and inherited
38 feature renaming in Eiffel are fully supported.
39
40 ** C code browsing is supported for C++, Objective-C and C source code.
41
42 ** Objective-C category and formal protocol browsing are supported.
43
44 ** C++ parameterized template classes and methods are supported.
45
46 ** Immediate switching among languages is allowed. One can switch
47 from Eiffel browsing to C++ browsing in an instant, if so desired.
48 Or simply run two OO-Browsers side by side.
49
50 ** Multiple inheritance support is built-in, where applicable.
51
52 ** Statistics on classes and Environments may be displayed.
53
54 ** Language-specific class information may be shown. Presently this
55 feature is supported only for Eiffel and Python. For Eiffel, a
56 listing of class parents, attributes, routines and best guess
57 (highly accurate) list of routine calls may be displayed. Outputs
58 from the Eiffel 'short' and 'flat' commands may also be shown.
59 For Python this feature is used to browse documentation strings in
60 classes and methods.
61
62
63 * For Serious Use
64 ----------------------
65
66 ** Library (stable) and System (in development) classes may be
67 maintained and listed separately or together. Any number of
68 Libraries and Systems may be combined for listing in a single
69 Environment. There are no fixed limits on the number of classes per
70 Environment nor on the number of Environments that may be browsed.
71
72 ** All source code, over 400 kilobytes, is included and is heavily
73 documented.
74
75
76 * Ease of Use
77 -------------
78
79 ** Machine-independent mouse support is included along with an extremely
80 intuitive point and click interface that uses just two mouse keys. The
81 OO-Browser is pre-configured for use with the X window system, NEXTSTEP,
82 Sunview or Apollo's DM window system under InfoDock, Emacs V19, XEmacs,
83 Epoch, and Emacs V18. Online mouse usage help is always one key away.
84
85 ** Popup and pulldown command menus are available under InfoDock, Emacs V19
86 and XEmacs.
87
88 ** The OO-Browser help display gives short descriptions of all of
89 the commands and key bindings available in the browser. By clicking
90 on any such selection, the corresponding command is executed.
91
92 ** One may also click on class names to see ancestors, descendants,
93 or the class itself. Just select a class name and the OO-Browser
94 immediately will display or edit the class' source. Once a class
95 file has been loaded, one can quickly switch to it by selection
96 from a menu of such files.
97
98 ** For a number of languages, one may also select a feature
99 (method) name or declaration and move directly to the definition
100 of the feature. The browser accounts for the complexities of member name
101 overloading in C++ and unlimited feature renaming in Eiffel so that you
102 need not. Just click on a declaration and watch the browser display jump
103 to the proper defintion.
104
105 ** Jump back to a previously visited class or feature by selecting from a
106 list of recently visited ones.
107
108 ** OO-Browser commands may also be invoked from the keyboard, allowing
109 unrestricted use via standard terminal interfaces.
110
111 * Speed
112 -------
113
114 ** Building Environments is fast compared to many other tools and browser
115 startup once an Environment has been built is very fast. Response times
116 on workstations are excellent; for example, in one test case, less than
117 two real seconds were required to display a set of complex inheritance
118 graphs involving over 400 classes.
119
120
121 * Flexibility
122 -------------
123
124 ** X and NEXTSTEP hierarchy display browsers are included. They provide
125 views of class inheritance structure and lexically included elements,
126 which allows for quick random access to entire Environments. A click on
127 a class or element name immediately jumps to it in the editor, providing
128 rapid, visual browsing. One can pop up several graphical browsers to
129 gain several views of classes in the same or in multiple environments.
130 All graphical browsers can communicate with a single textual browser, so
131 one can quickly display and edit classes from different environments
132 (even different languages).
133
134 ** The OO-Browser uses class source code only, hence no compiler is
135 necessary for proper browser operation. This allows one to explore
136 class libraries without the need for additional tools.
137
138 ** Class inheritance networks may be displayed. Either a single
139 inheritance level (parents or children) or the entire inheritance
140 network (ancestors or descendants) for a set of classes may be shown.
141
142 ** Class files may be added, replaced or deleted one at a time or as a
143 group by specifying a root directory below which all class files are
144 found, including those in subdirectories.
145
146 ** A menu of class files can be displayed for random access to specific
147 code modules.
148
149 ** On startup, the OO-Browser lists all currently known classes within a
150 particular Environment. Any desired classes may be found by searching
151 or by matching a regular expression or string to the set of class names.
152 This may be done repeatedly to achieve an "and"-type relational query
153 effect.
154
155 ** The number of listing windows is limited only by the screen width and
156 the width setting used for listing windows.
157
158 ** The OO-Browser is adaptable to any class-based object-oriented language.
159
160
161 * Editor Integration
162 --------------------
163
164 ** The OO-Browser works with the powerful, freely distributable, GNU
165 Emacs editor; it works on any UNIX system display supported by Emacs.
166 It is also possible to use alternative editors to view or to edit source
167 code displayed by the browser.
168
169 ** All OO-Browser outputs are text which may be edited as desired or
170 saved to files.
171
172 ** OO-Browser functions may be used standalone within the editor
173 without using the multi-windowed browser interface. One useful
174 example is to point to a class name such as a parent class in the
175 text of another class and have the parent's source appear in an
176 editable fashion.