Для создания компьютерных программ используют разные модели программирования. В статье рассказываем о логическом программировании — что это такое, где применяется и какой язык необходим для этой модели. Логическое программирование — одна из возможных парадигм программирования. Она основывается на математической логике: программы задаются в форме логических утверждений и правил вывода. На основании заданных фактов формируются новые. Это упрощенная версия функционального программирования для математиков и лингвистов, которые обрабатывают символьную информацию...
Сегодня мой друг Стефан, который занимался разработкой компиляторов в университете (у меня такого курса не было), сказал такую вещь: "Шаблоны в С++ по своей выразительности срисованы с Пролога". И я прозрел. Я хорошо понимал Пролог в институте, но связать с шаблонами не мог. Оказалось что они очень и очень похожи. И для того, чтобы показать это, мы сейчас напишем сортировку в compile-time. Основной языка Пролог является механизм сопоставления с шаблоном (pattern matching), поэтому сортировка Хоара...