Linux 版 (精华区)

发信人: netiscpu (说不如做), 信区: Linux
标  题: [B] Red Hat Linux Unleashed (34)
发信站: 紫 丁 香 (Sat Jul 25 05:00:18 1998), 转信

        Smalltalk/X

     _________________________________________________________________
                                      
               o What Is Smalltalk/X?
               o How To Install Smalltalk/X
               o Invoking Smalltalk/X
               o Getting Around in ST/X
               o The Browsers Options
                    # The System Browser
                    # The Class Hierarchy Browser
                    # Implementors
                    # Senders
                    # The Changes Browser
                    # Directory Browser
               o The Workspace Option
               o The File Browser Option
               o The Projects Option
               o The Utilities Option
               o The Goodies Option
               o The Games & Demo Option
               o Editing in Browsers
               o Using the Inspector
               o Using the Debugger
               o Summary
       
     _________________________________________________________________
                                      
   34
   
   
   Smalltalk/X
   
   
   This chapter describes Smalltalk/X (ST/X), a fairly complete
   implementation of the Smalltalk-80 programming environment. Anyone who
   has used Smalltalk-80 or any other version of Smalltalk will be
   impressed with this freely available implementation. In this chapter
   we will see
     * What Smalltalk/X is
       
     * How to install Smalltalk/X
       
     * Invoking Smalltalk/X
       
     * Getting around in Smalltalk/X
       
   This chapter gives you an overview of the Smalltalk/X application.
   After reading the chapter you should be familiar with the facilities
   that Smalltalk/X provides and be able to navigate your way through the
   Smalltalk/X user interface.
   
   What Is Smalltalk/X?
   
   
   When describing Smalltalk/X, it is probably appropriate to start with
   a description of Smalltalk itself. Smalltalk is an object-oriented
   programming language that has been a continuing development project at
   ParcPlace Systems since the early 1970s. Although it was not the first
   object-oriented language, it was the first object-oriented language to
   gain wide use in the industry.
   
   Smalltalk has been around for about 15 years now but it was not until
   recently that it started to become popular. Many universities now
   teach a Smalltalk course as part of their standard computer science
   curriculum, and many companies have seen the value that Smalltalk adds
   in terms of quick development.
   
   Smalltalk/X was developed by Claus Gittinger and was first released in
   1988. It is almost identical to the behavior of the Smalltalk 80
   implementation of the Smalltalk language. Smalltalk/X comes complete
   with an application launcher, several different browsers for browsing
   through the Smalltalk class hierarchy, and a very powerful debugging
   utility. The unique aspect of Smalltalk/X is that it can also behave
   as a Smalltalk-to-C translation utility. This is a very useful feature
   because this means that you will be able to combine the speed of
   development that Smalltalk provides with the speed of execution that C
   provides.
   
   How To Install Smalltalk/X
   
   
   Before installing Smalltalk/X, you must first retrieve it from
   sunsite.unc.edu in the /pub/Linux/devel/lang/smalltalkx directory.
   Once there, you will find the following files:
     * COPYRIGHT As the filename suggests, this is the SmallTalk/X
       copyright information document.
       
     * INDEX Provides a list of files in the directory.
       
     * LICENSE The distribution license for SmallTalk/X.
       
     * README Contains a brief discription of how to get SmallTalk/X
       running.
       
     * bitmaps.tar.Z Contains sample graphics that can be used to dress
       up the visual appeal of your programs.
       
     * doc.tar.Z The documentation set for SmallTalk/X. This package also
       includes several demos.
       
     * exe.tar.Z The executable archive. Although this is really the only
       file you need to download to get SmallTalk/X up and running,
       installing the bitmap, documentation, goodies, and source files is
       also highly recommended.
       
     * goodies.tar.Z Various extras thrown in for your enjoyment.
       
     * source.tar.Z Support and library files needed to get the most out
       of SmallTalk/X.
       
   To install Smalltalk/X, perform the following steps as root.
    1. Create a directory called /usr/local/lib/smalltalk.
       
    2. Copy the following files into the /usr/local/lib/smalltalk
       directory.
       bitmaps.tar.Z
       doc.tar.Z
       exe.tar.Z
       goodies.tar.Z
       source.tar.Z
    3. Uncompress and untar these files by entering the following
       commands from the /usr/local/lib/smalltalk directory.
       uncompress *.Z
       tar -xf bitmaps.tar
       tar -xf doc.tar
       tar -xf exe.tar
       tar -xf goodies.tar
       tar -xf source.tar
    4. You can now delete all of the tar files by typing the following
       command:
       rm -f *.tar
    5. Finally, create the following links:
       ln /usr/i486-linuxaout/lib/libc.so.4 /usr/lib/libc.so.4
       ln /usr/i486-linuxaout/lib/libXt.so.3 /usr/lib/libXt.so.3
       ln /usr/i486-linuxaout/lib/libxll.so.3 /usr/lib/libxll.so.3
       ln /usr/i486-linuxaout/lib/libm.so.4 /usr/lib/libm.so.4
       
   The Smalltalk/X program should now be installed and ready to go.
   
       ______________________________________________________________
                                      
     
     NOTE: If you do not have write access to the /usr/local/lib
     directory, install Smalltalk/X in some other directory by following
     the same steps listed above. If you do this you must set the
     SMALLTALK_LIBDIR variable to be equal to the new directory.
     
     
       ______________________________________________________________
                                      
   
   Invoking Smalltalk/X
   
   
   You invoke Smalltalk/X by typing
   
