Abstract
Much ado – and increased complexity – is generally the case when it comes
to checking formally the (intended) meaning of programs, as formal semantics
for programs are typically extrinsic to both them and the formal grammars
that generate the programming languages in which they are written. The van
Wijngaarden grammars, on the contrary, have an intrinsic semantics in the sense
that their rules contain or express the (intended) meaning of the terminal strings
generated by them. This intrinsicness allows for preservation of meaning both
in syntactic change and context-sensitive conditions. In order better to show the
intrinsicness of the semantics of the van Wijngaarden grammars I contrast them
with the attribute grammars, a frequent choice when the semantic analysis of
programming languages is called for (e.g., in compilation).