FWEB is distinguished from its relatives in several respects:
- FWEB introduces the concept of a current language (see Languages), so more than one compiler language can be processed in a single FWEB run. For example, mixtures of C++ and FORTRAN are common in modern scientific programming.
- FWEB understands the syntaxes of several of the more important compiler languages: C, C++, FORTRAN (both F77 and F90), RATFOR, and TeX. For other languages, FWEB can work in a language-independent mode that essentially weaves and tangles the source code verbatim, but still provides the user with the powerful WEB features related to TEX documentation, module names, macro processing, etc.
- FWEB contains a built-in RATFOR (RATIONAL FORTRAN) translator. See Ratfor.
- FWEB has a built-in C-like macro preprocessor. This is especially useful for FORTRAN and RATFOR, which have no predefined preprocessor. However, certain extensions such as variable numbers of arguments make the FWEB preprocessor sometimes useful even for C and C++. See Macros and Preprocessing.
- Many aspects of FWEB’s behavior, default strings, etc. can be customized by means of setting parameters in a
makeindex
-like style file (by default, fweb.sty). See Style.