Артём Н. -> [email protected] @ Thu, 05 Jul 2012 21:10:14 +0400:
>> что выполняется закон сохранения импульса. Кстати, законы рассуждений, >> используемые в Прологе, не эквивалентны тем, которым нас учат в школе и >> даже в вузе. АН> В смысле? Там есть что-то новое? :-) Это же обычная "машина вывода", как и АН> логика самая "обычная. "обычная" логика непригодна для машинного вывода. Любая система машинного или человеко-машинного вывода пользуется тем или иным вариантом, а чисто машинного - подмножеством, конструктивной логики, которая, на мой взгляд, много лучше классической, но уж во всяком случае не эквивалентна - она способна доказать меньше утверждений. >> >> >> А вот как соотносится твоя модель, >> >> >> выраженная в нелогических аксиомах, с реальностью - это уже не к >> >> >> Прологу. >> >> АН> Но в точности тоже самое возможно сказать и о других языках. А >> >> АН> тесты нужны именно для того, чтобы проверить соответствие модели и >> >> АН> реальности. Там тоже самое, даже такие же побочные эффекты могут >> >> АН> быть. И программа, на нём написанная не является правильной только >> >> АН> потому, что она написана на Пролог. Просто тестами надо покрывать >> >> АН> факты и правила, а не функции и процедуры или я не прав? >> >> >> >> В выводе - да, прав. Но надо учитывать, что большинство наших тестов >> >> для других языков таки работают внутри модели, а не проверяют ее >> >> соответствие реальности. То есть для прологовской программы не имеют >> >> смысла. Природа тестов для прологовской программы должна быть >> >> существенно иной, нежели привычно. >> АН> Хм... А как тест может работать не внутри модели? Программа - >> АН> модель. Даже, если тест получает данные извне, он всё-равно >> АН> работает в данной модели. >> >> Не обязательно в данной. Это существенно. Скажем, тест, который >> получает сигнал с реального датчика, сует его в программу, получает из >> программы команду на управление реальным железом, выдает ее в железо, и >> потом измеряет угол его поворота, например, другим датчиком, таки >> выходит за пределы той же модели. АН> Ну да. Разве что так. Но причём здесь Пролог? При том, что для него только эти тесты и имеют ценность. Тесты с эмулятором способны отловить только опечатки. Содержательные ошибки - не способны, потому что строятся на той же модели. >> И его работа уже существенно ближе к реальности, чем модель, в которой >> написана программа. АН> Но, кажется, это две стадии тестирования? АН> И нельзя тестированием с реальным датчиком заменить тестирование с АН> "эмулятором". Как раз в эту сторону теоретически можно. Правда, практически может оказаться слишком дорого. Наоборот нельзя. >> АН> Чем тут отличается Пролог от императивного языка, например? Здесь >> АН> я просто вижу те же самые ошибки человека: неверное задание правил >> АН> (неполнота, неточность или ошибочность) и неверное задание фактов. >> АН> Что и должны покрывать тесты. Ведь так? >> Так. А теперь внимание: что значит словосочетание "верное задание >> фактов"? Скорее всего, тестировать соответствие этого задания опять же >> модели не очень практично - дешевле доказать, что оно соответствует. >> Потому что от модели до фактов - это всего лишь перевод с одного языка >> на другой, причем перевод весьма формальный, тут доказательство >> оказывается довольно простым. Интересно проверять соответствие задания >> фактов реальности, считая, что набор фактов - это и есть модель. А это >> уже формулируется не "написать тест", а "построить тест". В железе, >> ага. АН> Но, обычно, не всегда это возможно. Да и чем отличается "железный" АН> генератор (не датчик, а именно генератор состояний датчика) от АН> программного? Если говорить, например, о датчике случайных чисел, то, натурально, случайностью. Железный выдает случайные числа, программный - закономерные, но статистически до той или иной степени похожие на случайные. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

