Book contents
- Frontmatter
- Contents
- Foreword
- Preface
- 1 Introduction to Modern Fortran
- 2 Array-Valued Functions
- 3 Mathematical Abstractions
- 4 Memory Management
- 5 An Interface Problem
- 6 Interfacing to C: SQLite As an Example
- 7 Graphics, GUIs, and the Internet
- 8 Unit Testing
- 9 Code Reviews
- 10 Robust Implementation of Several Simple Algorithms
- 11 Object-Oriented Programming
- 12 Parallel Programming
- A Tools for Development and Maintenance
- B Caveats
- C Trademarks
- Bibliography
- Index
A - Tools for Development and Maintenance
Published online by Cambridge University Press: 05 July 2012
- Frontmatter
- Contents
- Foreword
- Preface
- 1 Introduction to Modern Fortran
- 2 Array-Valued Functions
- 3 Mathematical Abstractions
- 4 Memory Management
- 5 An Interface Problem
- 6 Interfacing to C: SQLite As an Example
- 7 Graphics, GUIs, and the Internet
- 8 Unit Testing
- 9 Code Reviews
- 10 Robust Implementation of Several Simple Algorithms
- 11 Object-Oriented Programming
- 12 Parallel Programming
- A Tools for Development and Maintenance
- B Caveats
- C Trademarks
- Bibliography
- Index
Summary
Nowadays there are myriad tools to select from if you develop and maintain software. Much is open source, but there are also many commercial tools available. The development and maintenance tools include:
■ Compilers, linkers, and interactive debuggers
■ Build tools to automatically compile the source code in the right order
■ Integrated development environments
■ Tools for static and dynamic analysis
■ Version control systems
■ Tools for source code documentation
This appendix describes some uses of these tools, but it does not provide a complete overview.
The Compiler
Since the Fortran 90 standard, the language has gained features that make it easier for the compiler to perform static and dynamic analysis:
■ The implicit none statement (or equivalent compiler options) force the compiler to check that every variable is explicitly declared. This reduces the chance that typos inadvertently introduce bugs in the form of stray variables names into the program.
■ By putting all routines in modules, you make sure the compiler checks the number and types of the arguments for subroutine and function calls. It also reduces name clashes when linking a large program, which uses many libraries.
■ By using assumed-shape arrays instead of assumed-size, the compiler can insert runtime checks for array bounds. Moreover, you do not need to add separate arguments for the size of arrays anymore. This makes the call simpler and less error-prone.
Therefore, the compiler has become a much more powerful tool with respect to static and dynamic analysis.
- Type
- Chapter
- Information
- Modern Fortran in Practice , pp. 221 - 231Publisher: Cambridge University PressPrint publication year: 2012