• DocumentCode
    2895822
  • Title

    JPROFILE102: A system for experimental analysis of algorithms

  • Author

    Krajangthong, Tanin ; Prasitjutrakul, Somchai

  • Author_Institution
    Dept. of Comput. Eng., Chulalongkorn Univ., Bangkok, Thailand
  • fYear
    2012
  • fDate
    May 30 2012-June 1 2012
  • Firstpage
    207
  • Lastpage
    212
  • Abstract
    This paper presents a system called JPROFILE102 used for experimental analysis of algorithms. The system accepts algorithms implemented as Java methods along with experiment parameters specifying characteristics and sizes of input data. The objective is to count the number of times each source code instruction gets executed during the experiments. Source-code instrumentation technique is used by parsing the source code to obtain its associated abstract syntax tree, traversing the tree, inserting extra counting instructions at instruction nodes and finally transforming the tree back into an instrumented source code ready for experiments. To correctly handle method calls in the code (especially recursive calls), a separate run-time call stack has to be implemented to keep non-duplicated counter IDs in the call chain. All profiling data obtained from the experiments are summarized and reformatted into an HTML page with two views. One shows a histogram of execution counts. The other shows line plots of selected instruction counts vs. input data size to visualize efficiency behavior of the algorithm. The system is embedded into a Java IDE and effectively used as a teaching aid in several algorithm analysis courses.
  • Keywords
    Java; computer science education; educational courses; hypermedia markup languages; program compilers; program diagnostics; source coding; teaching; trees (mathematics); HTML page; JPROFILE102 system; Java IDE; Java methods; abstract syntax tree; algorithm analysis courses; algorithm experimental analysis; execution count histogram; extracounting instruction insertion; instruction nodes; method call handling; profiling data; run-time call stack; source code parsing; source-code instrumentation technique; teaching aid; tree traversing; Abstracts; Algorithm design and analysis; Arrays; Histograms; Instruments; Java; Radiation detectors; analysis of algorithm; experimental analysis;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Science and Software Engineering (JCSSE), 2012 International Joint Conference on
  • Conference_Location
    Bangkok
  • Print_ISBN
    978-1-4673-1920-1
  • Type

    conf

  • DOI
    10.1109/JCSSE.2012.6261953
  • Filename
    6261953