Система типізації: відмінності між версіями
[перевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
м робот додав: ms:Sistem jenis |
Ветер (обговорення | внесок) Немає опису редагування |
||
Рядок 3:
== Базові відомості ==
Присвоєння типу даних (типізація) надає значення набору [[біт]]ів.
Як правило, типи надаються або значенням в пам'яті, або [[
Системи типізації виконують наступні функції:
Рядок 15:
Процес [[верифікація|перевірки]] та впровадження обмежень типів даних — ''перевірка типів'' — може відбуватись під час [[компілятор|компіляції]] (''статична типізація'') або під час виконання програми (''динамічна типізація''). Якщо мова програмування вимагає точного зіставлення типів даних (тобто, дозволяючи лише такі операції автоматичного приведення типів, які не призводять до втрати інформації), така мова програмування має ''сильну типізацію'', в іншому випадку, ''слабку''.
=== Статична типізація ===
Статична типізація - механізм, що дозволяє на етапі написання програми визначити через тип об'єкта програми множину припустимих значень та множину операцій над об'єктом так, що порушення вимог типізації буде призводити до попередження або помилки на етапі трансляції програми, а не на етапі її виконання. Тип об'єкта, встановлений при написанні програми, не може бути змінений на етапі виконання програми, але значення, яке містить об'єкт, може бути перетворене (приведене) до іншого типу.
Механізм широко використовується в окремих мовах програмування (званих як мови зі статичною типізацією) і дозволяє зменшити число помилок при написанні програми, але також вимагає явного перетворення типу при необхідності. Приклади статично типізованих мов - [[Ada]], [[С++]], [[Pascal]].
=== Динамічна типізація ===
Мову програмування називаються динамічно типізованою, коли основна частина перевірок типів виконується під час виконання програми, а не під час компіляції. В динамічній типізації, значення мають типи, а змінні ні, тому змінна може містити значення будь-якого типу. Динамічно типізовані мови включають [[APL (мова програмування)|APL]], [[Erlang]], [[Groovy]], [[JavaScript]], [[LISP|Lisp]], [[Lua]], [[MATLAB]]/[[GNU Octave]], [[Perl]] (для користувацьких типів, але не для вбудованих типів), [[PHP]], [[Пролог (мова програмування)|Prolog]], [[Python]], [[Ruby]], [[Smalltalk]], [[Clojure]] та [[Tcl]].
===
В окремих мовах з статичною типізацією може мати місце наступне:
3 + 4 = 7 (цілі числа)
Рядок 35:
* [[Тип даних]]
* [[Мова програмування]]
* [[Поліморфізм (програмування)|Поліморфізм]]
== Посилання ==
* [http://project.zu.edu.ua/ReadData.php?h_id=33 Константи, змінні. Типи даних]
{{Compu-stub}}
|