The set of CLP languages is generally implemented as a superset or add-on package(s) to a Prolog implementation. For example, SICStus Prolog and SWI-Prolog have CLP modules, e.g.:
https://sicstus.sics.se/sicstus/docs/3.7.1/html/sicstus_32.h...
http://www.swi-prolog.org/pldoc/man?section=clp
and "Constraint Handling Rules(CHR):
http://www.swi-prolog.org/pldoc/man?section=chr
To the best of my knowledge the modules are written in Prolog. A look at those links will give you an idea of how CLP is used. There are modules available for CLP(X) where X is one of:
B = boolean,
Z = integers,
Q = rational numbers,
R = real(floating point) numbers,
FD = finite domains (see "CLP(FD) Constraint Logic Programming over Finite Domains" http://www.pathwayslms.com/swipltuts/clpfd/clpfd.html )
etc.
One can understand how constraining the domain of interest (reducing the search space) to say, the integers, might make search more efficient.