Recommendations of the Software Tools Working Group
Code Development Environment
DØ Note #2936

Pushpa Bhat, Krzysztof Genser, Herb Greenlee, John Hobbs, Alan Jonchkeere,
Stan Krzywdzinski, Lee Lueking, Qizhong Li-Demarteau, Laura Paterno,
Harrison Prosper, Serban Protopopescu

The Software tools group believed that the compiler/debugger topic that we were supposed to resolve did not cover the full scope of the tools necessary for writing software. Therefore, we have changed the topic of compiler/debuggers to the broader term of code development environment to include design tools and integrated code development systems.

PRINCIPLES

The Software Tools Committee feels that the following principles should be adhered to when choosing the code development environment that we recommend for use by the DØ Collaboration in Run II and beyond:

The following sections will list what we feel should be the minimum requirements for each part of the code development system. As technology changes these recommendations may be changed to reflect the new advances if they are deemed necessary.

DESIGN TOOLS

In accordance with the recommendations from the Languages and Data Structures (DØ Note #2819) we recommend the following be the minimum requirements for design tools used for coding either in C++ or FORTRAN. We further recommend that a limited set of licenses be purchased for these tools. (A list of examples of what is currently available appears in an appendix at the end of this document).

EDITORS

This is the central piece of the DØ code development environment. Any tools that we use should be able to run from the editor. Therefore, it should provide all of the functionality as stated in the Software Tools group recommendation on editors. (DØ Note #2853).

COMPILER RECOMMENDATIONS

Adhering to these principles implies that we cannot recommend particular compilers as "DØ Standard" compilers. They imply, rather, that we need a set of coding standards that will be accepted by all allowed compilers. We also need the tools necessary to enforce these coding standards. Depending on the standards, it would be very worthwhile if the compilers could do the enforcement. (A list of currently available compilers appears in an Appendix at the end of this document).

Therefore, we make the following recommendations:

DEBUGGER RECOMMENDATIONS

We realize that most people will use the debugger that comes with whatever system they are running on. However, we still feel that there are some requirements that the debuggers will have to meet. We list them below.

OTHER TOOLS

We also see that the need for a suite of tools to aide in code development. Below are a few that we feel will surely be necessary. This list will obviously grow with time.

APPENDIX A - CURRENT DESIGN TOOLS AVAILABLE

Currently the following design tools are available for C++:

Currently the following design tools are available for Fortran 90:

APPENDIX B - CURRENT COMPILERS AVAILABLE

The following compilers are available which support the minimum C++ language standards for DØ coding requirements:

At this time the only Fortran 90 compiler we have at DØ is

As yet no coding requirements have been specified for Fortran 90 save that it must compile all of our existing Fortran 77 code. Certainly major changes to a large portion of the DØ would have to be done before it would compile in MS Fortran Powerstation.