The shell might be the least neccessary to mechanically port as it could be easily implemented in the target language and probably doesn't change that much.
The core is where the real compatibility issues lie and where it makes the most sense to translate, as well as where the core vulnerabilities that can be remotely exploited lie.