0 / 0 / 0
Регистрация: 15.07.2018
Сообщений: 4

Реализация компилятора javac

15.07.2018, 18:55. Показов 1863. Ответов 10

Студворк — интернет-сервис помощи студентам
Всем привет, пока только на старте изучения Java и сформировался вопрос:

сам язык (синтаксис) в виде инструкций компилируется компилятором javac в байт-код,
затем уже на стороне пользователя данный файл с байт-кодом транслируется в нативный код при помощи JVM.

Сама JVM написана под разные платформы, чтобы компилировалась прога под все ОС. Но вот что насчет самого компилятора javac. Он тоже написан под все платформы, чтобы программы можно было написать на любой ОС или все же он один для всех платформ. Если первый вариант, то прошу объяснить как именно это работает, так как не понимаю, зачем его (javac) писать под разные платформы, ведь он берет код, написанный разработчиком и преобразует его в промежуточный код, совсем не зависящий от конкретной ОС. Мне кажется, что логично, если он один для всех ОС. Но было услышано другое мнение и с этим человеком логично согласиться, так как знает - то он лучше, но спросить у него не получилось, так как вопрос мне кажется глупым и я скорее всего туплю очень. Прошу помощи, разъясните.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2018, 18:55
Ответы с готовыми решениями:

Не работает опция -sourcepath компилятора javac
Эта опция, как я понимаю, должна указывать компилятору путь, где искать *.java- сырцы >javac Usage: javac <options>...

Почему эталонная реализация Python не включает в себе JIT-компилятора?
Python существует много лет, но официальная до сих пор не содержит JIT-компилятор. Да есть PyPy, но это не "официально".

Ошибка компилятора fatal error C1091: ограничение компилятора: длина строки превышает 65535 байт
Компилируя программу вот такой командой: cl /O2 /Oi /GL /EHsc /MD /Gy main.cpp И компилятор выдает вот такую ошибку: ...

10
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.07.2018, 21:23
а какая, собственно, разница?
0
0 / 0 / 0
Регистрация: 15.07.2018
Сообщений: 4
16.07.2018, 00:14  [ТС]
xoraxax, ну вот есть один javac и его могут скачать любой пользователь любой ОС, или же есть javac под Windows для пользователей винды, javac под Linux, под Mac OS. Как правильно?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.07.2018, 06:58
SertaUi, ты же в курсе, что в разных ос разный формат исполняемых файлов?
Ну и, опять же, какая разница-то? Вопрос вообще непрактичный. Займись чем-нибудь полезным лучше.
0
0 / 0 / 0
Регистрация: 15.07.2018
Сообщений: 4
16.07.2018, 16:51  [ТС]
мдаа...
0
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
17.07.2018, 11:30
Есть несколько javac для каждой платформы, так как javac это обычная программа которая состоит из ноликов и единичек и для разных операционных систем эти нолики и единички внутри самой программы javac будут отличны (в другом порядке). Я думаю лучше с ассемблера начать изучение)))
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
17.07.2018, 15:12
Лучший ответ Сообщение было отмечено turbanoff как решение

Решение

Сама логика javac написана на java. Единая на все платформы.
А вот launcher (тонкая обёрта, которая загружает jvm.dll/jvm.so) и запускает эту логику - он для каждый платформы свой.

Вот java исходники javac-а если кому интересно - http://hg.openjdk.java.net/jdk... ools/javac
4
0 / 0 / 0
Регистрация: 15.07.2018
Сообщений: 4
17.07.2018, 21:22  [ТС]
turbanoff, спасибо! хоть кто-то разбирается в том, что пишет)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
17.07.2018, 22:01
SertaUi, расскажи заодно, что ты будешь с этим бесценным знанием делать.
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2773 / 491
Регистрация: 28.04.2012
Сообщений: 8,754
17.07.2018, 23:10
Цитата Сообщение от xoraxax Посмотреть сообщение
расскажи заодно, что ты будешь с этим бесценным знанием делать.

Не по теме:

будет бесценно знать =)

0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,461
18.07.2018, 08:32
Цитата Сообщение от xoraxax Посмотреть сообщение
знанием делать

Не по теме:

а что ты делаешь со знанием о том, земля имеет форму эллипсоида вращения?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2018, 08:32
Помогаю со студенческими работами здесь

javac
Хочу скомпилировать код с помощью утилиты javac. class Main { public static void main(String args) { ...

Javac
Драсте всем! Вот поролелно с руби учу джаву. И вот тебе привет на первом же упражнении провалился!!!! jdk - установлен...

Не работает javac
Ребят, тут такая лажа, javac отказывается компилировать. Что делать? Пробовал и javac и javac.exe. П.с. открывал PowerShell в нужной папке...

Ошибка в javac
import java.util.Scanner; class Lab_3 { public static void main(String args) { Scanner in = new Scanner(System.in); ...

Компилятор javac
хочу научитсья программировать на java ,скачала jd4 6u24 ,написала маленькую пробную программу (текст написала в wordpad-е сохранила под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru