The Toolpack Project.- 1. Introduction.- 1.1. Background to the Toolpack Project.- 1.2. Original Aims.- 1.3. Promoting Awareness and Identifying Requirements.- 2. Toolpack/1 Services.- 2.1. Relationship of Release 2 to Release 1.- 2.2. Public Access/Domain.- 3. An Introduction to Software Tools.- 3.1. Examples of Software Tools.- 3.2. Mechanisation Through the Use of Tools.- 3.3. Basic Assumptions.- 3.4. Summary of the Recognition Process.- 3.5. The Overall Transformation.- 4. Examples of the Use of Toolpack/1 Tools.- 4.1. Product Development.- 4.2. NAG Library Implementation.- 5. Conclusions.- Structure of Toolpack /1 Software.- 1. Introduction.- 2. Design Overview.- 2.1. The Integrated Tool Suite.- 2.2. The User/Toolpack Interface.- 2.3. The Tool/System Interface.- 3. Conclusions.- TIE Specifications.- 1. Introduction.- 2. Overview.- 3. Evolution.- 3.1. The Portable Directory System PDS.- 3.2. The Fortran I/O Library FIO.- 4. Specification.- 4.1. The Toolpack Virtual Machine.- 4.2. TVM Functions.- 4.3. The Flow-of-Control Sub-library.- 4.4. The File Stores.- 4.5. The Character Sets.- 4.6. Pre-connected Devices.- 4.7. The Unified I/O System.- 4.8. The Tool Operating Regimes.- 4.9. The Common Sub-library.- 5. Optional Extensions.- 6. Implementations.- 6.1. The TIECODE Implementation.- 6.2. Host-Specific Implementations.- Toolpack Invocation Techniques.- 1. Introduction.- 2. Toolpack User Interfaces.- 2.1. Direct Invocation.- 2.2. Host-Dependent Command Files.- 2.3. ISTCE.- 2.4. ISTCI — Object-oriented Interface.- The Toolpack / 1 Tool Suite.- 1. Command Executors.- 2. General Tools.- 3. Documentation Generation Tools.- 4. Fortran 77 Oriented Tools.- 5. Monoliths.- 6. DO Loop Unrolling Tools.- 7. Experimental Tools.- Analysis Tools for Fortran 77.- 1. Introduction.- 2. Lexical Analysis.- 2.1. Fortran 77 Lexical Characteristics.- 2.2. The tool ISTLX.- 3. Syntax Analysis and Transformational Grammars.- 3.1. Classes of Grammar.- 3.2. Parsing a Context-free Grammar.- 3.3. The tool ISTYP.- 4. Static Semantic Analysis.- 4.1. The Tool ISTSA.- 5. Approach to Portability Verification.- 5.1. The tool ISTPF.- 5.2. Fortran 77 Conformance Checking.- 5.3. The PFORT-77 Subset Language.- 5.4. Unsafe References.- 5.5. Common Block Usage.- 6. Conclusions.- A.1 Fortran 77 Token Types (ISTLX).- A.2 Fortran 77 Grammar (ISTYP).- Workshop on Fortran Analysis.- 1. Introduction.- 2. ISTVS — View Symbols.- 3. ISTYW — View Warnings.- 4. ISTVA — View Attributes.- 4.1. The Extended Symbol Table.- 4.2. The Global Symbol Table.- 5. ISTAN — The Execution Analysis Tool.- 5.1. Program Segments.- 5.2. The Instrumentor.- 5.3. The Annotated Token Stream.- 5.4. The Summary Report.- 5.5. The Instrumented Program.- 5.6. Integration into Toolpack/1.- 5.7. Options.- 5.8. Assertion Processing.- 5.9. History File Processing.- 5.10. Segment Tracing.- 5.11. Single-Run Statistics.- 5.12. Partial Instrumentation.- 5.13. Restrictions.- The Fortran 77 Source Polisher.- 1. A Dissertation on Presentation Rules.- 2. Approaches to Tidying Source Programs.- 3. Structure of the Polishing Mechanism.- 4. ISTPL User’s Interface.- 4.1. Failure during Physical File Access.- 4.2. Ill-conditioned Scanned View.- 4.3. Option Inconsistencies.- 4.4. Implementation Restrictions.- 5. ISTPO User’s Interface.- 6. When, How and Why to Change Polishing Options?.- 7. Conclusions.- Fortran 77 Transformers.- 1. Introduction.- 2. The Declaration Standardiser.- 2.1. The Program Template.- 2.2. Datatype Form.- 2.3. Unused Name Removal.- 2.4. Other Options.- 2.5. Integration into Toolpack/1.- 2.6. Limitations.- 3. The Precision Transformer.- 3.1. Details of Precision Transformation.- 3.2. Limitations.- 3.3. Integration into Toolpack/1.- 4. The Structurer.- 4.1. Recognising Structure in a Flowgraph.- 4.2. The Structuring Operation.- 4.3. Handling of Unusual Constructs.- 4.4. Integration into Toolpack/1.- A.1 ISTDS Section Names.- Workshop on Fortran Transformations.- 1. Introduction.- 2. Internal Operation of ISTST.- 2.1. First Pass — Parse Tree Canonicalisation.- 2.2. Second Pass — Flowgraph Creation.- 2.3. Third Pass — Structured Output.- 3. ISTGI — Make Intrinsics Generic.- 3.1. Conversion Restrictions.- 3.2. Symbol Table Attributes.- 3.3. Integration into Toolpack/1.- 4. ISTFR — Real Constant Modifier.- 5. ISTJS — Join Strings in Formats.- 5.1. Operation.- 6. ISTME — Manipulate Expressions.- 7. ISTPP — Program Parameter Verifier.- 7.1. Operation.- 7.2. Supplied Library Files.- 7.3. ISTPP-conforming tools in Toolpack/1.- DO Loop Transforming Tools.- 1. Introduction.- 2. The Transformations and Their Effect.- 3. Tool Integration in Toolpack/1.- 4. Parse Tree Walking and Flattening.- 5. ISTUD — The DO Loop Unrolling Tool.- 6. ISTCD — The DO Sequence Condensing Tool.- 7. ISTSB — The Substitution/Elimination Tool.- 8. Operation of the Tools.- A.1 The “Tree-Walking” Routine DOPROP.- The Toolpack/1 Editor and Other Fortran Modifiers.- 1. Introduction.- 2. Toolpack Editing.- 3. ISTED — Fortran Aware Editor.- 3.1. Introduction to ISTED.- 3.2. Regular Expressions.- 3.3. Expressions and Conditions.- 3.4. Simple and Global Commands.- 3.5. Summary of ISTED Commands.- 3.6. ISTED Internal Functions.- 4. ISTCN & ISTCR — Tools for Name Changing.- 4.1. Token Changing Tool — ISTCN.- 4.2. Symbol Table Changing Tool — ISTCR.- 4.3. Long-Name Changing Tool — ISTLS.- Documentation and Non-Fortran Tools.- 1. Introduction.- 2. ISTRF.- 2.1. Page Formatting.- 2.2. Headings.- 2.3. Laying Out Text.- 2.4. Macros.- 3. ISTCB.- 4. ISTTD.- 5. ISTVC.- 6. ISTDX.- 7. ISTAL.- 7.1. Annotated Listing.- 7.2. Segment Execution Frequencies.- 7.3. Statement Type Counts.- 7.4. Documentation Extraction.- 7.5. Modes of Operation.- 8. ISTDC.- 9. Conclusion.- Supporting Coding Conventions.- 1. Introduction.- 2. Coding Conventions: Elements and Implementation.- 2.1. Main Rules Concerning the Order of Statements.- 2.2. Rules for Structuring the Declaration-part.- 2.3. Rules for Tidying the Execution-part.- 2.4. Line Cosmetics.- 3. ISTDS Selected Options.- 4. The Preliminary ISTPO Session.- 5. The Transformation Chain.- 6. Sample Program.- General Advice on Installing Toolpack/1.- 1. Introduction.- 2. Which version of TIE?.- 2.1. VAX/VMS.- 2.2. Unix Systems.- 2.3. Contributed tapes.- 2.4. Other Machines.- 3. The Toolpack/1 Base Tape.- 3.1. The SPLIT Utility.- 3.2. The TIEMAC Utility.- 3.3. Installing S/LIT and TIEMAC.- 4. Installing TIECODE.- 4.1. The TIECODE Files.- 4.2. Stand-Alone Regime.- 4.3. Stand-Atop Regime.- 4.4. Stand-Astride Regime.- 4.5. Embedded Regime.- 4.6. Choosing a TIE regime.- 5. Installing Stand-Alone TIECODE.- 5.1. File 1 — TIE.FILE.- 5.2. File 2 — COMMON.FILE.- 5.3. File 3 — HOST.MAC.- 5.4. File 4 — DIRECT.MAC.- 6. Supplementary Libraries.- 6.1. ACCESS Supplementary Library.- 6.2. STRING Supplementary Library.- 6.3. TABLES Supplementary Library.- 7. Installing Tools.- 7.1. Installing ISTLX.- 8. Conclusions.- Tool Writing.- 1. Introduction.- 2. The Source Language for Toolpack/1 Tools.- 3. The Tool Interface to the Toolpack/1 System.- 4. Characters and Strings.- 5. Tokens, Nodes, and Symbol Attributes.- 5.1. Accessing the Token/Comment Stream.- 5.2. A Declaration Inserter Tool.- 5.3. Accessing the Parse Tree/Symbol Table.- 6. Documentation for the Tool Writer.- 7. Contributing Tools to Toolpack/1.- A.1 Source for the tool ISTDI.- Open Forum.- Panel and General Discussion.- The Future of Toolpack/1.- 1. Functionality.- 1.1. The NEWTON Debugging System.- 2. NAG Internal Use.- 3. Language Domain.- 4. User Interface.- 5. Portability.- 5.1. A New Definition of TIE — TIE/2.- Appendix A Toolpack /1 Contents Summary.- Numerical Algorithms Group.- Appendix B Porting Toolpack /1 to IBM MVS/TSO.- M D Dowell, P A Moinil, A A Pollicni.- 1. The Study Background.- 2. The Interface Model.- 2.1. The Mailbox Model.- 2.2. The Front-end Model.- 3. The Interface Software.- 3.1. The Engine TSOBOX.- 3.2. The Surrounding Structure.- 4. The Front-end Documentation.- 4.1. Customization and Target Characterization.- 4.2. Disclaimer.- 4.3. Tape Format.- 4.4. Tape Contents.- Bibliographic References.