Experience with FORTRAN VERIFIER

A tool for documentation and error diagnosis of FORTRAN-77 programs
  • Reidar Conradi
VIII — Validation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 289)


FORTRAN VERIFIER (FORTVER) is a tool to assist the development, testing and maintenance of large FORTRAN-77 programs. FORTVER will check module interfaces, and produce various documentation and cross-references. It will compute interprocedural, flow-insensitive sideeffects with complete static and dynamic aliasing in order to diagnose unused, unevaluated, unassigned, or otherwise illegally used variables. An improvement of Banning's algorithm for REF-parameter aliases is also introduced.

FORTVER has analyzed 50 production programs with 1.5 M lines of code, including 3 programs of 300 K lines each. FORTVER routinely diagnoses one serious error per 500–1000 lines at a cost of $20 per error, and can analyze 10–100 times bigger programs than the capacity of similar test tools. Results from four analyzed programs are reported and discussed.

FORTVER has recently been expanded with the FV/QE query editor, using data dictionary functions to assist programming-in-the-large. These tools are being integrated into the EPOS programming environment through the EPOS-DB system database. (EPOS means "Expert System for Program and System Development".)


FORTRAN Dataflow Analysis Error Diagnosis Programming Environment 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7 References

  1. /Banning 79/.
    John P. Banning: "An Efficient Way to Find the Side Effects of Procedure Calls and the Aliases of Variables", Sixth Annual ACM Symposium on Principles of Programming Languages, SIGACT-SIGPLAN, San Antonio, Jan. 1979, pp. 29–41.Google Scholar
  2. /Berns 84/.
    Gerald M. Berns: "Assessing Software Maintainability", Comm. of the ACM, Jan. 1984, pp. 14–23.Google Scholar
  3. /Campbell 84/.
    Roy H. Campbell, Peter A. Kirslis: "The SAGA Project: A System for Program Development", Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, 23–25 April 1984, Pittsburgh. In ACM SIGPLAN Notices, Vol. 19, No. 5, May 1984, pp. 73–80.Google Scholar
  4. /Chan 86/.
    Fun Ting Chan, Tsong Yueh Chen: "AIDA — A Dynamic Data Flow Anomaly Detection System for Pascal Programs", Software — Practice and Experience, Vol. 17 No. 3, 1986, pp. 227–239.Google Scholar
  5. /Conradi 86/.
    Reidar Conradi: "Experience with FORTRAN VERIFIER, a Tool for Documentation and Error Diagnosis of FORTRAN-77 programs", Tech. Report 19/86, Div. of Computer Science, Norw. Inst. of Tech., Trondheim, Feb. 1986 (rev. April 1987), 21 pp.Google Scholar
  6. /Conradi 87a/.
    Reidar Conradi: "The EPOS Project — an Introduction", Tech. Report 28/87, Div. of Computer Science, Norw. Inst. of Tech., Trondheim, Jan. 1987, 11 pp.Google Scholar
  7. /Conradi 87b/.
    Reidar Conradi, Tor M. Didriksen, Hávard Eidnes, Ola Heensásen: "Experience with an Object-Oriented Database Interface for the EPOS Programming Environment", Tech. Report 7/87, Div. of Computer Science, Norw. Inst. of Tech., Trondheim, Jan. 1987, 10 pp. In Malcolm Atkinson (Ed.): "Proc. Workshop on Persistent Object Stores", Univ. of Glasgow, UK, 25–28 Aug. 1987 (forthcoming).Google Scholar
  8. /Cooper 84/.
    Keith D. Cooper, Ken Kennedy: "Efficient Computation of Flow Insensitive Interprocedural Summary Information", Proc. ACM SIGPLAN '84 Symposium on Compiler Construction. In ACM SIGPLAN Notices, Vol. 19 No. 7, June 1984, pp. 247–258.Google Scholar
  9. /Cooper 86/.
    Keith D. Cooper, Ken Kennedy, Linda M. Torczon: "The Impact of Interprocedure Analysis and Optimization in the Rn Programming Environment", ACM Transactions on Programming Languages and Systems, Vol. 8 No. 4, Oct. 1986, pp. 491–523.Google Scholar
  10. /Feuerhahn 78/.
    Hartmut Feuerhahn, Cornelis H.A. Koster: "Static Semantic Checks in An Open-ended Language". In P.G. Hibbard, S.A. Schuman (Eds.): "Constructing Quality Software", North-Holland, 1978, pp. 249–269. Proc. IFIP TC2 Work. Conf., Novosibirsk, May 1977.Google Scholar
  11. /Fosdick 76/.
    Lloyd D. Fosdick, Leon J. Osterweil: "Data Flow Analysis in Software Reliability", Computing Surveys, Sept. 1976, pp. 305–330.Google Scholar
  12. /Gallo 86/.
    Ferdinando Gallo, Regis Minot, Ian Thomas: "The Object Management System of PCTE as a Software Engineering Database Management System". In /Henderson 86/, pp. 12–15.Google Scholar
  13. /Henderson 86/.
    Peter Henderson (Ed.): Proc. ACM SIGSOFT/SIGPLAN Symposium on Practical Software Engineering Environments, Palo Alto, 9–11 Dec, 1986. In SIGPLAN Notices, Vol. 21 No. 12, Dec. 1986. 227 pp.Google Scholar
  14. /Johnson 79/.
    Stephen C. Johnson: "LINT, a C Program Checker". In "UNIX System Programmer's Manual", Vol. 2, pp. 278–290. Holt, Rinehart, and Winston, 1979.Google Scholar
  15. /Knuth 71/.
    Donald E. Knuth: "An Empirical Study of FORTRAN Programs", Software — Practice and Experience, Vol. 1 No. 2, 1971, pp. 105–134.Google Scholar
  16. /Miller 81/.
    Edward F. Miller, William E. Howden (Eds.): "Tutorial: Software Testing and Validation Techniques", Second edition, IEEE Catalog No. EHO 180-0, 1981.Google Scholar
  17. /Mitchell 86/.
    Charles Z. Mitchell: "Engineering VAX Ada for a Multi-Language Programming Environment", In /Henderson 86/, pp. 49–58.Google Scholar
  18. /Muchnick 81/.
    Steven S. Muchnick, Neil D. Jones: "Program Flow Analysis: Theory and Applications", Prentice-Hall, Englewood Cliffs, New Jersey, 1981, 418 pp.Google Scholar
  19. /NorskData 84/.
    Norsk Data: "The Database System SIBAS II, ND User Manual, Version 04", Publ.ND-60.127-04, Norsk Data A.S., Oslo, Aug. 1984.Google Scholar
  20. /Osterweil 76/.
    Leon J. Osterweil, Lloyd D. Fosdick: "DAVE — A Validation, Error Detection and Documentation System for FORTRAN Programs", Software — Practice and Experience, Sept. 1976, pp. 473–486.Google Scholar
  21. /Osterweil 83/.
    Leon J. Osterweil: "ToolPack, An Experimental Software Development Environment Research Project", IEEE Transactions on Software Engineering, Nov. 1983, pp. 673–685.Google Scholar
  22. /Rich 86/.
    Charles Rich, Richard C. Waters: "Readings in Artificial Intelligence and Software Engineering", Morgan Kaufmann Publ., Los Altos, Calif., 1986, 602 pp.Google Scholar
  23. /Sarraga 84/.
    Ramon F. Sarraga: "Static Data Flow Analysis of PL/I Programs with the PROBE System", IEEE Transactions on Software Engineering, Vol. SE-10 No. 4, July 1984, pp. 451–459.Google Scholar
  24. /SIGSOFT 85/.
    On the "D01OI=1.10" error in Mariner-I. ACM SIGSOFT Software Engineering Notices, Vol. 10 No. 3, May 1985.Google Scholar
  25. /Taylor 83/.
    Richard N. Taylor: "An Integrated Verification and Testing Environment", Software — Practice and Experience, Aug. 1983, pp. 697–713.Google Scholar
  26. /Teitelman 81/.
    Warren Teitelman, Larry Masinter: "The Interlisp Programming Environment", Computer, Vol. 14 No. 4, April 1981, pp. 25–34.Google Scholar
  27. /Torczon 85/.
    Linda M. Torczon: "Compilation Dependencies in an Ambitious Optimizing Compiler", Ph.D. Dissertation, Rice Univ., Computer Science Dept., Houston, Texas, May 1985, TR 85-21.Google Scholar
  28. /Wilson 85/.
    Cindy Wilson, Leon J. Osterweil: "Omega — A Data Flow Analysis Tool for the C Programming Language", IEEE Transactions on Software Engineering, Vol. SE-11 No. 9, Sept. 1985, pp. 832–838.Google Scholar
  29. /White 81/.
    L.J. White: "Basic Mathematical Definitions and Results in Testing", pp. 13–24. In B. Chandrasekaran, S. Radicchi (Eds.): "Computer Program Testing", North-Holland Publishing Company, 1981, 325 pp. Proc. from Summer School held at Sogesta, Urbino, Italy, June 29–July 3, 1981.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Reidar Conradi
    • 1
  1. 1.Division of Computer ScienceNorwegian Institute of TechnologyTrondheim-NTHNorway

Personalised recommendations