Syntax of one language as the semantics of another language?
The syntax of a language is the structure of legal constructions of invariant components for that language; its semantics are the allowed selections of variant terms that can be instantiated into that structure to form legal constructions, and the inferred meaning of such selections. So a syntax (structure of invariant components) can't serve as semantics (variant term selection), no matter how hard you try.
abstract grammar can serve as the model of concrete grammar and vice versa.
Grammar is inherently "abstract"; for instance, it doesn't care about the specific variable components selected (including whether such selections make any sense), so the first part is correct. But the "vice versa" makes no sense, since the instantiation of variant (semantic) terms into a grammar model (syntax) creates a statement in the language, not a "model" of anything (certainly not of the abstract grammar from which it was derived).
I have long been fascinated by the trade-off between syntax and semantics in the design of a language. I'm the creator of an Expert System whose rules language automates the manipulation of over 30 computer languages, as well as data and text. I got tired of writing parsers, so I created a parsing engine that executes EBNF at parse time. That required some significant thought about the interplay between syntax and semantics. For instance, a heavily context-bound grammar throws more weight to semantics (the context) and less to syntax; that has some serious pros and cons in terms of usability and readability of the language.