Picat-это новый язык, который только что вышел на версию 1.0. У него есть некоторые интересные функции, но тот факт, что он поддерживает логическое программирование, является самым важным.
Логическое программирование наиболее известно как основа языка программирования Prolog. Пролог был изобретен в начале 1970-х годов, но на самом деле не производил особого впечатления до 1980-х годов. В то время программирование медленно продвигалось от случайного кода спагетти, через первые дни структурированного модульного программирования и в ожидающие руки объектно-ориентированного программирования. Это были примитивные времена, и логическое программирование казалось технологией из космоса. Возможно, это была последняя из больших парадигм программирования, которые были изобретены, хотя вы также можете утверждать, что Пролог просто прояснил идеи, которые уже были вокруг.
Логическое программирование никогда не создавало революцию, которую люди предсказывали для него, и постепенно более широкий интерес угас, оставив энтузиастов и нишевые приложения нести факел. Даже сегодня встреча с Прологом может стать огромным шоком для программистов, которые считают, что функциональный или объектно-ориентированный подходы являются единственно возможными.
Picat — это язык с открытым исходным кодом, который объединяет логическое программирование с подходами, которые вписываются в него или расширяют его-функциональное программирование, динамическое программирование и программирование ограничений. Особенность этого подхода заключается в том, что, в отличие от других подходов к программированию, вы можете записать набор условий, и язык автоматически найдет значения, которые им удовлетворяют. Вы можете использовать этот подход для написания программ для решения проблем планирования, логических проблем, проблем планирования маршрутов и так далее. В основном вы записываете статическое описание проблемы, и языковая система находит решения.
Что действительно удивляет людей, когда они впервые сталкиваются с логическим программированием, так это то, что оно кажется умным и мощным, но не очень универсальным. Тем не менее, это так — и Пролог, и Пикат являются полными по Тьюрингу, что означает, что вы можете написать любую программу, которая может быть написана с их помощью. Конечно, вы не получите преимуществ от решения проблем, если программа на самом деле не использует их, но Picat-это язык общего назначения.
Если вы хотите увидеть, для чего используется Picat, проверьте страницу Picat.
Еще одну интересную иллюстрацию того, насколько полезен этот язык, можно найти в недавней статье, описывающей, как решить проблемы с замятием кода Google с помощью Picat. Это заставляет вас думать, что выбор использования Picat в Коде Jam в этом году может быть настолько большим преимуществом, что его придется запретить. Какие еще рекомендации нужны для нового языка!
О, и я уже говорил, что его зовут Пи и Кэт? Оба почитали математические объекты.