LXF138:DrBrown1
|
|
|
Мы языки-малютки
- «Языки-малютки» – те, что «заточены» под конкретную задачу. В Linux таких полно.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Linux поддерживает массу языков программирования общего назначения: C, C++, Java, Perl, PHP, Python и многие другие. Они – не «малютки», хотя я подозреваю, что некоторые из них начинали именно в этом качестве. Языки-малютки жестко настроены на определенную цель. Обычно это интерпретируемые языки с усеченным синтаксисом.
Два классических, и старейших, языка-малютки – bc и dc. Оба они – «языки числовых расчетов с произвольной точностью», и различаются тем, что в bc используется «инфиксная» нотация – можно, например, задать такое выражение:
2 + 2
dc, напротив, применяет стек и польскую инверсную запись. Чтобы сложить два и два и вывести ответ, нужно набрать
2 2 + p
А как насчет Sed, потокового редактора? Он ведь служит только для выполнения автоматических замен в текстовых файлах, да? Ну, на самом деле нет. Познакомившись с пространством для хранения, шаблонами и освоив еще пару команд, кроме s, вы откроете для себя новый мир. Программы Sed отчасти похожи на программы на Awk.
Есть штуки, до гордого звания языка не дотягивающие – например, регулярные выражения. Их синтаксис весьма богат, это правда, но существует формальный «критерий полноты по Тьюрингу», на основании которого устанавливается принадлежность к семье языков программирования. При всех своих достоинствах и недостатках регулярные выражения не отвечают этому критерию. С другой стороны, некоторые языки чересчур велики, чтобы считать их малютками. Так, Awk предназначался для решения узкого класса задач, и его можно было бы отнести к мини-языкам, но более поздние версии вроде Gawk расширили его границы.
Еще из маленьких языков на ум приходят Tcl (язык быстрого создания прототипов и написания тестов) и такие утилиты, как Lex и Bison, которые помогают в написании лексических и синтаксических анализаторов, но по сути являются мини-языками.
Языки файлов настройки
Обычно мы не считаем файлы в /etc программами, но некоторые приближаются к ним. Вспомните о файлах настройки для PAM или Upstart или о синтаксисе команды Iptables. Везде встречаются проверки условий, позволяющие управлять логическим потоком. Многие другие, такие как конфигурационные файлы Postfix, файлы makefile и даже файл sudoers, поддерживают использование переменных. Наконец, есть ужасный конфигурационный файл Sendmail, который к тому же и чрезмерно запутан. Долго ли кому-то доказать, что тот или иной из этих файлов отвечает критерию Тьюринга?