\relax \bibstyle{plain} \citation{binder2000,astoot94,mcgregor01,roper} \citation{chen98,harrold92,fosse97} \citation{purdom72} \citation{bazzichi82,celentano80,homer89} \citation{murali83} \citation{harm2000,harm2001} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {i}}\bf Introduction}{1}} \newlabel{intro}{{\uppercase {i}}{1}} \citation{purdom72} \citation{aho86} \citation{muchnick97} \citation{binder2000} \citation{mcgregor01} \citation{bazzichi82,celentano80,murali83} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {ii}}\bf Background}{2}} \newlabel{back}{{\uppercase {ii}}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {ii}-A}Terminology}{2}} \citation{mcgregor01} \citation{mcgregor01} \citation{gamma2001} \citation{beck2000} \citation{binder2000,astoot94,mcgregor01,roper} \citation{harrold94,kung96,souter00} \citation{chen98,harrold92,fosse97} \citation{purdom72} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces {\em Sample grammar}. This figure illustrates ``{\sf little}'', a sample grammar that threads our paper. We use {\sf little} to illustrate the phases of Purdom's algorithm. }}{3}} \newlabel{fig:little}{{1}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {ii}-B}Generating Test Cases}{3}} \newlabel{testcases}{{\uppercase {ii}-B}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {ii}-C}Testing}{3}} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {iii}}\bf Purdom's Algorithm: reformulation \& interpretation}{3}} \newlabel{algorithm}{{\uppercase {iii}}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces {\em Phase one data structures}. This figure illustrates the final values in SLEN, RLEN and SHORT for {\sf little}, the sample grammar that threads our paper. }}{4}} \newlabel{fig:data1}{{2}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {iii}-A}Phase One: Shortest Terminal String}{4}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces {\em Phase one of Purdom's algorithm.} }}{4}} \newlabel{fig:phase1}{{3}{4}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces {\em Phase two data structures}. This figure illustrates the final values in DLEN and PREV for {\sf little}, the sample grammar that threads our paper. }}{5}} \newlabel{fig:data2}{{4}{5}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces {\em Phase two of Purdom's algorithm.} }}{5}} \newlabel{fig:phase2}{{5}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {iii}-B}Phase Two: Shortest Derivation Algorithm}{5}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces {\em Phase three data structures}. This figure illustrates the values in ONCE, MARK and ONST for {\sf little}, the sample grammar that threads our paper. The first column of boxes lists the non-terminal, production numbers and non-terminals respectively for the structures; subsequent columns list values at the beginning of phase three, and then at the end of the {\sf do\_sentence} loop in Figure 8\hbox {} for iterations 1 through 5 of the loop. }}{6}} \newlabel{fig:data3}{{6}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {iii}-C}Phase Three: Sentence Generation Algorithm}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces {\em Auxiliary functions, init, short, load\_ONCE, and process\_STACK for phase three of Purdom's algorithm.} }}{6}} \newlabel{initp3}{{7}{6}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\uppercase {iii}-C.1}The Data Structures}{7}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\uppercase {iii}-C.2}The Auxiliary Functions}{7}} \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces {\em Phase three of Purdom's algorithm.} }}{7}} \newlabel{fig:phase3}{{8}{7}} \citation{harm2000} \citation{purdom72} \citation{C++standard98} \citation{purdom72} \citation{harm2000} \citation{power00} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\uppercase {iii}-C.3}Sentence Generation}{8}} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {iv}}\bf Case Study}{8}} \newlabel{study}{{\uppercase {iv}}{8}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {iv}-A}The Test Suite}{8}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {iv}-B}The Generated Sentences}{8}} \citation{schmidt86} \citation{power01} \@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces {\bf Test Suite.} This table lists the grammars that we used as test cases for the implementation of our interpretation of Purdom's Algorithm. The column on the left of the table lists the grammar, and the four columns on the right list statistics about the structure of each grammar. }}{9}} \newlabel{table:testsuite}{{9}{9}} \@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces {\bf Results of the case study.} This figure illustrates the results of our study using five grammars, including C and C++. The column on the left lists the test cases and the three columns on the right list the results of the study. We include the second column describing the number of rules in each test case grammar as a means of comparing the results of each test. }}{9}} \newlabel{table:results}{{10}{9}} \citation{celentano80} \citation{celentano80} \citation{purdom72} \citation{bazzichi82} \citation{bazzichi82} \citation{murali83} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {v}}\bf Related Work}{10}} \newlabel{related}{{\uppercase {v}}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {v}-A}Minimal \& Maximal Strategy}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {v}-B}Parametric Grammars}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {v}-C}Pseudo-random Generation}{10}} \citation{harm2000} \citation{harm2001} \citation{weyuker86} \citation{murali83} \citation{purdom72} \citation{harm2001} \citation{goodenough75} \citation{weyuker86} \citation{harm2001} \@writefile{toc}{\contentsline {subsection}{\numberline {\uppercase {v}-D}Attribute Grammars}{11}} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {vi}}\bf Adequacy Criteria}{11}} \newlabel{adequacy}{{\uppercase {vi}}{11}} \citation{C++standard98,gosling96} \bibdata{paper} \bibcite{C++standard98}{1} \bibcite{aho86}{2} \bibcite{bazzichi82}{3} \bibcite{beck2000}{4} \bibcite{binder2000}{5} \bibcite{celentano80}{6} \bibcite{chen98}{7} \bibcite{astoot94}{8} \bibcite{gamma2001}{9} \bibcite{goodenough75}{10} \bibcite{gosling96}{11} \bibcite{harm2000}{12} \bibcite{harm2001}{13} \bibcite{harrold92}{14} \bibcite{harrold94}{15} \bibcite{homer89}{16} \bibcite{kung96}{17} \bibcite{mcgregor01}{18} \bibcite{muchnick97}{19} \bibcite{murali83}{20} \bibcite{power00}{21} \bibcite{power01}{22} \bibcite{purdom72}{23} \bibcite{roper}{24} \bibcite{schmidt86}{25} \bibcite{souter00}{26} \bibcite{fosse97}{27} \bibcite{weyuker86}{28} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {vii}}\bf Conclusions and Future Work}{12}} \newlabel{conclude}{{\uppercase {vii}}{12}} \@writefile{toc}{\contentsline {section}{\numberline {\uppercase {viii}}\bf Acknowledgement}{12}}