Реклама

Оптимизация в языках программирования


Продолжая тему создания своего языка программирования, я решил рассказать об оптимизации.

С последнего 14-го урока в предыдущей серии, язык OwnLang заметно улучшился, поэтому для начала я предлагаю ознакомиться с изменениями.


Все оптимизации делаются после парсинга, в момент, когда у нас уже сформировано дерево AST. Дальше нам поможет Visitor, с его помощью удобно обходить дерево и заменять узлы.
OptimizationVisitor - базовый класс, который может заменить один узел (Statement или Expression) на другой,
Продолжить

Рейтинг:  6  (Против: 0 | За: 6)
Добавил: aNNiMON

Комментарии (3)

Создание плагина для NetBeans IDE


В конце мая попросили записать видеоуроки по созданию NetBeans плагина для своего языка программирования. Выполняю эту просьбу :)
Немного изменил подход к записи уроков, теперь они более компактные, к тому же содержат субтитры. Но время на создание одного урока увеличилось, так что новые видео будут появляться примерно раз в неделю.

Репозиторий проекта: https://github.com/annimon-tutorials/NetBeans-Plugin-Tutorial
Плейлист на YouTube: https://www.youtube.com/playli...Zk5-A3o96P6umMCYFieV

#1. Установка среды
#2. Регистрация типа файла
[spoiler=#3.
Продолжить

Рейтинг:  7  (Против: 0 | За: 7)
Добавил: aNNiMON

Комментарии (6)

Обобщения в Java (Java Generics)



Дженерики появились в Java 1.5 и призваны обезопасить код от неправильной типизации. Параметризируя класс, интерфейс или метод, можно добиться гибкости в переиспользовании алгоритмов, строгой проверки типов и упростить написание кода.

Без использования дженериков в код может пробраться ошибка типов:
  1. List list = new ArrayList();
  2. list.add("1");
  3. list.add("2");
  4. list.add(3);
  5.  
  6. String v1 = (String) list.get(0);
  7. String v2 = (String) list.get(1);
  8. String v3 = (String) list.get(2);

Здесь мы случайно добавили в список число 3, а затем берём из списка строки. Код скомпилируется, но вот при запуске будет выдан ClassCastException на последней строке.

Перепишем с использованием дженериков:
  1. List<String>

Продолжить

Рейтинг:  9  (Против: 0 | За: 9)
Добавил: aNNiMON

Комментарии (15)
Всего: 38
<< 1 2 3 4 ... 8 >>

Мы в соцсетях

vk tw tg yt

Пожертвования

Аноним2850 р.
Freddy1700 р.
riseremi1611 р.
NaruTrey800 р.
vlavolk637 р.