Сувора типізація - це

обов'язкові умови

Сувора типізація має на увазі виконання наступних обов'язкових умов:

  1. Будь-який об'єкт даних (змінна, константа, вираз) в мові завжди має строго певний тип. який фіксується на момент компіляції програми (статична типізація) або визначається під час виконання (динамічна типізація).
  2. Допускається присвоювання змінної тільки значення, що має строго той же тип даних, що і змінна, ті ж обмеження діють щодо передачі параметрів і повернення результатів функцій.
  3. Кожна операція вимагає параметрів строго певних типів.
  4. Неявне перетворення типів не допускається (тобто транслятор сприймає будь-яку спробу використовувати значення не ту типу, який був описаний для змінної, параметра, функції або операції, як синтаксичну помилку).

При точному проходженні вимогам суворої типізації навіть однакові за складом значень і допустимим операціями типи даних є несумісними. Якщо в програмі необхідно присвоїти значення одного типу даних змінної іншого типу, це можна зробити, але тільки шляхом явного застосування спеціальної операції перетворення типу, яка в таких випадках зазвичай є частиною мови програмування (хоча може формально і не бути нею, а надаватися стандартними бібліотеками) .

Типізація в мовах програмування

Прикладами мов програмування з суворою статичної типізацією є такі мови, як Ада. або Java. Так, зокрема, в специфікації на мову Java 7 сказано, що мова Java є строго універсальна мова [1]. Досить велике число поширених мов програмування використовують нестрогую статичну типізацію. До таких мов відносяться, наприклад Pascal. Модула-2. Fortran. У них обов'язково опис типів змінних, параметрів і функцій, але допускається неявне приведення типів - в разі, якщо значення одного типу присвоюється змінної іншого, то компілятор автоматично генерує код для перетворення значення в потрібний тип, якщо тільки таке перетворення не призводить до втрати даних. Так, наприклад, ціле число можна привласнювати змінної, оголошеної як число з плаваючою точкою, а зворотне присвоювання без явного приведення типів заборонено, оскільки з високою ймовірністю призведе до помилки.

В теорії програмування сувора типізація є неодмінним елементом забезпечення надійності розроблюваних програмних засобів. При правильному застосуванні (подразумевающем, що в програмі оголошуються і використовуються окремі типи даних для логічно несумісних значень) вона захищає програміста від простих, але труднообнаружіваемих помилок, пов'язаних зі спільним використанням логічно несумісних значень, що виникають іноді просто через елементарну помилки.

Подібні помилки виявляються ще на етапі компіляції програми, тоді як при можливості неявного приведення практично будь-яких типів один до одного (як, наприклад, в класичному мовою Сі) ці помилки виявляються тільки при тестуванні, причому не всі і не відразу.

Python є одним із прикладів мови з суворою динамічною типізацією [2].

Дивитися що таке "Сувора типізація" в інших словниках:

Типізації - Тип даних фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень, і, можливо, спосіб реалізації зберігання значень і виконання операцій. Будь-які ... ... Вікіпедія

Висновок типів - типізації Тіпобезопасность Висновок типів Динамічна типізація Статична типізація Сувора типізація М'яка типізація Зовсім типи Качина типізація висновок типу (англ. Type inference) в програмуванні можливість компілятора ... ... Вікіпедія

Залежний тип - типізації Тіпобезопасность Висновок типів Динамічна типізація Статична типізація Сувора типізація М'яка типізація Зовсім типи Качина типізація залежний тип, в інформатиці та логіці тип, який залежить від значення. Зовсім ... ... Вікіпедія

Тип даних - (зустрічається також термін вид даних) фундаментальне поняття теорії програмування. Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень і, можливо, спосіб реалізації зберігання значень і ... ... Вікіпедія

Схожі статті