Topical Information

The purpose of this paper is to give you a chance to show your knowledge of maps and strings.

Paper Information

In class the idea of a concordance was mentioned. Find out more about what a concordance is, what it is used for (as many applications as you can find), etc. How does this relate to a word search puzzle, a cross referencer, or a language tokenizer? Have you ever found yourself wanting the facilities of a concordance but didn't know what to call it? (Kind of like there's a name for the plastic caps at the ends of shoelaces, but most of us don't really know least not consciously.) Describe how a concordance might be coded for efficient retrieval of such information.

This assignment is (Level 4).


Add (Level 5) to write a concordance use it to catalog all of your program files. How quickly can you now locate a function or a struct/class? (Time it and compare to what it might take by other means of searching. What if the program files were in separate directories/trees? Include the building time and then amortize this out over, say, 50 searches.)

Add (Level 3) to tailor your concordance to C/C++ code. When it scans a function name, it should recall the scope, file, line, and any comments immediately before or after the function head. It should cross-link the prototype, definition, and any calls to the function. Similar info should be stored/linked for typedef, enum, class, struct, and variables. Now that it is geared for code, how much more useful is it than the original version?