So then NLP and CBR would be my best choice if I were to make an Artificial General Intelligence, am I correct with that assumption? If so, how can I incorporate a friendly AI base into the core programming? Furthermore, let's say, for example this AI needs to be able to help with content generation for an mmo, how should I go along with doing that? Lastly, this one might sound a bit strange, but this is a hypethetical question, what if the core process or rather the core goal of the AI was to satisfy values through friendship and ponies, where would I put that in the code?
I find most of these questions pretty impossible to answer Just my two cents:
NLP only handles communication. While it typically doesn't enhance other intelligent processes, you'll probably want some NLP to be able to communicate naturally with humans. A pure AGI would theoretically figure all this out on its own, but would first spend a few years being as useful as a newborn baby.
I would put a goal system separate but right next to the main process. Just like an inference engine checks knowledge to see if it is correct, your self-optimisation engine should check its goals to determine whether it's about to do something correct. But my guess is as good as yours.
Nobody knows how to create inherently "friendly" AI, but you could limit its access, make sure you can always press a button to shut it down, and make sure that it never ever examines nor changes the code for these failsafes.
Content generation for mmorpg's? You really want everything, don't you?
As for the programming language: C++ has great power over computer resources, but requires a compiler program to turn code into a functioning exe. Having a program write code and run it through a compiler is a bit tricky. Python is easier than C++, especially if you want internet access, but doesn't offer the same amount of depth. Visual Basic can easily write scripts (they're just textfiles after all) and run them right away, so if I wanted a self-reproducing virus, that's probably the language I'd use.
I will add a warning that any self-reprogramming program can kill or overrun your computer if you don't set any limits to it.