Парсери мови Java

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Парсер Java — програма, що виконує синтаксичний аналіз коду написаного мовою Java.

Головна програма, яка має таку фунціональність — компілятор мови Java javac,[1] який входить до JDK. Javac використовує написаний вручну LALR парсер. Оскільки написаний вручну код складніший для розуміння та змін ніж згенерований із граматики, існує проект створення експериментальної версії javac, яка використовує генератор парсерів Antlr.[2]

NetBeans використовує код javac, модифікований для зручнішого використання в IDE.[3]. У версії NetBeans 6.0 інфраструктура, яка надає доступ до Java коду була повністю переписана, старий код (Java JMI/MDR) було прибрано, написано новий, так званий Retouche APIs.[4]

Eclipse JDT використовує парсер згенерований за допомогою генератора парсерів Jikes.[5] JDT надає об'єктну модель документу (Document Object Model, DOM), аналогічну до добре відомого XML DOM — реалізацію абстрактного синтаксичного дерева — Abstract Syntax Tree (AST).[6][7][8][9] Eclipse має додаток, що відображає AST для Java коду — AST View.[10]. Парсер Eclipse може використовуватися для аналізу та перетворення коду на Java,[11] у тому числі незалежно від середовища Eclipse.[12] Його використано для аналізу змін у початковому коді у проекті ChangeDistiller,[13][14][15][16] а також як фронтенд для GCJ.[17]

Існує проект javaparser, який використовує генератор парсерів javacc.[18]

Примітки[ред. | ред. код]

  1. OpenJDK: The Java programming-language compiler (javac) group. Архів оригіналу за 1 січня 2012. Процитовано 20 квітня 2009.
  2. OpenJDK: Compiler Grammar. Архів оригіналу за 25 лютого 2015. Процитовано 20 квітня 2009.
  3. NetBeans Java parser[недоступне посилання з липня 2019]
  4. NetBeans Java Language Infrastructure Tutorial. Архів оригіналу за 12 березня 2009. Процитовано 20 квітня 2009.
  5. JDT Core/HowTo: Generate the Parser. Архів оригіналу за 7 квітня 2009. Процитовано 20 квітня 2009.
  6. IBM developerworks: Exploring Eclipse's ASTParser. Архів оригіналу за 15 лютого 2009. Процитовано 20 квітня 2009.
  7. Eclipse Corner: Abstract Syntax Tree. Архів оригіналу за 20 лютого 2022. Процитовано 22 березня 2022.
  8. EclipseCon 2005, Java Tool Smithing: Extending the Eclipse Java Development Tools (PDF). Архів оригіналу (PDF) за 11 квітня 2009. Процитовано 20 квітня 2009.
  9. Eclipse 3.4 JDT Plug-in Developer Guide: Manipulating Java code
  10. Eclipse JDT components: org.eclipse.jdt.astview - AST View. Архів оригіналу за 21 квітня 2009. Процитовано 20 квітня 2009.
  11. Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy (2004). The Java developer's guide to Eclipse (вид. 2-ге). Boston: Addison-Wesley. с. 1136. ISBN 0321305027., розділи Analyzing Java source code, Manipulating Java source code
  12. Using JDT ASTParser with external Java files. Архів оригіналу за 25 листопада 2016. Процитовано 10 червня 2017.
  13. ChangeDistiller. Архів оригіналу за 3 серпня 2017. Процитовано 10 червня 2017.
  14. Beat Fluri and Harald C. Gall. Classifying Change Types for Qualifying Change Couplings. In Proceedings of the 14th International Conference on Program Comprehension, pp. 35-45, IEEE Computer Society, 2006. Архів оригіналу за 7 серпня 2020. Процитовано 10 червня 2017.
  15. Beat Fluri, Michael Würsch, Martin Pinzger, and Harald C. Gall. Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction. IEEE Transaction on Software Engineering, 33(11), pp. 725-743, 2007. Архів оригіналу за 10 серпня 2017. Процитовано 10 червня 2017.
  16. Harald C. Gall, Beat Fluri, and Martin Pinzger. Change Analysis with Evolizer and ChangeDistiller. IEEE Software, 26(1), pp. 26-33, 2009. Архів оригіналу за 7 серпня 2020. Процитовано 10 червня 2017.
  17. GCJ using Eclipse compiler. Архів оригіналу за 27 лютого 2014. Процитовано 10 червня 2017.
  18. javaparser: Java 1.5 Parser and AST. Архів оригіналу за 27 лютого 2009. Процитовано 20 квітня 2009.

Література[ред. | ред. код]

  • Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy (2004). The Java developer's guide to Eclipse (вид. 2-ге). Boston: Addison-Wesley. с. 1136. ISBN 0321305027.
  • Bill Campbell, Swami Iyer, Bahar Akbal-Delibaș (2012). Introduction to compiler construction in a Java world. Boca Raton, FL: CRC Press. с. 381. ISBN 1439860882.