Vesselin Kolev wrote:
A dali mozhe da postnesh primercheto ej-tyj prosto mi e interesno :)Ta ima li software shte ima bygove. Edin prepodavatel v universiteta ni pokazvashe, che mozhe da ima byg i v programa na 2 reda za sybirane na dve chisla:)) Taka, che niama strashno.
uspeh ceci
Проблема с бъговете (изобщо със семантичния анализ на програми) е пряко свързан
с фундаменталните математико-логически резултати за неразрешимост от 30-те години
на миналия век (теореми на Гьодел за непълнота/неразрешимост на аритметиката,
неразрешимост на масови алгоритмични проблеми).
Разбира се, за простите алгоритми може да се прави анализ - примерно на алгоритми за
събиране на 2 числа, или за сортиране на N числа (стига да се определи добре какво е число -
и това не е лесна работа).
Поне за мен най-доброто, което практически е възможно е придържането към UNIX
идеологията от миналото - ползване на малки програми, които си взаимодействат по
прости и добре документирани стандарти. Малките програми също трябва да смятат
прости неща и да са колкото се може по-кратки и добре тествани.
Една народна мъдрост изразява точно същността на проблема (извинявам се за употребата на нецензурна дума):
"Не може хем хуя до края, хем душата в рая !"
На компютърно-математически жаргон това се превежда така:
"Не можем да съдадем сложна софтуерна среда, която да има предсказуемо поведение !"
============================================================== WARNING: Текста по-долу е само за любители на математическата логика !!!
Страшна теорема:
Съществува компютърна програма МП (Магическа Програма), за която не можем да докажем
дали спира или се зацикля, започвайки работа при нулеви стойности на паметта.
------
Взимайки тази Магическа Програма, можем да прибавим към аксиомите, които ползваме една от
следните 2, без да нарушим противоречивостта на теорията:
(1) Програмата МП се зацикля.
(2) Съществува магическо число N, такова че програмата МП спира след N стъпки.
Опитайте се да разсъждавате за магическото число N - то е по-голямо от всички числа,
които можете да си представите !
Ако живеем в свят1 с верна аксиома (1), числото N го няма (не е измежду естествените числа).
Ако живеем в свят2 с верна аксиома (2), числото N си е нормално естествено число и
пускайки програмата МП, тя ще работи N стъпки и ще спре !
Естествените числа в свят1 са по-малко от тези в свят2.
=============== край на опасния текст =========================
--
Skelet
------ http://skelet.hit.bg/
============================================================================ A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers). http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html ============================================================================
