Примітивний тип
Примітивний (вбудований, базовий) тип - тип даних, що надається мовою програмування як базова вбудована одиниця мови.
В залежності від мови та його реалізації, набір таких типів може сильно розрізнятися. Він визначається вимогами до простоти мови та компілятора ( інтерпретатора), ефективності реалізації, особливостям сфер застосування мови, виразності засобів мови для побудови нових типів. Зазвичай нізкоуровненевие мови програмування надають дуже обмежений набір вбудованих типів, безпосередньо реалізується низькорівневими конструкціями. Навпаки, мови високого рівня надають зазвичай великий набір вбудованих типів, так як це дозволяє підвищити їх продуктивність.
Більшість мов програмування не дозволяють змінювати роботу вбудованих типів, однак, наприклад, в Smalltalk або Ruby можна не тільки додавати до цих типів нові операції, але і змінювати старі.
Приклади примітивних типів в різних мовах
Практично всі мови програмування включають:
- Символьний тип.
- Цілий тип різних діапазонів значень.
- Посилання (або аналогічні по функціональності типи " покажчик ").
- Числа з плаваючою комою різної точності.
Також часто включаються:
- Числа з фіксованою комою.
- Булевський тип, що має значення істина чи брехня.
- Рядковий тип (послідовність символів).
Більш екзотичні примітивні типи:
- Кортеж в ML.
- Лінійний список в Ліспі, Scala.
- Комплексне число в Фортрані, C (C99), Python.
- Раціональне число в Ліспі.
- Замикання, продовження в функціональних мовах програмування, таких, як Лісп і ML.
- Регулярний вираз в Ruby.
![]() | |
---|---|
Неінтерпретіруемие | |
Числові | Цілий З фіксованою комою З плаваючою комою Раціональний Комплексний Довгий Інтервальний |
Текстові | |
Покажчик | Адреса Посилання |
Композитні | Алгебраїчний тип даних ( узагальнений) Масив Асоціативний масив Клас Список Кортеж Об'єкт Option type Product Структура Безліч Об'єднання (tagged) |
Інші | |
Пов'язані теми | Абстрактний тип даних Структура даних Інтерфейс Kind (type theory) Примітивний тип Subtyping Шаблони C + + Конструктор типу Parametric polymorphism |