Are there programs that can 'translate' source code between any two languages (assuming the translator has access to the requisite libraries)?

If there are, how do they work (techniques used, knowledge required, etc)? How would they feasibly be constructed?

If they aren't, what are the restrictions preventing their development? Is this an A.I complete problem (natural language translation is listed as one)?

***EDIT***
Conversion is only expected, when the language has the same expression power, can solve the same kind of problems and the code to be converted **can** be expressed in the destination language. (E.g conversion from a shell script to MATLAB isn't expected).