home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
a
/
armbob
/
doc
/
Intro
< prev
Wrap
Text File
|
1994-07-14
|
5KB
|
108 lines
*********************************************************************
* *
* 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 -----------