Сувора типізація definition of сувора типізація and synonyms of сувора типізація (russian)

Arabic Bulgarian Chinese Croatian Czech Danish Dutch English Estonian Finnish French German Greek Hebrew Hindi Hungarian Icelandic Indonesian Italian Japanese Korean Latvian Lithuanian Malagasy Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Vietnamese

Arabic Bulgarian Chinese Croatian Czech Danish Dutch English Estonian Finnish French German Greek Hebrew Hindi Hungarian Icelandic Indonesian Italian Japanese Korean Latvian Lithuanian Malagasy Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Vietnamese

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

Матеріал з Вікіпедії - вільної енциклопедії

Сувора типізація - один з варіантів політики роботи з типами даних. яка використовується в мовах програмування.

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

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

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

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

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

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

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

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

Файл: No iwiki template.gif

Схожі статті