My understanding (please correct me if I'm wrong) is that Coq uses camlp{4,5} only as an extensible parser library in order to parse its own language (which can be extended with user-defined notations). In particular, Coq does not use the following camlp{4,5} features:
This is not entirely correct. Coq uses camlp4's extensible ocaml syntax in quite a bit of its code. (though less than it use to, I hear). The following features are used:
- the alternative representation of OCaml AST
- the Camlp4 grammar definitions for OCaml syntax(es)
- quotations/antiquotations to produce fragments of the OCaml AST
- OCaml syntax extensions to define grammar entries
- custom OCaml syntax extension for the Coq source code itself
Though quotations are used *very* sparsely (mostly in legacy code, they are not maintained).
Arnaud Spiwack