Твердження (програмування)
Матеріал з Вікіпедії — вільної енциклопедії.
|
Тве́рдження (англ. Assertion), в програмуванні — висловлювання на мові програмування в якому робиться припущення щодо властивостей змінних або стану програми. Це висловлювання формулюється в такому вигляді, що припускається його значення істина. Більшість мов програмування використовують твердження для перевірки таких припущень, однак, інші використовують їх для документування проектних рішень. У разі, якщо твердження не виконується, це може вказувати на наявність помилки в програмі.
[ред.] Рекомендоване застосування
[ред.] Твердження та перевірка помилок
Важливо розрізняти помилки алгоритмів програми та помилки, які виникають під час виконання програми:
- Помилка програми є дефектом, має ніколи не виникати.
- Помилка часу виконання програми, цілком імовірно може виникнути будь-коли під час роботи програми.
Твердження не є способом обробки помилок часу виконання. Наприклад, застосування тверджень для обробки введених користувачем даних є прикладом поганої розробки.
Твердження можуть використовуватись для перевірки того, що припущення, зроблене програмістом, залишається вірним і під час роботи програми. Приклад такого застосування наведено в наступному тексті програми на мові Java:
int total = countNumberOfUsers(); if (total % 2 == 0) { // total парне } else { // total не парне assert(total % 2 == 1); }
В мові програмування Java, «%» є оператором обчислення залишку від ділення (а не модуля) — у випадку, якщо перший його операнд від'ємний, результат також може бути від'ємним. В цьому прикладі, програміст зробив припущення, що кількість користувачів завжди не від'ємна, і залишок від ділення на 2 завжди дорівнюватиме 0 або 1. Твердження робить це припущення явним — якщо метод countNumberOfUsers поверне від'ємне число, це свідчитиме про дефект програми.
Іноді, твердження ставлять в ті частини коду, які вважаються недосяжними. Наприклад, твердження можуть ставитись в частину default вислову switch в програмах на мовах C, C++, та Java. Про випадки, які програміст навмисно залишив не обробленими, буде одразу повідомлено.
Основною перевагою такого підходу є те, що у випадку, коли помилка таки дійсно виникає, вона виявляється одразу ж, замість того, аби виплисти згодом у геть іншій ділянці коду. Через те, що повідомлення про хибність твердження містить вказівку на місце в коді програми, воно може значно полегшити пошук дефектів без відладки всієї програми.
[ред.] Джерела інформації
- Assertion (computing) — стаття в англомовній вікіпедії.
- How to use assertions in C
[ред.] Дивіться також
[ред.] Ресурси інтернет
- Assertions in Java 5.0(англ.)
- Python Reference Manual: 6.2 Assert statements(англ.)