SourceForge Logo

The History of Cscope

Many thanks to Harold Bamford for emailing us the following history of the early days of Cscope at Bell Labs:

On your web page I see that you have a very brief history of cscope.

As it happens, I know quite a bit about the early days of cscope as I was a developer on it and good friend of the original inventor, Joe Steffen. I worked on a cscope-like GUI for another project and Joe "bought back" some of my work for the original cscope. Later on, I worked on cscope directly. But my contributions probably never made it outside of Bell Labs, for reasons that are not important here.


Joe Steffen first started writing cscope in the early 1980's as an aid for his own work. It started as little more than a set of shell scripts containing greps and seds. It became clear to Joe that this was not going to work on large projects (say, more than 20 or so files, which was a large project on a PDP-11!) as most of the time consumed was in parsing the C source code over and over again. So he wrote a C program that did the grunt work of parsing into a tagged database, and then presented the screen with common searches. The tagged database was updatable and saved between sessions. Productivity soared!

Others noticed and asked (demanded!) access to cscope. Requests for improvements started poring in. Joe worked hard to add the improvements without changing the fundamental "feel" of the program. This was no easy task given that some of the requests for enhancement ranged from integrating cscope with the 'make' program to sending email when certain variables got used! (Really! You can't make up stuff like that!)

Various projects started using and then became dependent upon cscope for their day to day operations. It was distributed throughout AT&T/Bell Labs via the 'exptools' network (for experimental tools). It was used in every AT&T location through the world. It was used as a core tool by Bell Labs projects involving 5,000,000 lines of C/C++ code. No, that's not a typo.

Joe then (around version 12, I believe) got cscope made part of the official AT&T Unix distribution.

But then the internal version of cscope (which Joe was still developing) started diverging from the public version -- mostly because getting the official version updated was like extracting teeth from an irate tiger with greasy chopsticks!

The internal version changed its database format, added inverted indices, regular expression searches, caseless searches, line-oriented interfaces (so it could be wrapped by other programs), etc. Some of these changes have been independently developed for the public version by others.

It seems like you ought to add Joe's name (unless he has otherwise explicitly requested you not to do so, of course) to the history and credits section.

-- Harold Bamford

After AT&T, CScope moved on to UNIX Systems Laboratories (USL), which was acquired by Novell and then by Santa Cruz Operation (SCO). In April 2000 SCO open sourced the code to Cscope.

Back to the Cscope home page