I need help with 实现 v.s. 现实 and 罪犯 v.s. 犯罪.
I find it hard to remember the distinction between these pairs which are of the form AB / BA. Can anyone help me grasp the underlying ideas/logic/feeling?
Also, I'd be interested in other similar pairs.
Some of them have a logic, but often you'll need some classical exposure to feel it. Querying a dictionary like MDBG with "罪*", "罪", "犯" and "*犯" will help you feel the pattern.
罪 : N (a crime) 犯 : V (to commit / offend)
V+N gives V (like in 吃饭、喝水、生气、……犯罪), therefore 犯罪 is literally "to commit a crime".
You can find several words in which 犯 as the second character means the person committing a crime:
For this one, I like to remember useful pairs, like 梦想与现实, dream and reality.
Ultimately, I prefer to think of it as a case of V+N vs N+V where 实现 means "to cause to be now" and 现实 means "the current fruit/result":
现 is never a verb in
现X compounds, it's always an adjective (or noun with an adjectival role) having a meaning around the concept of "now" (modern, current etc).
There're no underlying logic on those pairs you've mention. It's just a coincidence that the 2 words can be used in form of AB/BA where both AB and BA is a word. Note that in the examples, AB and BA have different meaning while there are some example that has the same meaning, such as:
油漆 / 漆油 (paint)
色彩 / 彩色 (arguable as 色彩=color while 彩色=color(ful))
I believe there are similar situation in English such as breakout / outbreak or overlay / layover. It'll be easier for you to just forget the AB/BA format and remember them as separate words.
In the case of 犯罪 and 罪犯, note that 犯 often comes up in expressions related to committing some sort of transgression (e.g. 犯法, 犯错误), and that 罪 in isolation can refer to crime (e.g. 罪与罚). Thus, I can interpret 犯罪 as "committing a crime". (Note: I am not sure if on a linguistics-level, this is actually an appropriate interpretation.) I then simply remind myself that 罪犯 is not the correct term if I want to say "commit a crime", and I will not be surprised when I recall that it means "criminal". (In this case, it helps that I recall hearing 某人犯罪 and not 某人罪犯 on the news.)
I am terrible at remembering the difference between 现实 and 实现, and the meaning is close enough (reality v.s. to realise) that I have been lazy about it (since I am more likely to hear either term than to use it personally). If I were to seriously make myself remember which one is the verb, and which the noun, I would probably make myself write out sentences, ideally where the terms appear together (e.g. 实现这个现实). Moreover, I would also rely on the fact that I can remember the phrase 现实世界 ("real world", or more loosely "world of reality", possibly a "contraction" of 现实的世界) without "corrupting" 现实 into 实现.
There is no real "underlying logic" that explains the different meanings that are achieved in cases where characters can be "flipped" or where their order can be reversed. It is best to memorise the terms separately.
In some cases, noting how the character order affects meaning may be useful. (This might take some maturity in or familiarity with Chinese; there's no one-size-fits-all standard to this.) For example, in 开放, the emphasis feels like 开 to me, which fits the meaning of roughly "to open", whereas in 放开, the emphasis is on 放, which fits the meaning of "to let go".
There is a list of some more such character pairs here.