Представитель Шуры Люберецкого в ЖЖ (brat_luber) wrote,
Представитель Шуры Люберецкого в ЖЖ
brat_luber

Про пользу от философии

Пару месяцев назад я написал довольно обширный текст о том, что под логическое программирование можно подвести некую “философскую” базу. [info]nicka_startcev, разумеется, меня немного подкалывал – а вот сегодня закономерно впал в некую ересь. Читаем:

Глобальные Правила Игры должны быть расписаны в виде алгоритмов: делай раз, делай два, проверяй три, полученную сумму заноси в такую-то кассу.

Нормальная такая точка зрения для программиста, хорошо знающего только процедурное программирование. То, что записано, как алгоритм – то понятно. Все остальное должно быть в этом виде переписано. В общем, пресловутое “алгоритмическое мышление” в крайней стадии.

Но даже те, кто зверски пихал развитие этого “алгоритмического мышления” в школьную программу, не утверждали, что оно является единственно верным. Например, А. Г. Кушниренко в своих “лекциях” для учителей информатики упоминал (часть D2) о “процедурной, функциональной и логической традиции”. Обычная школьная информатика – процедурная (или “алгоритмическая”), функциональная требует понимания слова “функция“, логическое программирование кажется чем-то “не от мира сего”. А ведь с ним сталкивался любой, кто не прогуливал в школе другой предмет – “Основы государства и права”.

Если кто помнит, то система законодательства в юридической теории – это совокупность правовых норм, состоящих из гипотезы (условий применимости нормы), диспозиции (требуемых действий) и санкции (что будет, если диспозиция не выполнена). Эти части, как учит нас Википедия, являются опциональными – например, в большинстве статей УК нет гипотезы, а присутствует лишь диспозиция и санкция. В нормах Конституции, напротив, отсутствует санкция – зато ее можно почерпнуть из УК (”никто не может быть лишен жизни” и куча статей УК – от “убийства” до “причинения смерти по неосторожности”). Законодательство оказывается типичной “базой знаний” – только изложенной не на Prolog, а на естественном языке.

Такие же базы знаний – это внутренности, например, DLP-систем и вообще – близких к ним “по духу” систем информационной безопасности. Что-то построено на основе регулярных выражений, где-то используются хитрые Domain-Specific Languages – но общая “парадигма программирования” тут оказывается “логической”. Оказывается, что написанные в виде “правовых норм” документы переводятся в машинно-читаемый вид в виде системы неких правил – и это очень близко к “логическому программированию” в его чистом рафинированном виде.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Tags: программирование
Subscribe

Comments for this post were disabled by the author