Из вашей статьи это трудно понять. Чем тогда проверка синтаксиса и переводчик не фильтры? Какая тут разница? Вы хоть пример один допишите. Интерпретатор команд — это, например, так? echo "print 'hello'"|perl
Интересно, что здесь основная программа, а что плагин? :-)
Я в юности лет десять назад писал под DOS девелоперский текстовый редактор (к сожалению, проект загнулся, и сорцы утеряны), который, в частности, мог запускать компилятор и разбирать его выхлоп, позиционируясь на ошибки. Только у всех компиляторов выхлоп в разном формате, а хотелось дать возможность юзеру добавлять произвольные компиляторы. Проблема решалась именно так: к любому компилятору пишется «плагин», который перепарсивает вывод компилятора, выдавая в фиксированном виде, понятном собственно редактору. Дальше в настройках редактора регистрируешь новый компилятор и «плагин» на определённые расширения файлов. Хочешь добавить новый компилятор? Пиши парсер за десять минут и подключай.
Тогда мне это казалось красивым решением, но не было никаких иллюзий, что я изобрёл что-то новое :-)
Почитайте, как управляют Spirit и Opportunity. Ничего, справляются. За много лет никто не упал в обрыв. Один застрял потом, но результат неплохой, учитывая, что расчёт был на три месяца работы, а проработали больше пяти лет.
Формальное доказательство того, что Перл невозможно распарсить (задача парсинга Перла сводится к задаче остановки). Код в примере, действительно, невозможно корректно разукрасить:
whatever / 25 ; # / ; die "this dies!";
Если функция whatever принимает аргумент, он получит результат match-оператора / 25; # /, применённый к $_, после чего случится die. Если функция whatever не принимает аргумент, результат её выполнения будет разделен на 25, а die будет закомментирован.
Спасибо :-) Мораль ещё такая: пользоваться редакторами с адекватной подсветкой синтаксиса.
Проверил в Far'овском колорере и в Absolute Perl'е. Оба подсвечивают, к сожалению, неадекватно, но оба выводят достаточно визуальных матюгов, чтобы заподозрить что-то неладное :-) Кто найдёт редактор или онлайн-хайлайтер, который адекватно раскрасит эту строку? :-)
РосНаноТех должен наладить производство и выпуск нанокукушек, чтобы удовлетворить мировой спрос и повысить конкурентоспособность нашей страны в этой области.
Разумеется, они отмеряют время в своей системе отсчёта, тут как раз никакой проблемы нет. Да, с такими часами прикольно проверять ОТО и СТО: если ты сходишь с ними в горы, а потом сравнишь с теми, что оставил дома, то увидишь, что время различается. Но это не значит, что одни часы ходят правильно, а другие нет: каждые ходят правильно, просто в своих системах отсчёта.
Осваивать морское дно на порядки дешевле, чем осваивать космос. И тоже романтика нехилая: прозрачные тоннельчики с поездами, проносящимися мимо акул. Под водой 2/3 земной поверхности простаивает!
Сейчас технологии развиты достаточно сильно, что можно многое сделать на Марсе без присутствия реальных людей. Это кажется значительно более рациональным, пусть и не так романтично. Марсоходы вон довольно неплохие результаты показали. Думаю, начинать нужно с отправки многофункциональных роботов и организации на месте базы исключительно их силами. Экономия ещё сильнее, так как не нужны системы жизнеобеспечения в кораблях, можно посадочку пожёстче организовать и так далее. Плюс роботы надёжнее, люди могут тупо умереть от какой-нибудь ерунды, и привет. Роботы должны сделать базу (собрать из кусков, которые отправятся с ними), пригодную для людей, и при этом должны вести общую научно-исследовательскую деятельность, чтобы был сиюминутный результат. Роботы же должны организовать жизнеобеспечение, оранжереи там с помидорами и прочее (тоже немало исследовательского потенциала). Когда будет готовая база с системами долговременного жизнеобеспечения, тогда можно будет и людей засылать. Тогда оно поди и дешевле будет.
А про бейдж как называлась? Не эта?
habrahabr.ru/blogs/announcements/83616/
echo "print 'hello'"|perl
Интересно, что здесь основная программа, а что плагин? :-)
Хочешь досадить хабражителю? Заведи свой блог и копипасти его посты задним числом :-)
Тогда мне это казалось красивым решением, но не было никаких иллюзий, что я изобрёл что-то новое :-)
У многих скриптовых языков весьма строгий и понятный синтаксис :-)
whatever / 25 ; # / ; die "this dies!";
Если функция whatever принимает аргумент, он получит результат match-оператора / 25; # /, применённый к $_, после чего случится die. Если функция whatever не принимает аргумент, результат её выполнения будет разделен на 25, а die будет закомментирован.
Проверил в Far'овском колорере и в Absolute Perl'е. Оба подсвечивают, к сожалению, неадекватно, но оба выводят достаточно визуальных матюгов, чтобы заподозрить что-то неладное :-) Кто найдёт редактор или онлайн-хайлайтер, который адекватно раскрасит эту строку? :-)
Absolute Perl:
Far: