I wanted to know if I can program CPLDs /FPGAs using C language? If so, is it commonly practiced? What are the steps and the required & tools for the same?
Generally you can. There is free SystemC for HLS(High Level Synthesis). HLS is getting more and more popular but what you have to remember is that you do not program CPLDs /FPGAs using C language, you rather describe hardware using C language. To make it work on real hardware you need vendor specific HLS tools.
In my opinion, writing synthesizable description in C is harder than in Verilog/VHDL but it is usually faster if you are familiar with the syntax and you follow some extra rules.
For FPGAs, yes. I don't think there are many tools to target CPLDs with C (although in theory it should be perfectly possible).
I may be talking heresy here, but (to me) the advantage of C-to-gates is that you can run an awful lot of your algorithm development and verification in pure-C (using your normal C development environment, and well understood software tooling/debuggers...) and once it is working to your satisfaction, target it to the FPGA.
Then you only have to validate the C-to-gates transformation (ie the tool) in simulation and hardware. If you write your algorithm in HDL, you have to verify the algorithm in very slow simulation, and then verify and validate your implementation in hardware (and/or even slower gate-level simulation).
You may have to iterate for performance (but you probably had to do that post-synthesis anyway even in HDL, unless you were very good at HDL optimisation... and I contend that after a few months you can be very good at C-for-gates optimisation and then not iterate as much either)
There are two main ways to do this: one is with HLS where you write a description of a high level algorithm in c and it gets translated to HDL or a netlist. HLS is not really applicable for a complete design though, usually just a few pieces. The other way is to put a soft CPU on the FPGA, and then program that in C. Some FPGAs also contain hard CPU cores (Zynq has ARM cores, various Virtex chips have PowerPC cores) and those can certainly be programmed in C.