Pico Compiler — это легкая автономная среда разработки для написания программ на Java. Он предназначен в первую очередь для студентов, обеспечивая простой интерфейс и возможность интерактивно оценивать исходный код Java.
Основная цель разработки заключалась в том, чтобы сделать компилятор небольшим и простым, но при этом предоставить компилятор, совместимый с Java.
Реализованы следующие элементы языка программирования Java:
• пакеты, импорт • классы, интерфейсы • Наследование • Статические члены • Классы, инициализаторы экземпляров • Объявления полей, методов • Объявление локальных переменных • if... else, for, while, do... while, try... catch... finally, throw, return, break, continue, switch, синхронизированные операторы • Все типы примитивов • Доступ к члену суперкласса • это (ссылка на текущий экземпляр) • Вызов конструктора суперкласса (super(a, b, c);) • Вызов метода • Создание экземпляра класса (новый Abc()) • Создание примитивного массива (новый int[10][5][]) • Создание массива классов или интерфейсов (новый Abc[10][5][]) • Доступ к массиву (args[0]) • Доступ к локальным переменным • нулевой литерал • Унарное числовое преобразование • Область блока, область метода, область класса, глобальная область • пункт бросает • Инициализатор массива (String[] a = { "x", "y", "z" }) • Примитивные литералы классов (int.class) • Непримитивные литералы классов (String.class) • Проверка доступности (ПУБЛИЧНАЯ, ЗАЩИЩЕННАЯ, ЧАСТНАЯ) • Автоупаковка и распаковка • Методы переменной арности (так называемые "varargs").
Ограничения:
• Компилятор не может открывать внешние проекты или банки. • Компилятор может обрабатывать только один файл за раз (без многофайловых проектов). • Аргументы типа (универсальные типы) анализируются, но в остальном игнорируются. • Объявление параметризованных типов • Типобезопасные перечисления • Объявления аннотаций