2015-05-11 4 views
12

Имеет ли Джеймс Гослинг написанный код для ключевых слов Java?Как разрабатываются ключевые слова?

Если да,

  • Как я могу просматривать Java ключевые слова код, как мы считаем, исходный код?
  • Есть ли способ создать определяемое пользователем ключевое слово?

Вот что я думаю: Там нет кода ключевого слова Java, компилятор Java содержит список ключевых слов, который помогает компилятору понять код.

Правильно ли это?

+1

Есть интересная статья об управлении потоком в java-байтовом коде - http://www.artima.com/underthehood/flowP.html - может быть интересно, я думаю. – user

+0

Компилятор Java знает ключевые слова Java и что они означают. Только тогда он может преобразовать исходный код Java в байт-код (который снова имеет * ключевые слова *) – TheLostMind

+3

** Голосование для повторного открытия ** Я понятия не имею, почему этот вопрос был закрыт как слишком широкий.OP в основном спрашивает, есть ли какая-либо реализация Java-кода за ключевыми словами, и если вы можете самостоятельно внедрять новые ключевые слова. У каждого вопроса есть ясный ответ, и тот факт, что ОП принял ответ, показывает, что можно было кратко рассмотреть его вопрос. – aioobe

ответ

22

Имеет ли Джеймс Гослинг написанный код для ключевых слов Java?

Да, когда он написал первый компилятор Java, он, вероятно, написал код для обработки компиляции ключевых слов.

Как просмотреть код ключевых слов Java, как мы рассматриваем исходный код?

Там нет «метод Java» за while или if и т.д. Эти языковые примитивы обрабатываются специально компилятором.

Есть ли способ создать пользовательское ключевое слово?

Нет, вы не можете создавать ключевые слова, определенные пользователем. Семантика ключевых слов указана в Спецификации языка Java и обрабатывается специально компилятором.

Нет кода ключевого слова Java. Java-компилятор содержит список ключевых слов, который помогает читателю понять код.

Да. Это в значительной степени.

Источник: Я разработчик JAVAC

+0

«Нет, вы не можете создавать ключевые слова, определенные пользователем». Хотя это утверждение поддерживается JLS, как вы относитесь к тому, как библиотеки могут существовать для __override javac compilation behaviour__ на основе того, как реализация компилятора может быть экспериментально модифицирована (посредством отражения) путем создания обработчика аннотаций? Например: https://github.com/light/JOps – Unihedron

+0

Я бы сказал, что это не выглядит очень портативным или стабильным. Любой программист в здравом уме, вероятно, согласится с тем, что было бы плохой практикой полагаться на такой обработчик аннотации. – aioobe

3

Обычно процесс написания программного обеспечения, способного к превращению языка в чем-то еще делается «компилятор компиляторов» инструментов, указав грамматику, как правило, a BNF бланк используется. Первая пригодная для использования версия языка во многих случаях используется для создания самого компилятора, чтобы доказать эффективность языка. Если вы хотите расширить Java, изменив ключевые слова и добавив разные, вы должны создать новый язык, возможно, начиная с Java Grammar itself.

+3

Общая информация: javac имеет рукописный парсер по соображениям эффективности. – aioobe

Смежные вопросы