Re: Несколько вопросов вразброс
05.07.2012 01:19, Artem Chuprina пишет:
> Артём Н. -> debian-russian@lists.debian.org @ Wed, 04 Jul 2012 22:06:17 +0400:
>
> >> АН> Да, кстати, Пролог я не понимаю. :-(
> >>
> >> [...]
> >>
> >> АН> И на практике: будь всё так хорошо, как вы пишите, все бы уже давно
> >> АН> писали на Прологе (по крайней мере, знали бы что это такое). :-)
> >> Ну ведь ты же сам написал, что ты его не понимаешь. Думаешь, ты один
> >> его не понимаешь?
> АН> Если был он был такой хороший, его бы понимали. Потому что, за это
> АН> бы платили. :-) И этому учили. C ничуть не проще, чем Пролог. Он
> АН> просто имеет другую парадигму. "Развёрнутую" на 180. У машины
> АН> вывода есть свои недостатки, ограничения и своя область
> АН> применения. По какой-то совокупности причин, Пролог не нашёл
> АН> широкого применения (хотя к нему интерес то падал, то
> АН> возобновлялся).
> Понятность среднему хомосапиенсу, как и всякое другое качество, не
> бывает бесплатной. И отнюдь не на всех задачах оно важно. Если средний
> хомосапиенс не может понять саму задачу, то понятность ему инструмента
> для ее решения ценности не имеет.
Хм... И про какие задачи, которые выше понимания среднего, идёт речь? Т.е. где
сейчас реально используются Пролог системы?
> >> Потому что правила
> >> рассуждений с этими законами правильны настолько, насколько правильна
> >> математика (если ты знаешь, что именно формулируется в теореме Геделя,
> >> то ты понимаешь это условие).
> АН> Думаю, что частично понимаю.
> АН> Пролог - аксиоматическая система.
> АН> И, следовательно, любая система, построенная в нём, - такая же.
> АН> Т.е., если "И" - аксиома Пролог, которая задаёт истинность А и Б, при истинности
> АН> и А, и Б, все аксиомы, заданные на её основе будут истинны в границах данной
> АН> системы.
> АН> Доказательство истинности этой аксиомы и непротиворечивости правил её
> АН> взаимодействия с остальными относятся к доказательству истинности и
> АН> непротиворечивости Булевой алгебры.
> АН> В данном случае, математика правильна априори.
> АН> Так?
> Последнее предложение неверно. Скажем так, мы верим, что математика
> правильна (в том смысле, что доказанный в ней результат о некоторой
> модели можно в рамках ограничения этой модели применить к реальности).
> Гедель нам доказал, что ни на что, кроме веры, мы не можем тут
> положиться даже на предмет ее внутренней непротиворечивости, не говоря
> уж о применениях к реальности.
Я понимаю, что Гедель показал это для формальной системы, которой является
математика.
Но, если используется Пролог, то решается практическая задача. В таком случае,
математика используется потому, что она работает. Т.е. предполагается, что она
верна? Это аксиома. :-)
> >> А вот как соотносится твоя модель,
> >> выраженная в нелогических аксиомах, с реальностью - это уже не к
> >> Прологу.
> АН> Но в точности тоже самое возможно сказать и о других языках. А
> АН> тесты нужны именно для того, чтобы проверить соответствие модели и
> АН> реальности. Там тоже самое, даже такие же побочные эффекты могут
> АН> быть. И программа, на нём написанная не является правильной только
> АН> потому, что она написана на Пролог. Просто тестами надо покрывать
> АН> факты и правила, а не функции и процедуры или я не прав?
>
> В выводе - да, прав. Но надо учитывать, что большинство наших тестов
> для других языков таки работают внутри модели, а не проверяют ее
> соответствие реальности. То есть для прологовской программы не имеют
> смысла. Природа тестов для прологовской программы должна быть
> существенно иной, нежели привычно.
Хм... А как тест может работать не внутри модели? Программа - модель. Даже, если
тест получает данные извне, он всё-равно работает в данной модели.
Чем тут отличается Пролог от императивного языка, например?
Здесь я просто вижу те же самые ошибки человека: неверное задание правил
(неполнота, неточность или ошибочность) и неверное задание фактов.
Что и должны покрывать тесты.
Ведь так?
> ООП лучше, чем ничего, для решения задачи, в постановке которой
> структура отлавливается, но плохо. Как только структура отлавливается
> лучше - можно найти что-то лучшее, чем ООП. Вон в базах данных
> реляционная модель напрочь задавила всех предшественников, кроме
> нескольких нишевых мест, где другие модели оказались откровенно лучше.
> Потому что концепция отношения, когда ее удалось выделить на задачах
> обработки табличных данных, оказалась более специфической, а потому
> более полезной. Остатки, т.е. задачи, на которых она была хуже, в своих
> нишах сохранились - электронные таблицы, хэши и кое-как разномастные
> деревья.
Хм... Т.е., она так популярна именно потому, что специфична для задачи -
хранения данных (в большинстве случаев)?
Любопытно: а для написания кода возможно выделить такую же специфическую концепцию?
Reply to: