Проблемы возникают, когда вы говорите, что что-то «совершенно возможно». Функция одного языка часто не переводится напрямую или легко на другой язык; Именно поэтому мы выбираем язык для задачи в первую очередь! Например, преобразование числа Фибоначчи из Java в C тривиально, но для Haskell? Конечно, это все еще выполнимо, но попробуйте конвертировать программу, которая открывает потоки posix и прослушивает несколько портов для разных битов сетевого трафика.
Почти каждый кусок полезного кода в значительной степени опирается на внешние библиотеки, многие из которых не с открытым исходным кодом. Помимо этого, как вы думаете, что должно переводиться в C? Ява даже?
def method( f ):
G = {'a':1}
f(G)
def f( x ):
print( [ (key, value) for (key,value) in x.items() ] )
method(f)
Эта задача по своей сути более сложна, чем кажется, для чего угодно, кроме самого тривиального случая (с языка C на язык C). Переход между статическими и динамически типизированными языками будет трудным, как и все, что зависит от языка.