Just in case you are asking about why Cache has .mac files and .int files. These are shorthand for macro and intermediate. Both are routine files but have different roles at compile time.
A mac file can contain macro code like $$$InsertCodeHere. When this routine is compiled in to intermediate code the macro has been evaluated and replaced with actual runnable objectscript code like
write !,"Bill was here"
You can only use macros in .mac routines. Classes support macros because they get compiled in to .mac's and then generate INT code