home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / program / language / bob / doc / Intro < prev    next >
Encoding:
Text File  |  1994-12-31  |  5.0 KB  |  122 lines

  1. *********************************************************************
  2. *                                                                   *
  3. *                         ARMBOB  v.2.1                             *
  4. *                                                         25/12/94  *
  5. *********************************************************************
  6.  
  7. History
  8. -------
  9. Bob was written by David Betz (167 Villa Ave. #11, Los Gatos, CA 95032
  10. email: dbetz@Apple.com) for the IBM PC. He owns the copyright.
  11.  
  12. See the article
  13.  
  14.           David Betz.  A tiny object-oriented language.  
  15.                        Dr Dobb's Journal, Sep 1991, p.26.
  16.  
  17. for a description of Bob and how it works.
  18.  
  19. The sources for Bob, version 1.5, are available by anonymous ftp from:
  20.  
  21.          ftp: ftp.mv.com:/pub/ddj/packages/bob15.arc
  22.  
  23. This version, for Acorn RISC OS computers, was adapted from them
  24. by G.C.Wraith (12, Mushroom Field, Kingston by Lewes, E.Sussex BN7 3LE,
  25. email: G.Wraith@Sussex.ac.uk). 
  26.  
  27. Overview of ArmBob
  28. ------------------
  29. Bob is a small object oriented language, with a syntax resembling C++.
  30. It works by compiling the source program - which may be spread over 
  31. several files - into code for a virtual machine, as an intermediate 
  32. step, and then running the virtual machine emulator.
  33.  
  34. Bob provides an easy introduction to object oriented programming for
  35. those already familiar with Basic or C. Bob has a garbage collected
  36. heap which enables it to provide sophisticated datatypes without the
  37. complexities of storage allocation and pointer arithmetic.
  38.  
  39. ArmBob is compatible with Bob, with the minor syntactic change that
  40. local variables are declared in the first line of the function body
  41. after the keyword 'local' (rather like in Basic), rather than with the
  42. function's formal parameters. ArmBob has extra features, such as the
  43. switch() {...} structure, more built-in functions, and facilities to
  44. access software interrupts and interact with the task manager. 
  45.  
  46. How to run Bob programs
  47. -----------------------
  48. Four new filetypes are defined:
  49.  
  50.              BobFile, BobTask, BobProj, BobPTask
  51.  
  52. BobFiles are analogous to Basic files. Double click on them to make
  53. them run (in a command window, unless a mode change command is given).
  54.  
  55. BobTask files run in a taskwindow when double clicked. They are only 
  56. appropriate for programs with textual input and output. For graphics use 
  57. a BobFile.
  58.  
  59. BobProj files are appropriate for large programs stretching over many 
  60. files. They contain a list of the program files (which might as well
  61. have the text filetype). Double click on a BobProj file to compile
  62. and run the program contained in the files that it lists, in a
  63. command window.
  64.  
  65. BobPTask files are like BobProj files but run in a task window.
  66.  
  67. Files of any of these types can be edited by holding down SHIFT and 
  68. double clicking on them. They can be created initially as text files, 
  69. with their filetypes altered later from the filer menu, or as blank 
  70. files of the appropriate type, created by filling in the filetype 
  71. in the blank option of Edit's Create submenu from the iconbar.
  72.  
  73. Double clicking !ArmBob sets up the BobFile, TaskBob and BobProj 
  74. filetypes and their run actions, and opens a filer window on a 
  75. directory forholding Bob programs. The path prefix to this directory 
  76. is Bob:.
  77.  
  78. Compiler errors cause a window to open with an error message.
  79. Clicking on the Throwback icon causes the relevant source file
  80. to be displayed in an edit window, with the error line
  81. highlighted. Runtime errors do not do this (yet!).
  82.  
  83. If you want to run a taskwindow Bob program in trace and/or debug mode, 
  84. double click on the Obey files called debug and trace. You will find it
  85. easier to debug or trace an ArmBob program in a taskwindow (if it has no 
  86. graphics output), because you can scroll back the output that has 
  87. disappeared off the screen. In any case, for producing still graphics
  88. it is best to use the draw library to produce and display the graphics
  89. in a draw file. Double click on the !Armbob icon to turn debug or trace
  90. mode off.
  91.  
  92. The  directory doc.Ref contains more detailed reference files
  93. on ArmBob. The directory doc.Tutorial is intended to help beginners.
  94. The file doc.manual is active text for use with T.Aeby's !Whelp
  95. help-reader, also available by anonymous ftp from hensa in:
  96.  
  97.         micros.hensa.ac.uk:micros/arch/riscos/c/c071
  98.  
  99. Simply doubly click on manual once the !whelp application has
  100. been 'seen' or filer_booted.
  101.  
  102. Changes since v.1.0:
  103.    Bug in switch statement cured.
  104.    The example !Harness has been rewritten to use the
  105.    library Bob:h.wimp.
  106. Changes since v.1.01:
  107.    Cured >>= bug. 
  108.    Corrected bug in Bob:h.string.string.
  109.    Replaced !Harness by !Exec.
  110.    Corrected fputc to putc in documentation.
  111.    Corrected remark about TRUE in documentation. Its
  112.    value is 1, not -1.
  113. Changes since v.1.02:
  114.    Throwback added.
  115. Changes since v.1.03:
  116.     Floating point arithmetic added.
  117. Changes since v.2.0
  118.     vector { ... } and enum { ... } constructs added.
  119.     syntax of project files made easier.
  120.     draw library added.
  121.  
  122.                       ----------- END -----------