bpendlet@esunix.UUCP (Bob Pendleton) (05/24/88)
I've heard some rumors about a C interpreters called Sabre. Does anyone know where I can get more information about it? Any information about commercially available, or even free, C interpreters would be appreciated. Thanks Bob P. -- Bob Pendleton @ Evans & Sutherland UUCP Address: {decvax,ucbvax,ihnp4,allegra}!decwrl!esunix!bpendlet Alternate: {ihnp4,seismo}!utah-cs!utah-gr!uplherc!esunix!bpendlet I am solely responsible for what I say.
mlandau@bbn.com (Matt Landau) (05/26/88)
In comp.lang.c (<844@esunix.UUCP>), bpendlet@esunix.UUCP (Bob Pendleton) writes: > >I've heard some rumors about a C interpreters called Sabre. Does anyone >know where I can get more information about it? I've been helping to beta test new versions of Saber for a couple of months now, using Saber to develop new code and debug existing code under both SunView and X11. It was particularly useful to be able to call Xlib functions interactively in the interpreter and see what would happen -- I learned a great deal about how X really works that way. I have no particular connection with Saber Software, except as a very satisfied (and impressed!) customer and beta-test site. -- Matt Landau Riding shotgun down the avalanche mlandau@bbn.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Saber is a rather impressive interpreter/debugger combination for C programmers. Here's a brief description of some of its features: * The debugging environment is a workspace into which you can load a combination of compiled and interpreted code. The workspace understands a superset of dbx commands, so if you can use dbx it's pretty easy to switch to Saber. The workspace is also an ANSI compatible C interpreter, so you can do anything that can be expressed in C -- define and call functions, create and modify data, define and call macros (How often have you wanted to use a #define in dbx?) etc. * At load-time, the interpreter does stronger-than-lint syntax and type checking. Errors are flagged with a message; you can ignore this instance of the error, suppress future complaints about the error (for this line, this procedure, this source file, or globally), or edit the file [your $EDITOR pops up positioned on the offending line] and have it automatically reloaded. * Code is dynamically linked. Source modules can be modified within or outside Saber, so if you (or Saber) detect an error at runtime you can fix it and reload the file. You're reset to the top-level of the workspace, with your debugging environment intact, so you can test the modified code immediately. * Another implication of dynamic linking is that you can run code fragments -- if you try to reference something that doesn't exist yet, Saber will drop you into a Lisp-like break level and let you define the required objects or functions on the fly, or else just provide a one-shot value to use in place of the missing object or function call. * There's an extensive variety of breakpoints and watchpoints you can set. These can be tagged with user-specified actions, which are arbitrary functions or C code fragments. You can also attach arbitrary user-defined output functions to datatypes, so when you say "print foo" it prints in whatever format you like. * There's also a whole set of functions for listing the contents of modules or libraries, cross-referencing for data and functions, etc. * Runtime pointer and array bounds checking in interpreted code. This is perhaps the single most valuable feature in Saber - it tends to find those "stray pointer trashes allocated memory" bugs, gives you a warning message telling what pointer went bad and where, and drops you into a break level. * It deals gracefully with multiple windows under SunView and X11, using separate windows for editing, code listing, help requests, program I/O, etc. * They're also testing an amazing thing called "sabertool", which is the dbxtool of Saber, only better. It's hard to describe all the nifty stuff sabertool does, including: + visual crossreferencing, which displays a map of who uses and is used by a given symbol, allows you to click on things to extend the crossreference in either direction + the usual panels full of buttons to execute debugger commands + separate panels that show you the how the load or link stages are progressing, display online help, display program I/O, etc. and the really wonderful part. . . + the data browser, which must be seen to be believed. You know all those papers you've seen about visual display of data structures all nicely formatted in little boxes, with the ability to click on pointer fields and follow all of the links? Well, this is what they're talking about -- it's like working with a Lisp Machine debugger, but for C on your Sun. Really impressive. It's also saved me a lot of debugging time, even in the (not fully integrated into the rest of Saber) beta test version. Saber is currently available on Sun-2's, Sun-3's, and VAXen, running under SunOS, Ultrix, and 4.3BSD, and using SunView, X10, or X11 if they're available. (Sabertool is only available with SunView at the moment.) Pricing starts around $1000 for the first CPU (quantity 1), with volume discounts (e.g., about $500/copy in quantities of 20 or more). For detailed pricing or more information, you can reach Saber Software by electronic mail as "saber@harvard.harvard.edu", or at Saber Software, Inc. 30 JFK Street Cambridge, MA 02138 (617) 876-7636
mark@navtech.uucp (Mark Stevans) (05/26/88)
In article <844@esunix.UUCP> bpendlet@esunix.UUCP (Bob Pendleton) writes: >I've heard some rumors about a C interpreters called Sabre. Does anyone >know where I can get more information about it? Any information about >commercially available, or even free, C interpreters would be >appreciated. We had a demo version of Saber here at Navigation Technologies. The "demo" version differs from the real thing in that it has some kind of built-in time limit on how long you can use it. After evaluating it, we have decided to purchase a real copy. I spent a few hours trying Saber out. I was able to load an existing program of mine into it, something on the order of twenty source files totalling a few thousand lines of C code, and have it interpreted it perfectly, at fairly impressive speed. It is easy enough to use that I didn't even need to read the documentation to figure out how to use it. Imagine a magic version of "dbx" that could take any C statement as a command (instead of the "dbx" subset of expressions), and that permitted you to modify your code without exiting, compiling, or relinking. Saber comes pretty close to being that. Of course, I am hardly an experienced Saber user. I'm sure some other customer out there will tell use more. But from what I have seen with my own eyes, I think that those of you who are interested in C interpreters should at least get a demo copy like we did. Mark "Volatile" Stevans
gregory@ritcsh.UUCP (Gregory Conway) (05/26/88)
In article <844@esunix.UUCP>, bpendlet@esunix.UUCP (Bob Pendleton) writes: > > I've heard some rumors about a C interpreters called Sabre. Does anyone > know where I can get more information about it? Any information about > commercially available, or even free, C interpreters would be > appreciated. > > Thanks > > Bob P. I'll post this to the net since it may be of interest to other people. While I don't have the article here (it's at work), there was a rather good report/evaluation of several C interpreters in a recent issue of BYTE magazine. Try going back through the last few months issues. I should state that the interpreters were written for IBM PC's. You don't state what machine you own, but it was worth telling you anyway. :-) -- ================================================================================ Gregory Conway@Computer Science House UUCP: ...rochester!ritcv!ritcsh!gregory Rochester Institute of Technology, Rochester, NY "I got an allergy to Perrier, daylight, and responsibility", Marillion
bpendlet@esunix.UUCP (Bob Pendleton) (05/26/88)
I've heard some rumors about a C interpreters called Saber. Does anyone know where I can get more information about it? Any information about commercially available, or even free, C interpreters would be appreciated. Thanks Bob P. -- Bob Pendleton @ Evans & Sutherland UUCP Address: {decvax,ucbvax,ihnp4,allegra}!decwrl!esunix!bpendlet Alternate: {ihnp4,seismo}!utah-cs!utah-gr!uplherc!esunix!bpendlet I am solely responsible for what I say.
raeburn@athena.mit.edu (Ken Raeburn) (05/28/88)
In article <850@esunix.UUCP> bpendlet@esunix.UUCP (Bob Pendleton) writes: >I've heard some rumors about a C interpreters called Saber. Does anyone >know where I can get more information about it? Any information about >commercially available, or even free, C interpreters would be >appreciated. (This seems to keep coming up....) Yes, Saber-C is an (excellent!) C interpreter. Lots of fancy debugging features are available, as is the ability to execute C statements interactively. (In version 1.x of Saber-C, all the commands were issued in C syntax -- including preprocessor commands. Version 2.0, in beta test, also accepts shell-style input.) I believe Saber-C accepts either ANSI or K&R C. It catches bad memory references (free()'d memory, type mismatching on retrieval, bounds checking), unused variables, missing declarations of functions (sometimes annoying but generally correct, strictly speaking -- don't you sometimes forget to declare malloc or include <string.h>?), link against compiled code (though this naturally reduces the debugging capabilities), and, of course, run your program. The manuals I've got in front of me don't appear to list the machine types it runs on. I do know that it runs on the vax and the IBM RT/PC; these are the only machine types Athena has at this point, so I wouldn't know about any others. The address to get more info is saber@harvard.harvard.edu. It's also the address for bug reports and questions. Although Saber-C isn't completely without bugs (and the occasional annoying misfeature), the people I've dealt with regarding it have been most helpful in tracking things down. I would heartily recommend it.
chris@contex.UUCP (Chris Anderson) (11/15/89)
I am looking for a C interpreter to use as a sort of fancy scripting language. I know that products like Saber-C include such an interpreter, but it is inexorably linked to the debugger there. What would be great is a portable, free-standing interpreter (preferably PD, but doesn't have to be), unadorned. It needs to run on a few different (and slightly strange) platforms; porting is no problem for me if I have the source :-) Yeah, I have Perl, but this project needs structures & such. Plus, teaching others another whole language is a real drag. Any leads would be appreciated. Chris Anderson Xyvision, Inc Email: contex!chris@uunet.uu.net --------------------------------