Логическое программирование

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

Основные языки логического программирования

Наиболее известным языком логического программирования является Prolog. Его наиболее известные реализации для платформы .NET - это Prolog.NET и P#. Оба языка позволяют компилировать Пролог-программу в множество .NET-классов на C#, а P# содержит также диалоговый интерпретатор. Тем, кто хочет разобраться во внутреннем устройстве Пролог-системы, будет интересен проект C#Prolog, реализация Пролог-интерпретатора на C#.

Вот как реализуется на Прологе вычисление факториала:
        fact(1,1).
        fact(N,F) :- N>1, N1 is N-1, fact(N1,F1), F is F1*N.
        ?- fact(4,X).
        X=120

Среди современных языков логического программирования также следует упомянуть Mercury, разрабатываемый университетом Мельбурна. Это язык со строгой типизацией и мощными средствами проверки корректности программ.