The basics of the CLP(R) language are reviewed, and some important programming techniques are described. A brief overview of the implementation of the CLP(R) interpreter is given. The operational model of the CLP(R) language is based on the amalgamation of two main procedures: a logic programming engine and a constraint solver for the domain of uninterpreted terms and arithmetic terms. In CLP(R) programs, constraints are used to specify the input parameter, appear dynamically during execution, and are output as answer constraints. Three clearly identifiable paradigms of CLP(R) programming methodology are described: hierarchical reasoning and constraint propagation, constraints as output, and a constrain-and-generate methodology for combinatorial search problems.