Кажется, вы смешиваете несколько концепций.Прежде всего, вы должны понимать, что модуль выполнения (your_program.exe) не имеет ничего общего с языком программирования.Модуль исполнения (исполняемый) состоит из так называемых машинных кодов.Только машинные коды могут быть выполнены процессором.
Концепция языка программирования - это средство для удобного перевода человеческих идей в машинные коды.Фактическая работа по переводу выполняется с помощью цепочки инструментов, которая состоит из нескольких инструментов, основными из которых являются компилятор и компоновщик.Компилятор создает модули машинного кода для каждого модуля языка программирования (например, файл * .cpp для C ++).Затем компоновщик берет все модули машинного кода из вывода компилятора и создает из них исполняемый файл.
Имея это в виду, вы можете легко понять, что код Symbian C ++, Qt или любых других языков / диалектов сначала обрабатывается инструментом-цепь, и вывод в машинных кодах, которые одинаковы для разных языков программирования.Конечно, это возможно на любой ОС, не только на Symbian.
Java - это немного другая история.Код J2ME не переводится напрямую в машинные коды.Вместо этого Java-код переводится в своего рода промежуточную вещь между машинными кодами и кодом языка программирования, поэтому он может выполняться в виртуальной машине Java на процессорах различной архитектуры.Но суть та же: перевод читаемого человеком кода языка программирования во что-то, что может быть выполнено машиной.
Надеюсь, это поможет.Не стесняйтесь спрашивать больше, если что-то неясно.