smalltalk

   in an Xterm window from the /usr/local/lib/smalltalk directory. When
   ST/X starts, it checks to see if there is an image file for it to use.
   If it cannot find an image file, it uses a file called smalltalk.rc to
   set up the default behavior for your environment. The image file that
   is loaded by default is called st.img, and contains a snapshot of what
   your ST/X environment looked like the last time you exited. This
   allows you to resume exactly where you left off. You can save a
   snapshot under any name with the extension .img. To invoke ST/X with
   an image other than st.img, type the following command at the prompt:
   
smalltalk -i nameofImage.img

   
   Getting Around in ST/X
   
   
   Once ST/X is invoked, two windows or views will appear. The Transcript
   view and the Launcher menu. The Transcript view is shown in Figure
   34.1.
   
   Figure 34.1. The Transcript view.
   
   The Transcript is the console where relevant systems information is
   shown. The Launcher menu is shown in Figure 34.2.
   
   Figure 34.2. The Launcher menu.
   
   The Launcher allows access to the tools you will need to program your
   application. Table 34.1 gives the options available from the Launcher
   and a brief description of each.
   
   Table 34.1. The Launcher menu options.
   
                                      
                             Option Description
      Browsers The pull-right menu of this option gives you access to
                    browsers, senders, and implementors.
             Workspace This option brings up a workspace view.
    FileBrowser This browser allows inspection and manipulation of files
                              and directories.
   Projects This option allows you to choose an existing or new project.
     Utilities This contains tools specific to your programming needs.
         Goodies This contains other non-programming related tools.
    Games & Demos This contains some sample programs and games to play.
   info & help This contains topics that give you help and information on
             the ST/X environment and programming in Smalltalk.
   snapshot This option takes a snapshot of your present ST/X environment
   and asks for the name of the image file you wish to store the snapshot
                                    in.
   exit This option allows you to exit ST/X immediately or exit and save
                   a snapshot of the current environment.
                                      
   The following sections describe most of these options in more detail.
   
   The Browsers Options
   
   
   The Browsers option in the Launcher menu gives you access to different
   browsers or editors that let you read and manipulate classes, methods,
   changes, senders, and implementors. The sub-options available are
     * System Browser
       
     * Class Hierarchy Browser
       
     * Implementors
       
     * Senders
       
     * Changes Browser
       
     * Directory Browser
       
   Each of these sub-options will be discussed in detail in this section.
   
   
   The System Browser
   
   
   The standard System Browser contains five subviews:
     * Class category list
       
     * Class list
       
     * Method category list
       
     * Method list
       
     * Code view
       
   The System Browser is shown in Figure 34.3.
   
   Figure 34.3. Within the ST/X system, classes are assigned to a
   category. A category is simply an attribute used for grouping classes
   to make them easier to handle. To select a class category, click on
   the name of the category in the class category list. This is the
   leftmost section of the top half of the System Browser. This will
   display, in the class list subview, all classes belonging to that
   category. The class list subview is the second section from the far
   left of the system browser. You can also select one of two special
   categories: * all *, which selects all classes and lists them
   alphabetically; and * hierarchy *, which lists all classes in a tree
   by inheritance.
   
   If you select a class in the class list, all method categories for
   that class will be displayed in the method category list, which is the
   second section from the right in the top half of the System Browser.
   Like class categories, method categories are simply for grouping
   methods according to their function. When you select a method
   category, all methods in that category are shown in the method list
   view in the far right section of the browser. The special * all *
   category will show all methods in alphabetical order. Selecting a
   method from the method list will show the corresponding method's
   source code in the code view which is the bottom half of the System
   Browser.
   
   The browser enables you to change either a class or its metaclass.
   There are two toggle buttons, class and instance, in the same section
   of the browser as the class list view. Instance, which is the default,
   makes the changes affect the class. Selecting class makes the changes
   affect the metaclass.A pop-up menu is available in each view by
   pressing the middle or menu mouse button while the pointer is in that
   view. The pop-up menu available in the class category view is shown in
   Figure 34.4, and the purpose of each function is shown in Table 34.2.
   
   Figure 34.4. The Class Category pop-up menu.
   
   Table 34.2. Class Category pop-up menu functions.
   
                                      
                            Function Description
     fileOut Saves all classes in the currently selected class category
                into one source file named classCategory.st
     fileOut each Saves all classes but puts each class into a separate
                          file called className.st
   printOut Sends a printed representation of all classes selected to the
                  printer including the method source code
   printOut protocol Sends a protocol-only representation of all classes
      in the category to the printer without the method's source code
   spawn Starts a class category browser without a class category list on
                   the currently selected class category
    spawn class Starts a full class browser which allows you to edit all
                  code for the selected class in one view
   update Re-scans all classes in the system and updates the lists shown
    find class... Pops up a dialog box to enter the name of a class you
                   wish to search for and have displayed
     new class category... Displays a dialog for the creation of a new
                              class category.
   rename... Renames a category and changes the category attribute of all
              classes in the currently selected class category
       remove Removes all classes and subclasses in the current class
                                  category
                                      
   The class list pop-up menu appears when you press the menu mouse
   button with the pointer in the class list view. The functions
   available from this menu are shown in Figure 34.5 and are explained in
   Table 34.3.
   
   Figure 34.5. The Class List pop-up menu.
   
   Table 34.3. Class List pop-up menu functions.
   
                                      
                            Function Description
     fileOut Saves the source code of the currently selected class in a
                          file named className.st.
   printOut Sends the source code of the currently selected class to the
                                  printer.
      printOut protocol Sends a protocol description of the currently
      selected class to the printer. The output will contain the class
      description, class comment, and the classes protocol and method
                                 comments.
       spawn Starts a class browser on the currently selected class.
    spawn hierarchy Starts a browser on all subclasses of the currently
                              selected class.
    hierarchy Shows the hierarchy of the currently selected class in the
                                 code view.
   definition Shows the class definition in the code view and allows you
                      to change the class definition.
     comment Shows the class comment in the code view and allows you to
                                  edit it.
     class instvars Shows the class-instance-variables for the selected
                     class and allows you to edit them.
   variable search Provides a search facility to find different variable
     references and all methods referencing the searched-for variable.
     new class Allows you to create a new class using as a template the
                         currently selected class.
    new subclass Same as new class but it will create a subclass of the
                         currently selected class.
          rename Changes the name of the currently selected class.
   remove Removes the currently selected class and all of its subclasses.
                                      
   The method category pop-up menu appears when you press the menu mouse
   button while the pointer is in the method category view. The functions
   available from this menu are shown in Figure 34.6 and explained in
   Table 34.4.
   
   Figure 34.6. The Method Category pop-up menu.
   
   Table 34.4. Method Category pop-up menu functions.
   
                                      
                            Function Description
       fileOut Saves the source code of the currently selected method
               category in a file named className-category.st
      printOut Sends the source code of the currently selected method
                          category to the printer
      spawn Starts a method category browser on the currently selected
              method category of the currently selected class
   spawn category Starts a browser on all methods of the class which have
              the same category as the currently selected one
       find method here... Searches for the method that implements a
                             specified selector
     find method... Searches in the class hierarchy for the first class
          implementing the selector you specify in the dialog box
       new category... Enables you to add a new category to the list
    copy category... Enables you to copy all methods in a class category
                      to the currently selected class
     create access methods Creates methods to access instance variables
          rename... Renames the currently selected method category
    remove Removes all methods in the currently selected class that are
             members of the currently selected method category
                                      
   The method list pop-up menu appears when you press the menu mouse
   button while the pointer is in the method list view. The functions
   available from this menu are shown in Figure 34.7 and explained in
   Table 34.5.
   
   Figure 34.7. The Method List pop-up menu.
   
   Table 34.5. Method List pop-up menu functions.
   
                                      
                            Function Description
        fileOut Saves the currently selected method in a file named
                           className-selector.st
   printOut Sends the source code of the currently selected method to the
                                  printer
               spawn Starts a browser for editing this method
     senders... Starts a new browser on all methods sending a specific
                                  message
     implementors... Starts a new browser on all methods implementing a
                              specific message
    globals... Starts a new browser on all methods that are accessing a
    global that is either a global variable or a symbol, as well as all
                  methods sending a corresponding message
   local senders... Same as senders but limits the search to the current
                          class and its subclasses
   local implementors... Same as implementors... but limits the search to
                    the current class and its subclasses
    new method Enables you to create a new method from a template in the
                                 code view
   change category... Enables you to change the category of the selected
                                   method
                remove Removes the currently selected method
                                      
   When you add or remove instance variables to or from a system class
   description and accept (that is, save the changes), the system creates
   a new class instead of changing the old one. The original class still
   exists to give existing instances of the class a valid class even
   though it is no longer accessible by name. After the change, you can
   no longer edit the old class.
   
       ______________________________________________________________
                                      
     
     NOTE: It is recommended that you don't change the definition of
     system classes but only private ones. It is safer to use the copy
     category function to copy an existing class and its methods to a
     new class and modify the new class. This is especially important
     for classes which are used by the system itself since changes can
     lead to problems in the operation of the ST/X environment.
     
     
       ______________________________________________________________
                                      
   The code view is the lower half of the System Browser. It is here that
   you can modify the class or instance definitions as well as methods.
   The pop-up menu for this area is the edit menu that appears in every
   text editing view in ST/X. The functions in this menu are discussed in
   the "Editing in Browsers" section of this chapter.
   
   The Class Hierarchy Browser
   
   
   When the Class Hierarchy Browser is selected, a dialog box appears
   which asks for the name of class. If you enter a valid class, the
   Class Hierarchy Browser appears for that class. This is the same as
   the System Browser except there is no class category list since this
   is for one specific class. The pop-up menus for each of the four
   subviews are the same as in the System Browser.
   
   Implementors
   
   
   When the Implementors option is selected, a dialog box appears which
   asks for a selector. A selector is the name of the type of operation a
   message requests of its receiver.
   
   If you enter a valid selector, an Implementors view will be displayed.
   This view is similar to the one shown in Figure 34.8.
   
   Figure 34.8. The Implementors view.
   
   The Implementors view contains a list of the methods that implement
   the method specified by the selector. The pop-up menu for the top half
   of the Implementor view is the same as the pop-up menu for the method
   list subview which was discussed in the "System Browser" section of
   this chapter.
   
   Senders
   
   
   When the Senders option is selected, a dialog box appears that asks
   for a selector. If you enter a valid selector, then a Senders view
   will be displayed. This view is similar to the one shown in Figure
   34.9.
   
   Figure 34.9. Senders view.
   
   The Senders view contains a list of the methods that send the selected
   message. The pop-up menu for the top half of the Senders view is the
   same as the pop-up menu for the method list subview which was
   discussed in the "System Browser" section.
   
   The Changes Browser
   
   
   Each time you make a change to either the class hierarchy or to a
   method, ST/X writes a record to a changes file. The Changes Browser
   enables you to inspect and manipulate the changes file. There are two
   subviews in the Changes Browser; the change list and the contents
   view. The change list gives a list of all changes in chronological
   order. A sample Changes Browser is shown in Figure 34.10.
   
   Figure 34.10. The Changes Browser.
   
   To display a change, select one of the changes from the change list.
   The change browser then displays the contents of the change in the
   contents view.
   
   The pop-up menu for the change list has the functions described in
   Table 34.6.
   
   Table 34.6. The Change List pop-up menu.
   
                                      
                            Function Description
            apply change Applies the currently selected change.
      apply to end Applies all the changes from the currently selected
                   change to the end of the changes file.
           apply all changes Applies all the changes in the file.
        delete Deletes the currently selected change from the list.
    delete to end Deletes all changes from the currently selected change
                          to the end of the file.
   delete changes for Deletes all changes affecting the same class as the
    currently selected this class change to the end of the changes file.
   delete all changes Deletes all changes in the file for the same class
              as the currently for this class selected change.
                      update Rereads the changes file.
   compress Compresses the change list and removes multiple changes of a
       method and leaves the most recent change compared to current.
     compare with Compares a method's source code in a change with the
   current current version version of the method and outputs a message in
                            the Transcript view.
   make change a patch Appends the change to the end of the patches file
        which will be run and automatically applied at ST/X startup.
       save change a file Saves any changes made to the current file.
     update sourcefile This function is not currently implemented.from
                                   change
     writeback changefile Writes the change list back to the changefile
    changes file. All delete/compress operations performed in the Change
     Browser will not affect the changes file unless this operation is
                                 performed.
                                      
   The Change Browser can be used to recover from a system crash by
   re-applying all changes that were made after the last snapshot entry.
   
       ______________________________________________________________
                                      
     
     NOTE: To control the size of the changes file, it is a good idea to
     apply a compress periodically. This will remove all old changes for
     a method leaving the newest one.
     
     
       ______________________________________________________________
                                      
   
   Directory Browser
   
   
   When you select the Directory Browser option, a browser with five
   subviews is displayed. The top half of the browser displays the
   current directory and all subdirectories and files contained in it. If
   you select a directory, it is expanded in the next section to the
   right across the top half of the browser. If you select a file, the
   contents of the file are displayed in the lower half of the Browser.
   The pop-up menu for the directory area has only two functions:
     * up—Moves up to the directory above the one selected
       
     * goto directory—Enables you to go to a specified directory
       
   The content view has the same edit menu as all the other text editors
   and is discussed in the "Editing in Browsers" section in this chapter.
   A typical Directory Browser is shown in Figure 34.11.
   
   Figure 34.11. The Directory Browser.
   
   The Workspace Option
   
   
   The Workspace option displays a view from which you can enter and
   compile Smalltalk code. The Workspace is usually used as a testing
   area or scratch pad when coding. You can use it to test your Smalltalk
   code before building it into the code library using the System Browser
   code view.
   
   The File Browser Option
   
   
   The File Browser gives you the ability to inspect and manipulate files
   and directories. The File Browser is shown in Figure 34.12.
   
   Figure 34.12. The File Browser.
   
   It consists of four subviews that are described in Table 34.7.
   
   Table 34.7. The File Browser subviews.
   
                                      
                              Subview Purpose
          path-label field Shows the name of the current directory
   file pattern field Allows a search pattern to be entered for choosing
                          files for the file list
             file list Shows a list of file and directory names
            contents view Shows the contents of a selected file
                                      
   To inspect the contents of a file, double-click the left mouse button
   on the name of the file in the file list. To change directories,
   double-click on the directory name. Directory names are always shown
   in the file list.
   
   You can use the file pattern field to display the list of files
   matching the specified pattern. The default is *, which shows all
   files. The search pattern can be changed by moving the pointer to the
   field, editing the pattern, and then pressing enter or choosing accept
   from the file pattern pop-up menu.
   
   As in the other browsers we have discussed, each subview has a pop-up
   menu that is activated by the menu mouse button. The path-label pop-up
   menu is shown in Figure 34.13.
   
   Figure 34.13. The Path-Label pop-up menu.
   
   The functions available in this menu are described in Table 34.8.
   
   Table 34.8. The Path-Label pop-up menu functions.
   
                                      
                              Function Purpose
    copy path Copies the current pathname into the cut and paste buffer
      change directory... Opens a dialog box to enter the name of the
                      directory you wish to change to
   change to home directory Changes the file list to your home directory
                                      
   The file list pop-up menu is shown in Figure 34.14.
   
   Figure 34.14. The File List pop-up menu.
   
   The functions available in this menu are described in Table 34.9.
   
   Table 34.9. The File List pop-up menu functions.
   
                                      
                              Function Purpose
     spawn Starts another file browser on the current directory or the
                    directory selected in the file list.
   get contents Shows the contents of the currently selected file in the
                               contents view.
        show info Displays a view with type, size, access, and owner
         information for the currently selected file or directory.
    show full info Displays the same as above with more details such as
             the last access, last modification date, and time.
       fileIn Loads the selected file into the system by reading and
                 evaluating Smalltalk expressions from it.
          update Rereads the directory and updates the file list.
    execute unix command_ Allows execution of any UNIX command through a
                                pop-up box.
            remove Removes the selected file(s) or directory(s).
                    rename... Renames the selected file.
   display long list Shows file information in the file list. This option
           toggles with display short list which is the default.
     show all files Displays all the files including hidden files. This
        option toggles with hide hidden files which is the default.
                create directory... Creates a new directory.
                     create file... Creates a new file.
                                      
   The pop-up menu for the contents view is the same edit menu as the
   other text editors and is discussed in the "Editing in Browsers"
   section of this chapter.
   
   The Projects Option
   
   
   The Projects option of the Launcher menu enables you to create a new
   project or select a previously created project. When the new project
   function is selected, a new project is automatically created for you
   and the new project object appears on your screen. If you select the
   select project function, a dialog box appears with a list of existing
   projects from which to choose. Simply select a project and it will be
   loaded in to the environment.
   
   The Utilities Option
   
   
   The Utilities option provides thirteen tools that assist you in
   programming in the ST/X environment. Table 34.10 gives you a brief
   description of each tool.
   
   Table 34.10. The Utilities option.
   
                                      
                            Utility Description
                   Transcript Opens the Transcript view.
     Window tree Displays a graphical tree representation of the window
   hierarchy of all windows that are active or in wait state at the time
                             it was requested.
      Class tree Displays a graphical tree representation of the class
                          hierarchy of the system.
            Event monitor Displays a view that monitors events.
      Process monitor Displays a view that gives information about all
   currently active or waiting processes. This information changes as the
                       state of the processes change.
     Memory monitor Displays a graph that tells you the present memory
               usage and changes as the memory usage changes.
       Memory usage Displays a table of the classes and the number of
   instances of each, average size, bytes, and percentage of memory used
                                  by each.
   collect Garbage Runs a Generation Scavenge algorithm to collect short
    term objects and destroy them. If an object survives long enough, it
   is moved to an area of memory where it remains until the user requests
                              its collection.
       collect Garbage & Same as Collect Garbage but also compresses
                         compress to recover space.
   full screen hardcopy Takes a picture of the screen and asks you for a
     name of a file with a .tiff extension in which to save the image.
      screen area hardcopy Same as Fullscreen hardcopy but for only a
                        specific area of the screen.
    view hardcopy Same as Fullscreen hardcopy but for one specific view
                                   only.
    ScreenSaver Enables you to choose from one of three different screen
                   savers to use in the ST/X environment.
                                      
   The Goodies Option
   
                                      
   The Goodies option of the Launcher menu provides a pull-right menu of
   six different tools that are useful at any time, not just when you
   program in Smalltalk. The Goodies are described in Table 34.11.
   
   Table 34.11. The Goodies.
   
                                      
                              Tool Description
      Clock Displays an analog clock in a square with a toggle for the
                                second hand.
   Round Clock Same as the clock but it's round and remains visible when
                              it is minimized.
      Directory View Displays a pictorial representation of files and
   directories. A folder represents a directory and a document is a file.
               Mail Tool A tool for managing electronic mail.
        News Tool A repository for news, information and documents.
    Draw Tool A fairly comprehensive tool for drawing diagrams, charts,
                            pictures, and so on.
                                      
   The Games & Demo Option
   
                                      
   Contained in the pull-right menu of this option are games for your
   enjoyment and example applications that may be useful. The Games &
   Demos option menu is shown in Figure 34.15.
   
   Figure 34.15. The Games & Demos option menu.
   
   Editing in Browsers
   
   
   All views that show text allow the usual editing functions of that
   text through a pop-up menu. The functions available in this menu are
   described in Table 34.12.
   
   Table 34.12. Editing functions.
   
                                      
                            Function Description
                        again Repeats the last edit.
                       copy Copies the selected text.
                cut Cuts the selected text out of the file.
     paste Pastes the text that was copied or cut prior to choosing the
            paste option to the current position of the pointer.
                    doIt Evaluates the highlighted text.
   printIt Prints a representation of the result of the evaluation at the
                          current cursor position.
            inspectIt Invokes the Inspector view on the result.
    accept Once you have completed editing, you must use this option to
      save the changes to the file; otherwise, the changes will not be
                            written to the file.
           search... Enables you to search for a specific string.
      goto... Enables you to move to a specific location in the file.
            font... Enables you to change the font of the file.
         indent... Enables you to change the indenting of the file.
      save as... Enables you to save the file under a different name.
                           print Prints the file.
                                      
   To select or highlight text, press the left mouse button over the
   first character and move the mouse (while pressing the mouse button)
   to the end of the text you wish to select and then release the mouse
   button. If you press the left mouse button again, the highlighting is
   removed and you can select something else.
   
   To scroll through the text, use the scroll bars on the left of the
   view. By clicking the mouse below or above the thumb, the text scrolls
   one page for every click. If you press the Shift key at the same time
   as you click, the text scrolls to the position of the pointer in the
   scroll bar. This is useful for scrolling rapidly through long
   documents.
   
   Using the Inspector
   
   
   The Inspector enables you to inspect an object. It consists of two
   subviews, one showing the names of the object's instance variables and
   the other showing the value of the selected instance variable. You can
   start an inspector by using the inspectIt function on the edit menu or
   by sending one of the following messages to an object:
   
