"C" Interpreter
Ken Raeburn
raeburn at athena.mit.edu
Mon Jan 9 00:45:17 AEST 1989
In article <84207 at sun.uucp> haley%lucid at Sun.COM (Mike Haley) writes:
>Iam looking for a "C" interpreter that runs under UNIX.
You could certainly do worse than Saber-C, produced by a company
called (I think) Saber Software, in Cambridge, MA.
I can only say a little bit about the people supporting it. I know
one of them, Stephen Kaufer, from when he had an office here at
Athena, and I've nothing negative to say about him. He always showed
interest in any problems I ran into with the software. (Nice guy,
too.) I've also dealt a little bit (quick demo in person, or email)
with one or two other people from their staff; they've also been
friendly and responsive.
Saber runs both source and object code, with a reasonably large amount
of sanity checking when interpreting source. (Uninitialized values,
pointers out of bounds, accessing an object with a type different from
that originally stored there, etc, etc.) There's also lots of
load-time cross-checking of declarations and definitions.
It also runs in an interactive mode, which interprets shell-like
command lines and C source code, with subroutines available that
implement all of the commands. (Earlier versions required you to use
C statements for everything, i.e.:
quit();
load("foo.c");
but version 2 has a more friendly shell-like interface as well.)
When errors are flagged at runtime, the user can interrupt execution,
run a few commands (examine or modify variables, call other routines)
and resume execution or reset everything and run it over.
The user-settable options include ANSI or pre-ANSI modes (I don't
remember exactly what parameters change here, I always use ANSI);
automatic reloading of changed source files (I think even including
dependencies on header files); miscellaneous parameters about how to
present information to the user; automatic suppression of certain
warnings.
The latest version we've got, at least (dunno about earlier ones), can
handle programs forking; pulls up a new window on your display for the
subprocess, etc. (Not sure what it does for terminals; I haven't used
this feature much.)
Lots of nice stuff. I think the only complaint I had about a recent
version (after looking over the documentation) was that there was no
way to turn off its interpretation of lint-style comments like
/*ARGSUSED*/. At least, I think that was it. (Sorry, it was a while
ago, and I haven't used it much lately.)
Mmm... make that three complaints. #2: If you're debugging something
large from source code, it gets to be slow and requires lots of
memory. Sure, it's to be expected, but I can wish. :-)
And #3: If your program is big enough, and your system runs out of
memory (or you hit your per-process limit), or occasionally with some
other types of errors, saber sometimes finds itself unable to recover.
As I said, I haven't used it in a while, so I don't remember all the
details, and besides, it's probably gotten better since then.
I expect there'll be more and better stuff in future versions. (Steve
was asking opinions one day along the lines of, "which of these N
features would be most useful to see in the next version of saber?"
They didn't do 'em all, so maybe in the next version. :)
I don't know their street address or phone numbers, but I think Steve
reads this newsgroup; he can probably provide you some more info.
~~
Disclaimer: I don't work for these folks, I just use there stuff. I
also don't speak for my employers here, but I think they like the
product too. :)
~~
~~ Ken Raeburn / raeburn at athena.mit.edu
~~ systems programmer
~~ MIT Project Athena
~~
More information about the Comp.lang.c
mailing list