The idea of the Tool Abstraction Concept (TAC)[Hal94] is shown in Fig. 6.5. The programming languages C, C++, FORTRAN, PASCAL and VLisp are considered implementation domains of an abstract tool, which provides some functionality. A characterization of this tool can be derived from the implementation itself and from some additional formal description. This information can then be used to create an interface for this tool in another target domain.
There is no principal restriction of the scope of a tool abstraction concept and new domains can be added. Tool abstraction (more precisely, abstract formal characterization of tools) is becoming a major field of interest in many areas[Ips90, Cal91, Kle94].
Tool abstraction has two major functionalities in VMake. The first is automatic language binding between C, C++, FORTRAN and VLisp (see Appendix B). The second one is generating reference manuals automatically and building documentation out of predefined documentation atoms. TAC works in two steps: