home *** CD-ROM | disk | FTP | other *** search
- *********************************************************************
- * *
- * ARMBOB v.1.03 *
- * 25/06/94 *
- *********************************************************************
-
- History
- -------
- Bob was written by David Betz (167 Villa Ave. #11, Los Gatos, CA 95032
- email: dbetz@Apple.com) for the IBM PC. He owns the copyright.
-
- See the article
-
- David Betz. A tiny object-oriented language.
- Dr Dobb's Journal, Sep 1991, p.26.
-
- for a description of Bob and how it works.
-
- The sources for Bob, version 1.5, are available by anonymous ftp from:
-
- ftp: ftp.mv.com:/pub/ddj/packages/bob15.arc
-
- This version, for Acorn RISC OS computers, was adapted from them
- by G.C.Wraith (12, Mushroom Field, Kingston by Lewes, E.Sussex BN7 3LE,
- email: G.Wraith@Sussex.ac.uk).
-
- Overview of ArmBob
- ------------------
- Bob is a small object oriented language, with a syntax resembling C++.
- It works by compiling the source program - which may be spread over
- several files - into code for a virtual machine, as an intermediate
- step, and then running the virtual machine emulator.
-
- Bob provides an easy introduction to object oriented programming for
- those already familiar with Basic or C. Bob has a garbage collected
- heap which enables it to provide sophisticated datatypes without the
- complexities of storage allocation and pointer arithmetic.
-
- ArmBob is compatible with Bob, with the minor syntactic change that
- local variables are declared in the first line of the function body
- after the keyword 'local' (rather like in Basic), rather than with the
- function's formal parameters. ArmBob has extra features, such as the
- switch() {...} structure, more built-in functions, and facilities to
- access software interrupts and interact with the task manager. See
- the file ref.LowLevel for more details.
-
- How to run Bob programs
- -----------------------
- Four new filetypes are defined:
-
- BobFile, BobTask, BobProj, BobPTask
-
- BobFiles are analogous to Basic files. Double click on them to make
- them run (in a command window, unless a mode change command is given).
-
- BobTask files run in a taskwindow when double clicked. They are only
- appropriate for programs with textual input and output. For graphics use
- a BobFile.
-
- BobProj files are appropriate for large programs stretching over many
- files. They contain a list of the program files (which might as well
- have the text filetype). Double click on a BobProj file to compile
- and run the program contained in the files that it lists, in a
- command window.
-
- BobPTask files are like BobProj files but run in a task window.
-
- Files of any of these types can be edited by holding down SHIFT and
- double clicking on them. They can be created initially as text files,
- with their filetypes altered later from the filer menu, or as blank
- files of the appropriate type, created by filling in the filetype
- in the blank option of Edit's Create submenu from the iconbar.
-
- Double clicking !ArmBob sets up the BobFile, TaskBob and BobProj
- filetypes and their run actions, and opens a filer window on a
- directory forholding Bob programs. The path prefix to this directory
- is Bob:.
-
- Compiler errors cause a window to open with an error message.
- Clicking on the Throwback icon causes the relevant source file
- to be displayed in an edit window, with the error line
- highlighted. Runtime errors do not do this (yet!).
-
- If you want to run a Bob program in trace and/or debug mode, insert '-t '
- and/or '-d ' before %%*0 in the three lines where it occurs in
- !ArmBob.!Run and !ArmBob.!Boot. You will probably find it easier to
- debug or trace an ArmBob program in a taskwindow if it has no graphics
- output, because you can scroll back the output that has disappeared off
- the screen.
-
- The accompanying directory Ref contains more detailed reference files
- on ArmBob. The directory Tutorial is intended to help beginners.
-
- Changes from v.1.0:
- Bug in switch statement cured.
- The example !Harness has been rewritten to use the
- library Bob:h.wimp.
- Changes from v.1.01:
- Cured >>= bug.
- Corrected bug in Bob:h.string.string.
- Replaced !Harness by !Exec.
- Corrected fputc to putc in documentation.
- Corrected remark about TRUE in documentation. Its
- value is 1, not -1.
- Changes from v.1.02:
- Throwback added.
-
- ----------- END -----------