|   Last update:  
    
      Apr  1, 2000
 | 
 | 
 
Dario Menasce1, 
    Francesco Prelz1, 
    Stefano Magni1, 
    Luciano Barone2, 
    Luca Dell'Agnello3, 
    Emanuele Leonardi4
  |  | WhereTheHeck: a WEB based source code navigator |  
    INFN MilanoUniverstita' la Sapienza e INFN RomaINFN FirenzeINFN Roma Speaker: 
Dario MenasceIn this paper we present a novel approach to WEB based source code navigation,
in the context of the WINNER R&D  project on distributed computing tools. 
We aim to provide developers and code maintainers, usually located in
different countries, a powerful and portable way to browse and search the 
code of large software projects through the Web.
Unlike other tools, based on static hyperlinks and ad-hoc parsers, this 
tool employs dynamical linking and public domain, widely used compilers for 
the parsing step.
Our package, named WhereTheHeck, allows the user to specify elements of the
source code (language tokens such as variables, common blocks, classes, 
pointers etc...) as regular expressions through a WEB form under Netscape. 
The regular expression is then used to find matches in the code using a 
token database updated offline on a regular basis.
The retrieved information is presented to the user as a list of hyperlinked
instances of the requested token (file names containing the token, line 
number within the code etc...). From the list one can link to the 
corresponding code formatted as a dynamically generated HTML page (with all
relevant hyperlinks).
The whole package has been developed in PERL and JavaScript, making it 
highly portable. We made the choice of using the f2c (for FORTRAN) and gcc 
compilers (for C and C++, both on the public domain) as parsing engines, 
which again ensures a high degree of portability.
The tool is currently in alfa test for FORTRAN and C, and the navigation
functionality for C++ will be implemented in the near future. WhereTheHeck 
is made available to the user community as a tar file (downloadable from 
the WEB). 
 
| Presentation:   | Short Paper:   | 
 
 
 |