Интерпретатор выражений за 10 минут

Сегодняшняя статья будет посвящена интерпретаторам выражений. Примерно год назад я уже поднимал эту тему в статье Интерпретатор выражений за 15 минут. Сегодня я расскажу о способе разбора лексем, который позволит нам сэкономить немного времени. Этот способ, я думаю, можно считать позаимствованным у утилиты lex, поскольку описание лексем задаются аналогичным способом. Оговорюсь сразу, что этот способ не претендует на оптимальность и высокое быстродействие. ... читать далее

EasyConfig - eще один формат конфигурации в PHP

Форматов хранения данных уже очень много, но, я думаю, еще один не будет лишним. Без лишних предисловий перейду к его описанию.

Этот формат очень простой, но он позволяет описать практически любые массивы, которые можно создать в PHP (объекты и функции в качестве значений не в счет). Он содержит минимум разметки, удобочитаем, данные можно легко править вручную. ... читать далее

За кулисами сайта

Решил написать ещё кое-что о своем блоге. В одно время мне понадобился бложный движок, который уверенно чувствовал бы себя на слабом хостинге и данные которого можно было бы легко переносить с сервера на сервер. Тогда родилась идея Nimble. Простой и быстрый движок, не использующий базу данных. К слову, он сейчас перед вами. ... читать далее

Интерпретатор выражений за 15 минут

Насколько сложно написать свой интерпретатор языка? Как оказалось это довольно простая задача, особенно, если описание языка уже составлено. И сейчас вы в этом убедитесь. Интерпретатор для Just Do It! я написал, примерно, за два часа, причем час этого времени я потратил на то, чтобы вспомнить, как реализуется метод рекурсивного спуска. ... читать далее

Арифметика простая и не очень

Недавно появилась идея написать что-нибудь для облегчения создания форм рассчетов на сайтах. Подобные задачи, казалось бы, возникают часто, а готовых решений не так уж много. Погуглив, нашёл SlikCalc, но он показался мне немного неудобным в использовании и ограниченным в возможностях. Другие находки были куда менее функциональны, хотя, если признаться, поиск аналогов был недолгим.

Идея реализации уже была готова и показалась мне более удачной, чем найденные в интернете, поэтому я решил не откладывать дело в долгий ящик и приступил непосредственно к программированию. Результат не заставил долго себя ждать, буквально через пару часов все было готово. Для этого дела я создал ветку на блоге, кому интересно может её посетить.

Python: первый опыт

Впервые об этом языке я услышал еще на втором или третьем курсе своего обучения в ВУЗе от одного из одногруппников, который очень яро его расхваливал. Тогда, будучи фанатом Си, я отнёсся к нему скептически (требование интерпретатора, «странный» метод выделения структуры — табуляция, — все это казалось происками Сатаны). ... читать далее