After some reading I think I understand what is the .modulemap file for: it is for the Clang complier to support the newly introduced "module" mechanism for C-like programming languages (C, C++, Objective-C, etc.).
Even though I said "module" is new, I haven't actually check when it is introduced. What I am sure is it is newer than the basic #include mechanism. One of the difference it makes is to allow separate compilation of individual modules.
While the "module" mechanism is being used, the original .h files (header files) of the C-like language library can still be used, and an additional file with .modulemap extension is added to specify which header file is mapped to which module name to be consumed. The syntax of this .mdulemap file is "Module Map Language".
https://releases.llvm.org/3.3/tools/clang/docs/Modules.html#module-map-language