2 research outputs found

    Array resizing for scientific code debugging, maintenance and reuse

    No full text

    Array Resizing for Scientific Code Debugging,Maintenance and Reuse

    No full text
    ABSTRACT Software debugging, maintenance and reuse have to deal with many problems from Fortran scientific codes that do not fully respect the standard specification. Our study on Linpack, PerfectClub and SPEC95 benchmarks and several industrial software reveals a large number of unprecise variable declarations that prevent program analysis, verification and parallelization. Furthermore, they decrease the readability of programs and make reverse-engineering more difficult. This paper presents two different methods to compute the exact size of arrays in Fortran codes that have pointer-type REAL A(1) or assumed-size REAL A(*) declarations. The first method uses the relationship between actual and formal arguments from parameter-passing rules. New array declarations in the called procedure are computed with respect to the declarations in the calling procedures. The second approach is based on an array region analysis that gives information about the set of array elements accessed during the execution of code. This approach to array resizing could be applied to other languages without array declaration such as MATLAB and APL in order to reduce the execution overhead of dynamic test and resizing. Our two approaches are combined to yield very good results for Linpack, PerfectClub and SPEC95 benchmarks
    corecore