Метка «интерпретаторы»

Только ленивый, точнее, ну очень ленивый не скажет про PHP пару ласковых. Стоит мимолётом покритиковать разработчиков за то, что больше половины попыток исправить ситуацию с фаршированием стандартной библиотеки, несогласованности и отсутствием того, что очень сильно понравилось в *подставить свой любимый язык* только её (ситуацию) ухудшают, а те, что влияют положительно — не доработаны; Конечно же это провокация и ведёт к неизбежному холивару, но давайте постараемся избежать этого. Из довольно продолжительных размышлений на эту тему и родилась одна затея…

Скажите, а ведь вы хотите что-то изменить в языке, поправить? Знакомясь с новыми языками и подходами, лично у меня — эта мысль крепла. Я испробовал довольно много подходов, начиная от попытки написать собственный интерпретатор, не обладая достаточными знаниями — попытка провалилась, заканчивая переписыванием php исходников (не интерпретатора, а самих *.php файлов) — вначале нативный интерпретатор парсит изменённые исходники, затем транслирует в кодсохраняет данные и уже их интерпретирует, но, добившись определённых результатов — и эта попытка была погребена благодаря своему неудобству и «костылеобразности». И, уже почти разочаровавшись в этой затее — мне помог докладчик на DevConf (если не ошибаюсь — Александр NightTiger), сам того не подозревая. Доклад был про аспектно-ориентированное программирование и одной из просьб докладчика, которая и подтолкнула меня на правильный путь, была: «Поднимите руки те, кто знает про php фильтры».Читать полностью »

О компиляторах и интерпретаторах
Если ты всегда мечтал написать свой язык программирования — добро пожаловать. Здесь ты наверняка найдёшь для себя что-нибудь интересное.

GitHub-юзер yawnt собрал чудесную подборку ссылок для любителей драконов, языков и прочих вкусных внутренностей. А знающие камрады в комментариях наверняка поделятся с тобой и другими яствами.

Пишет yawnt следующее:

С каждым днём мне всё интереснее тема компиляторов, интерпретаторов и дизайна языков программирования в целом. И я решил поделиться с народом ссылками на собранные мной материалы (большую часть мне самому ещё предстоит прочитать :<). Надеюсь, кому-нибудь они окажутся полезными.

Я не включил (и не собираюсь) в список ссылки на официальную документацию, т. к. считаю очевидным, что первым делом следует смотреть именно туда ;P.
Читать полностью »

Недавно на хабре появилась неплохая статья про вычисление N-ного числа фибоначи за O(log N) арифметических операций. Разумный вопрос, всплывший в комментариях, был: «зачем это может пригодиться на практике». Само по себе вычисление N-ого числа фибоначи может и не очень интересно, однако подход с матрицами, использованный в статье, на практике может применяться для гораздо более широкого круга задач.

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

loop 1000000000
  loop 1000000000
    loop 1000000000
      a += 1
      b += a
    end
  end
end
end

Незамедлительно выведет a = 1000000000000000000000000000, b = 500000000000000000000000000500000000000000000000000000, несмотря на то, что если бы программа выполнялась наивно, интерпретатору необходимо было бы выполнить октиллион операций.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js