Last updated: 03 Aug 2001
This WebPage:
Alternate Address:


(03aug2001) - if you see any problems please let us know.

Welcome to Software Blacksmiths (CDOC)

CDOC Professional (tm) is a set of automated tools for Windows3.1, Win95/98/ME, WinNT/2000, DOS, and Linux (with OS/2 via webDownload). They analyze existing C, C++, or Java programs and generate caller/called tree diagrams, class hierarchy trees, class inheritence/containment reports, identifier cross-references, reformat source or action-diagram listings, count code/comments and calculate path cyclomatic complexity, generate/insert/update function comment blocks.

CDOC HomePage Contents

This CDOC home page document contains the following summary information:
  • Year 2000 compliance
  • Cost, Capacity, and Requirements
  • Ordering information
  • Follow-up Questions/Comments via email or phone In addition to the above summary information, more detailed descriptions and examples are available in each of the following documents:

    Overview of CDOC, Benefits and Features

    Overview of CDOC

    CDOC Professional (tm) is an automatic 'C' and 'C++' program documentation tool for Windows3.1/95/NT, Linux, and DOS (and OS/2 via webDownload).

    CDOC is used by managers and programmers to generate information which is used to modify and maintain 'C' and 'C++' software products. Software development managers and professionals, both administrators and developers, find CDOC a great time saver. For poorly documented code or programs that are delivered with inadequate support documentation, CDOC is the premiere way to reverse engineer the software and keep it alive. CDOC unwinds the tangled web of code that may be inherited or simply under development (with the documentation 'to come later'!).

    For example, processing our EXAMPLE program can create a graphical (JavaVM or WebBrowser) function hierarchy-tree:

    [backup to Contents]


    Save hours of documentation time
    ( CDOC is automated and easy-to-use )
    Simplify debugging
    ( CDOC produces clear and accurate documentation )
    Save hours of maintenance
    ( CDOC will produce up-to-date documentation )
    Improve program structure and efficiency
    ( CDOC simplifies understanding of program structure )
    Document 'outside programs' for easier understanding and changes
    (independent of compiler, processes K&R and ANSI syntax)

    [backup to Contents]


    Inputs (Compiler compatibility)

    CDOC will process 'C', 'C++', and 'Java'(tm) programs used by virtually any 'C','C++', or 'Java' compiler (since the syntax is essentially the same between compilers, and their unique library routines are listed as external functions).


    CDOC outputs ASCII text to a file, and this ASCII text is compatible with any printer or word- processor. CDOC also has an option to provide bold highlighting for EPSON and LASERJET compatible printers, and an option to provide bold highlighting and text files for RTF compatible word processors (such as MS-WORD and WordPerfect).

    Version-7 and 8 can also generate HTML reports, with extensive cross-links between the reports, so that you can use your favorite WebBrowser to view the reports and click-and-jump between related information. To see for yourself how this works, please browse through out example v81c.htm reports.

    CLIST (tm) shows the control-logic ('flow structure') within each function

    CCALL (tm) caller/called hierarchy ('flow structure') between functions

    CCMT (tm) generates/inserts/updates function comment blocks

    CMETRIC (tm) calculates path complexity/quality for functions

    CREF (tm) shows all local/global/parameter/define identifier references

    JavTREE (tm) (FREE with CDOC) Java-based graphic tree viewer

    CHELP (tm) (CHELPwin, CHELPos2) G.U.I. to setup and run CDOC

    [backup to Contents]

    Computer Language Review of CDOC

    Vol9 No9, Sep92, Pages 81-84, reviewed by Todd Hoff

    "If you want to become a 90s kind of programmer, then you need C-DOC from Software Blacksmiths Inc. C-DOC is a suite of five documentation tools for C and C++ to help professional programmers get in touch with their code, gain global perspective, and look at their code not as a collection of separate, individual functions but as an interdependent whole. C-DOC is comprised of five individual parts: C-CALL, C-CMT, C-REF, C-LIST, and C-METRIC (which calculates the McCabe cyclomatic complexity metric)."
    "C-DOC's packaging and installation provide a metaphore for the whole system -- functional and solid, without frills. Installation was fast, clean, and easy -- make a target directory, move into it, and invoke the install program that politely asks what components to install."
    "My build tree has 13 subdirectories with a system of recursive makefiles for building various project versions. Because I use several commercial packages with deep include file nesting and build for several target environments, I felt this would give C-DOC's macro processing abilities a good workout. ... C-DOC also supports metacharacters in filenames, making for painless specification of large groups of source files. I quickly made a configuration file specifying all files in my project and for each major subsystem. I then made a configuration file for each set of options I would use. I used batch files to combine configuration options with the source files I wanted to use. This methodolgy worked well and was very flexible. It took about 14 minutes to finish processing my files."
    "The main product of C-METRIC is a popular metric called the McCabe cyclomatic complexity metric (doesn't it sound impressive?). In simplest terms, the McCabe metric measures the number of decision points in a module. The idea is that the higher the number of decision points, the higher the chances for a bug."
    "If you find that you've misplaced a function, try C-CALL's table-of-contents feature. ... Let's say you need more than a table-of-contents. A common situation arises when you need to make a small modification for a customer, and you haven't looked at the code for a while. A simple tree diagram of a program's function call hierarchy could help prevent a lot of fumbling. A host of options gives you good control over the tree's format and how much detail is provided. Recursive functions are highlighted. ... A tree drawn with IBM extended line-drawing graphic characters is also available".
    "Just as functions get buried in code, identifiers get lost among the files. C-REF offers several levels of cross-referencing detail for local, parameter, global, and define identifiers. Using the various options you can enable C++ keyword processing, class identifier tracking, and production of a C++ class-hierarchy diagram. Although the options are cryptic, one of C-DOC's strengths is its ability to handle CX and C++ source. C-DOC eases the angst of anyone who has tried unraveling the inheritance tree of a complex class library.
    "C-LIST acts as a pretty printer and also produces control logic diagrams of each function. As a pretty printer, you can control how braces are placed, alignment of identifiers, comment alignment, and many other aspects of source-code aesthetics. As a logic-diagrammer, C-LIST highlights loops, exits, and decision structures."
    "C-CMT generates or updates function comment-blocks at the start of each C function. Many shops require function headers to include information listing what functions are called, what identifiers are used, and, occasionally, even what functions use the current function. How often have you actually seen the headers filled out? Even if they are filled out, how often are they accurate? Did you ever think all that information should be compiled automagically? If so, C-CMT is your tool. C-CMT even preserves any current function comments you may have."
    "Software Blacksmiths is not Microsoft. It is a small company dedicated to producing quality software tools.... On the whole, C-DOC has a few rough spots, but it also has a lot to offer. Without a doubt, developers coding in C or C++ should give C-DOC a try."

    [backup to Contents]

    Free Demo program and Free CDOC Updates

    Free demo program

    Free CDOC & CDOC Professional v8.1 Updates (for registered owners)

    [backup to Contents]

    Cost, Capacity, and Requirements

    CDOC Professional ($299us) (DOS, Windows, Linux (and OS/2 via webDownload))





    CDOC Standard ($199us) (DOS, Windows GUI)





    IBM Personal Computer (386/486/Pentium PC)
  • extended memory, and hard disk-drive
  • PC-DOS or MS-DOS (version 3.3 or later), and/or...
  • Windows (Windows3.1, or Windows95/98/ME, or WindowsNT/2000).

    [backup to Contents]

    Ordering information

    The CDOC products may be ordered direct from SoftWare BlackSmiths - Just call our autoswitching Voice/Fax line at (905)-858-4466 to place your order. We accept Visa, Mastercard, Cheque, or Company Purchase Orders (from established companies). We offer an unconditional 30-day guarantee of satisfaction, and NorthAmerican AirMail shipment is included in our price.

    The CDOC products may also be ordered from most of the larger software mail-order companies. Their prices and terms vary. For example, you can contact:

    [backup to Contents]

    Questions/Comments via EMail or Phone

    We have attempted to provide most of the basic information you might need. We are always trying to improve our information, so if you have any comments (good or bad) please send us an EMail note.

    If you have any questions, please send us an EMail note with the question (try to be as specific as possible so we can ensure a quality reply). If you wish us to call you, enclose your Name and Phone Number in your note and request a follow-up call, or you can give us a call at (905)-858-4466.

    [backup to Contents] [next document CLIST]


    SoftWare BlackSmiths Inc, 6064 St Ives Way, Mississauga ON, Canada L5N-4M1 WWW = eMail = Voice/Fax = (905)-858-4466 You are the visitor to this page. We just reset our 'hit-counter' aug2001.