Система типізації: відмінності між версіями

[перевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
MerlIwBot (обговорення | внесок)
м робот додав: 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:
* [[Тип даних]]
* [[Мова програмування]]
* [[Поліморфізм (програмування)|Поліморфізм]]
 
{{Вікіфікувати|дата=Лютий 2010}}
== Посилання ==
* [http://project.zu.edu.ua/ReadData.php?h_id=33 Константи, змінні. Типи даних]
 
{{Compu-stub}}