anObject inspect

   or
   
anObject basicInspect

   The basicInspect command will open a general inspector that shows
   instance variables as they are physically present in the object. The
   inspect command is redefined in some classes to open an inspector
   showing the logical contents of the object.
   
   Using the Debugger
   
   
   The Debugger is displayed whenever an error occurs in your Smalltalk
   code. It shows you where the error occurred and how the system got
   there. The Debugger runs in one of three modes: normal, modal, and
   inspecting.
   
   When in normal mode and an error occurs in a process, which is not the
   event handler process, the debugger will start up on top of the
   erroneous process. This blocks all interaction with the affected
   process and its views. Other views are still active and respond as
   usual.
   
   When an error occurs in the Smalltalk event handler process, the
   debugger starts in modal mode. While a modal debugger is active you
   cannot interact with any other view.
   
   The inspecting mode can be entered from the ProcessMonitor by the
   pop-up menu and allows inspection of the state of other processes. But
   since the debugged process may continue to run, it is only possible to
   inspect a snapshot of the affected process.
   
   The Debugger contains four subviews:
     * The Context Walkback List shows the context chain that led to the
       error
       
     * The Method Source View shows the method that caused the error
       
     * The Receiver Inspector allows inspection of the receiver of the
       selected message
       
     * The Context Inspector provides information about the arguments and
       local variables of this context.
       
   The Debugger is shown in Figure 34.16.
   
   Figure 34.16. The Debugger.
   
   The functions that are common to each view appear as a set of buttons
   below the context walkback list. These functions are described in
   Table 34.13.
   
   Table 34.13. The Debugger function buttons.
   
                                      
                             Button Description
                 terminate Terminates the erroneous process
               abort Aborts the current activity if possible
       return Continues execution as if the selected context returned
       restart Continues execution by restarting the selected context
                        continue Continues execution
   step (single step) Lets the process continue execution until the next
             send is executed in the currently selected context
   send (single send) Lets the process continue execution for one message
                                    send
                                      
   The walkback subview has a pop-up menu with the functions described in
   Table 34.14.
   
   Table 34.14. Walkback Subview pop-up menu function.
   
                                      
                            Function Description
             exit smalltalk Leaves ST/X without saving an image
             show more Shows 50 more contexts of the walk-back
                       breakpoints Not yet available
                       trace on/off Not yet available
                        trace step Not yet available
                                      
   A miniDebugger is entered if an error occurs within the Debugger
   itself. This is a line-by-line debugger that allows limited debugging
   without the use of a graphical user interface. It is controlled by
   entering commands in the Xterm window where ST/X was started. If you
   type ? at the miniDebugger prompt, you will get a list of commands
   that are available for use in this stripped down debugger.
   
   Summary
   
   
   This chapter introduced you to the Smalltalk environment that is
   provided by the Smalltalk/X application. If you are interested in
   learning how to program using Smalltalk and do not have access to one
   of the commercial versions of Smalltalk, then Smalltalk/X is perfect
   for you. Not only does Smalltalk/X come with all the tools and
   programming aids that were talked about in this chapter, but it also
   comes with many examples and some fairly complete documentation that
   will make learning Smalltalk easier for you.
   

--

                              Enjoy Linux!
                          -----It's FREE!-----

※ 修改:.netiscpu 于 Jul 25 05:59:40 修改本文.[FROM: mtlab.hit.edu.cn]
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: fengyun.hit.edu.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:625.841毫秒