Классика баз данных - статьи

       

Другим примером может служить то,


Другим примером может служить то, что в последнее время разрабатываются новые декларативные языки, часто основывающиеся на Datalog, для разных проблемно-ориентированных систем в различных областях: сетевых и распределенных систем, компьютерных игр, машинного обучения и робототехники, компиляторов, протоколов безопасности и извлечения информации. Во многих из этих сценариев использование декларативного языка позволяет на порядки величин сократить объем кода, одновременно обеспечивая его распределенное или параллельное исполнение. Как не странно, группы, выполняющие эти работы, очень мало скоординированы – движение за возрождение декларативных языков в этих новых контекстах возникло стихийным образом.

Насчет возрождения Datalog у меня сейчас нет информации. Известна тяга молодежи к функциональному программированию, а увлечения логическим программированием, по крайней мере, в России пока я не наблюдаю.

Третий пример происходит из области программирования корпоративных приложений. В недавно появившихся языковых расширениях, таких как Ruby on Rails

и LINQ, поддерживается логика запросов в паттернах конструирования программ. Но в этих пакетах пока серьезно не решается проблема программирования с использованием нескольких машин. Для корпоративных приложений ключевым решением распределенной разработки является разделение логики приложения и данных между несколькими «звеньями» («tier»): Web-клиентами, Web-серверами, серверами приложений и серверной СУБД. Особо ценной здесь является независимость данных, позволяющая создавать программы без предварительного принятия долговременных решений о физическом размещении программ и данных в разных звеньях. Такие решения могли бы приниматься в автоматических процессах оптимизации и перемещения данных и программ для достижения должной эффективности и корректности. Одним из существующих языков является XQuery, который может способствовать этому виду декларативного программирования, в частности, потому, что XML часто используется в протоколах, охватывающих несколько звеньев.


Содержание  Назад  Вперед