Типом – Значение слова ТИП. Что такое ТИП?

Содержание

Значение слова ТИП. Что такое ТИП?

ТИП, -а, м.

1. Образец, модель или разновидность, форма, которым соответствует известная группа предметов, явлений. Типы пассажирских самолетов. Типы почв. Типы производственных отношений. Партия нового типа.Через пенистую горную речку мост железнодорожного типа. Серафимович, Железный поток. Мы создали советский тип государства, гигантский шаг вперед после 1793 и 1871 годов. Ленин, Новые времена, старые ошибки в новом виде.

2. Биол. Высшее подразделение в систематике животных и растений, объединяющее родственные классы. Тип членистоногих животных. Тип цветковых растений.

3. Характерный физический склад, облик человека, связанный с его этнической принадлежностью. — Вы полька и немецкая полька, — продолжал Калинович, — потому что у вас именно это прекрасное сочетание германского типа с славянским. Писемский, Тысяча душ. Графиня была женщина с восточным типом худого лица, лет сорока пяти.

Л. Толстой, Война и мир. || Характерный облик человека, связанный с его социальной или профессиональной принадлежностью. Стрижикозин — вчерашний крестьянин. Он еще сохранил мужицкий тип свой и деревенское добродушие. Гусев-Оренбургский, Страна отцов. К Остапу протиснулся молодой человек шоферского типа. Ильф и Петров, Золотой теленок.

4. Разряд, категория людей, объединенных какими-л. характерными чертами (социальными, профессиональными, нравственными), а также яркий представитель какой-л. такой группы. В русской деревне появился новый тип — сознательный молодой крестьянин. Ленин, Доклад о революции 1905 года. Блинов презирал Жарковского, он не выносил людей этого типа, ловкачество и карьеризм были ему органически противны. Н. Никитин, Это было в Коканде.

5. Художественный образ, обобщающий характерные черты какой-л. группы людей. В лице перевозчика Тюлина Короленко дал, на мой взгляд, изумительно верно понятый и великолепно изображенный тип крестьянина «героя на час».

М. Горький, В. Г. Короленко. — Если бы я был писателем, я бы создал тип ученого — спортсмена, жизнелюба, с прекрасной памятью и веселым характером. Кетлинская, Дни нашей жизни.

6. Разг. пренебр. Человек обычно странных или отрицательных качеств, свойств. Неожиданно дорогу мне преградил странный тип в невероятно помятом пиджаке. Билль-Белоцерковский, Яма. — А на меня этот тип подал заявление в райком. Вот то же самое — мол, оскорблял, драться лез, жену отбил. Наседкин, Большая семья.

[От греч. τύπος — отпечаток, форма, образец]

kartaslov.ru

Тип данных — это… Что такое Тип данных?

Тип данных (встречается также термин вид данных) — фундаментальное понятие теории программирования. Тип данных определяет

множество значений, набор операций, которые можно применять к таким значениям и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам.

История

Ещё в 1960-х г.г. Р. Хиндли (Roger Hindley) исследовал типизацию в комбинаторной логике. Его проблемной областью была типизация в языках, основаных на теории лямбда-исчисления. Позднее, в конце 1960-х годов, тот же учёный исследовал полиморфные системы типов. Позже, в 1970-х годах, Робин Милнер предложил практическую реализацию расширенной системы полиморфной типизации для языка функционального программирования ML.

Определение

Тип (сорт) — относительно устойчивая и независимая совокупность элементов, которую можно выделить во всём рассматриваемом множестве (предметной области).[1]

Полиморфный тип — представление набора типов как единственного типа.

Математически тип может быть определён двумя способами:

  1. Множеством всех значений, принадлежащим типу.
  2. Предикатной функцией, определяющей принадлежность объекта к данному типу

Необходимость использования типов данных

Типы данных различаются начиная с нижних уровней системы. Так, например, даже в Ассемблере х86 различаются типы «целое число» и «вещественное число». Это объясняется тем, что для чисел рассматриваемых типов отводятся различные объёмы памяти, используются различные регистры микропроцессора, а для операций с ними применяются различные команды Ассемблера и различные ядра микропроцессора.

Концепция типа данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора.

Практическое применение

Как правило, типы языков программирования не всегда строго соответствуют подобным математическим типам. Например, тип «целое число» большинства языков программирования не соответствует принятому в математике типу «целое число», так как в математике указанный тип не имеет ограничений ни сверху, ни снизу, а в языках программирования эти ограничения есть. Как правило, в языках и системах имеется множество целых типов, отличающихся допустимым диапазоном значений (определяемым объёмом занимаемой памяти). Стоит отметить, что в большинстве реализаций языков и систем выход за границу целого типа (переполнение) не приводит к исключительной ситуации.

Современные языки программирования (включая Ассемблер) поддерживают оба способа задания типа (см. Определение). Так, в С++ тип enum является примером задания типа через набор значений. Определение класса (если рассматривать класс как тип данных) фактически является определением предиката типа, причём возможна проверка предиката как на этапе компиляции (проверка соответствия типов), так и на этапе выполнения (полиморфизм очень тесно связано с полиморфными типами). Для базовых типов подобные предикаты заданы создателями языка изначально.

Языки без типов

Теоретически не может существовать языков, в которых отсутствуют типы (включая полиморфные). Это следует из того, что все языки основаны на машине Тьюринга или на лямбда-исчислении. И в том, и в другом случае необходимо оперировать как минимум одним типом данных — хранящимся на ленте (машина Тьюринга) или передаваемым и возвращаемым из функции (лямбда-исчисление). Ниже перечислены языки программирования по способу определения типов данных:

1) Языки с полиморфным типом данных. Одни языки не связывают переменные, константы, формальные параметры и возвращаемые значения функций с определёнными типами, поддерживая единственный полиморфный тип данных. В чистом виде таких языков не встречается, но близкие примеры — MS Visual Basic — тип variant, Пролог, Лисп — списки. В этих языках переменная может принимать значение любого типа, в параметры функции можно передавать значения любых типов, и вернуть функция также может значение любого типа. Сопоставление типов значений переменных и параметров с применяемыми к ним операциями производится непосредственно при выполнении этих операций. Например, выражение

a+b, может трактоваться как сложение чисел, если a и b имеют числовые значения, как конкатенация строк, если a и b имеют строковые значения, и как недопустимая (ошибочная) операция, если типы значений a и b несовместимы. Такой порядок называют «динамической типизацией» (соответствует понятию полиморфизм в ООП, полиморфный тип в теории типов). Языки, поддерживающие только динамическую типизацию, называют иногда «бестиповыми». Это название не следует понимать как признак отсутствия понятия типов в языке — типы данных всё равно есть.

2) Языки с неявным определением типов. Казалось бы, BASIC является примером языка без типов. Однако это строго типизированый язык: в нём различаются строковые типы (добавляется символ $), массивы (добавляется []) и числовые типы (ничего не добавляется).

3) Языки с типом, определяемым пользователем. Также хорошо известны языки, в которых типы данных определяются автоматически, а не задаются пользователем. Каждой переменной, параметру, функции приписывается определённый тип данных. В этом случае для любого выражения возможность его выполнения и тип полученного значения могут быть определены без исполнения программы. Такой подход называют «статической типизацией». При этом правила обращения с переменными, выражениями и параметрами разных типов могут быть как очень строгими (С++), так и весьма либеральными (Си). Например, в классическом языке Си практически все типы данных совместимы — их можно применять совместно в любых выражениях, присваивать значение переменной одного типа переменной другого почти без ограничений. При таких операциях компилятор генерирует код, обеспечивающий преобразование типов, а логическая корректность такого преобразования остаётся на совести программиста. Подобные языки называют «языками со слабой типизацией». Противоположнось им — «языки с сильной типизацией», такие как Ада. В них каждая операция требует операндов строго заданных типов. Никакие автоматические преобразования типов не поддерживаются — их можно выполнить только явно, с помощью соответствующих функций и операций. Сильная типизация делает процесс программирования более сложным, но даёт в результате программы, содержащие заметно меньше труднообнаруживаемых ошибок.

На практике языки программирования поддерживают несколько моделей определения типов одновременно.

Базовые типы

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

Преимущества от использования типов данных

  • Надёжность. Типы данных защищают от трёх видов ошибок:
  1. Некорректное присваивание. Пусть переменная объявлена как имеющая числовой тип. Тогда попытка присвоить ей символьное или какое-либо другое значение в случае статической типизации приведёт к ошибке компиляции и не даст такой программе запуститься. В случае динамической типизации код программы перед выполнением потенциально опасного действия сравнит типы данных переменной и значения и также выдаст ошибку. Всё это позволяет избежать неправильной работы и «падения» программы.
  2. Некорректная операция. Позволяет избежать попыток применения выражений вида «Hello world» + 1. Поскольку как уже говорилось все переменные в памяти хранятся как наборы битов, то при отсутствии типов подобная операция была выполнима (и могла дать результат вроде «ello worldǼ»). С использованием типов (см. далее «Контроль типов») такие ошибки отсекаются опять же на этапе компиляции.
  3. Некорректная передача параметров. Если функция «синус» ожидает, что ей будет передан числовой аргумент, то передача ей в качестве параметра строки «Hello world» может иметь непредсказуемые последствия. При помощи контроля типов такие ошибки также отсекаются на этапе компиляции.
  • Стандартизация. Благодаря соглашениям о типах, поддерживаемых большинством систем программирования, сложилась ситуация, когда программисты могут быстро менять свои рабочие инструменты, а программы не требуют больших переделок при переносе исходных текстов в другую среду. К сожалению, стандартизации по универсальным типам данных ещё есть куда развиваться.

Классификация типов данных [2][3]

Типы данных бывают следующие:

  • Простые.
    • Перечислимый тип. Может хранить только те значения, которые прямо указаны в его описании.
    • Числовые. Хранятся числа. Могут применяться обычные арифметические операции.
      • Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.
      • Вещественные: с запятой (то есть хранятся знак и цифры целой и дробной частей) и с плавающей запятой (то есть число приводится к виду m*be, где m — мантисса, b — основание показательной функции, e — показатель степени (порядок) (в англоязычной литературе экспонента), причём в нормальной форме 0<=m<b, а в нормализованной форме 1<=m<b, e — целое число и хранятся знак и числа m и e).
      • Числа произвольной точности, обращение с которыми происходит посредством длинной арифметики. Примером языка с встроенной поддержкой таких типов является UBASIC, часто применяемый среди криптографов.
    • Символьный тип. Хранит один символ. Могут использоваться различные кодировки.
    • Логический тип. Имеет два значения: истина и ложь. Могут применяться логические операции. Используется в операторах ветвления и циклах. В некоторых языках является подтипом числового типа, при этом ложь=0, истина=1.
    • Множество. В основном совпадает с обычным математическим понятием множества. Допустимы стандартные операции с множествами и проверка на принадлежность элемента множеству. В некоторых языках рассматривается как составной тип.
  • Составные (сложные).
    • Массив. Является индексированным набором элементов одного типа. Одномерный массив — вектор, двумерный массив — матрица.
      • Строковый тип. Хранит строку символов. Аналогом сложения в строковой алгебре является конкатенация (прибавление одной строки в конец другой строки). В языках, близких к бинарному представлению данных, чаще рассматривается как массив символов, в языках более высокой абстракции зачастую выделяется в качестве простого.
    • Запись (структура). Набор различных элементов (полей записи), хранимый как единое целое. Возможен доступ к отдельным полям записи. Например, struct в C или record в Pascal.
    • Файловый тип. Хранит только однотипные значения, доступ к которым осуществляется только последовательно (файл с произвольным доступом, включённый в некоторые системы программирования, фактически является неявным массивом).
    • Класс.
  • Другие типы данных. Если описанные выше типы данных представляли какие-либо объекты реального мира, то рассматриваемые здесь типы данных представляют объекты компьютерного мира, то есть являются исключительно компьютерными терминами.

Контроль типов и системы типизации

Процесс проверки и накладывания ограничений типов — контроля типов, может выполняться во время компилирования (статическая проверка) или во время выполнения (динамическая проверка).

Контроль типов также может быть строгим и слабым.

  • Строгая типизация — совместимость типов автоматически контролируется транслятором:
    • Номинативная типизация (англ. nominative type system) — совместимость должна быть явно указана (наследована) при определении типа.
    • Структурная типизация (англ. structural type system) — совместимость определяется структурой самого типа (типами элементов, из которых построен составной тип).
  • Слабая типизация — совместимость типов никак транслятором не контролируется. В языках со слабой типизацией обычно используется подход под названием «утиная типизация» — когда соместимость определяется и реализуется общим интерфейсом доступа к данным типа.

См. также

Примечания

dic.academic.ru

ТИП — это… Что такое ТИП?

  • тип — тип, а …   Русский орфографический словарь

  • тип — тип/ …   Морфемно-орфографический словарь

  • Тип 90-II — Тип 90 II …   Энциклопедия техники

  • Тип 26 — револьвер Тип 26 Тип: револьвер Страна …   Википедия

  • тип — а, м. type &LT; typos отпечаток, форма, образец. 1. устар. Литера, буква, шрифт. Печатные же грыдарованные листы доселе называлися их фряжскою работою. Откуду же оный грыдар и тип его начало свое в России получило, того заподлинно ведать… …   Исторический словарь галлицизмов русского языка

  • тип — сущ., м., употр. часто Морфология: (нет) чего/кого? типа, чему/кому? типу, (вижу) что? тип, (вижу) кого? типа, чем/кем? типом, о чём/ком? о типе; мн. что/кто? типы, (нет) чего/кого? типов, чему/кому? типам, (вижу) что? типы, (вижу) кого? типов,… …   Толковый словарь Дмитриева

  • Тип 97 — может относиться к: Тип 97 «Те Ке» японский малый танк Тип 97 «Чи Ха» японский средний танк Тип 97 «Чи Ни» японский средний опытный танк Тип 97 (ZBD 97) китайская боевая машина пехоты Тип 97 «Кай Гунто» японский офицерский армейский меч Тип 97… …   Википедия

  • Тип — (греч. отпечаток, модель). Проблема Т. и типизации не является специфической проблемой литературоведения. Она имеет место в науках разных областей знания. Вопрос о Т. и типизации в литературе характеризуется своими особенностями, к рые… …   Литературная энциклопедия

  • тип — типа, м. [греч. typos отпечаток]. 1. (вин. тип.). Образец, модель, к рым соответствует известная группа предметов, явлений, разновидность, форма чего н. Выпущены автомобили нового типа. «Колхозы, как тип хозяйства есть одна из форм… …   Толковый словарь Ушакова

  • Тип 81 — Страна:   КНР Тип:  Автомат Дата выпуска …   Википедия

  • ТИП — (греч. typos, от typein ударять). 1) первообраз всякого существа, подлинник, основной образ, совокупность характерных черт: тип южный, тип англичанина и пр.; в литературе: характер, созданный писателем, резко очерченный и присущий целой группе… …   Словарь иностранных слов русского языка

  • dic.academic.ru

    Типы данных (для новичков) — Структура языка программирования

    Тип данных — фундаментальное понятие языка программирования. Тип данных определяет, что именно представляют собой данные, как они хранятся в памяти, какие операции с ними можно выполнять.

    Классификация типов данных

    Изначально, типы данных делятся на простые и составные. Простой — это тип данных, объекты (переменные или постоянные) которого не имеют доступной программисту внутренней структуры. Для объектов составного типа данных, в противовес простому, программист может работать с элементами внутренней его структуры.

    Числовой тип данных разработан для хранения естественно чисел. Символьный — для хранения одного символа. Логический тип имеет два значения: истина и ложь. Перечислимый тип может хранить только те значения, которые прямо указаны в его описании.

    Для простых типов данных определяются границы диапазона и количество байт, занимаемых ими в памяти компьютера.

    В большинстве языков программирования, простые типы жестко связаны с их представлением в памяти компьютера. Компьютер хранит данные в виде последовательности битов, каждый из которых может иметь значение 0 и 1. Фрагмент данных в памяти может выглядеть следующим образом

    00011011011100010110010000111011 ...
    

    Данные на битовом уровне (в памяти) не имеют ни структуры, ни смысла. Как интерпретировать данные, как целочисленное число, или вещественное, или символ, зависит от того, какой тип имеют данные, представленные в этой и последующих ячейках памяти.

    Числовые типы данных

    Целочисленные типы данных

    Выделяют знаковые и беззнаковые. Как видно из названия, знаковые предназначены для хранения как положительных, так и отрицательных значений, нуль, а беззнаковые — чисел, не меньше нуля.

    Беззнаковые типы данных, в отличии от соответствующих знаковых, имеют в два раза больший диапазон. Это из-за их машинного представления. В знаковых типах первый бит указывает на знак числа: 1 — отрицательное, 0 — положительное.

    Исходя из машинного представления целого числа, в ячейке памяти из n бит может хранится 2n для беззнаковых, и 2n-1 для знаковых типов.

    Рассмотрим теперь конкретные целочисленные типы в трёх языках.

    ТипРазрядность в битахДиапазон чисел
    byte80 — 255
    sbyte8-128 — 127
    short16-32 768 — 32 767
    ushort160 — 65 535
    int32-2 147 483 648 — 2 147 483 647
    uint320 — 4 294 967 295
    long64-9 223 372 036 854 775 808 — 9 223 372 036 854 775 807
    ulong640 — 18 446 744 073 709 551 615
    ТипРазрядность в битахДиапазон чисел
    unsigned short int / unsigned short160 — 65 535
    short int16-32 768 — 32 767
    unsigned long int / unsigned long320 — 4 294 967 295
    long int / long32-2 147 483 648 — 2 147 483 647
    int (16 разрядов)16-32 768 — 32 767
    int (32 разряда)32-2 147 483 648 — 2 147 483 647
    unsigned int (16 разрядов)160 — 65 535
    unsigned int (32 разряда)320 — 4 294 967 295

    У некоторых типов есть приписка «16 разрядов» или «32 разряда». Это означает, что в зависимости от разрядности операционной системы и компилятора данный тип будет находится в соответствующем диапазоне. По-этому, рекомендуется не использовать int, unsigned int, а использовать их аналоги, но уже жестко определенные, short, long, unsigned short, unsigned long.

    ТипРазрядность в битахДиапазон чисел
    byte8-128 — 127
    short16-32 768 — 32 767
    int32-2 147 483 648 — 2 147 483 647
    long64-9 223 372 036 854 775 808 — 9 223 372 036 854 775 807

    В Java нет беззнаковых целочисленных типов данных.

    Вещественные типы данных

    Числа вещественного типа данных задаются в форме чисел с плавающей запятой.

    Плавающая запятая — форма представления действительных чисел, в которой число хранится в форме мантиссы и показателя степени. В случае языков программирования, любое число может быть представлено в следующем виде

    (1)

    \begin{equation} N = M*10^p \end{equation}

    где N — записываемое число;
    M — мантисса;
    p (целое) — порядок.
    Например: 14441544=1,4441544*107; 0,0004785=4,785*10-4. Компьютер же на экран выведет следующие числа:

    Следовательно, в отведенной памяти хранится мантисса и порядок записываемого числа. Рассмотрим на примера типа данных, который хранится в 8 байтах или 64 битах. В данном случае, мантисса составляет 53 бита: 1 для знака числа и 52 для её значения; порядок 10 битов: 1 бит для знака и 10 для значения. Мы можем в данном случае говорить о диапазоне точности, то есть насколько малое и насколько большое число может хранить данный тип данных: 4,94×10−324 до 1.79×10308. Но, поскольку, память компьютера не безразмерна, да и далеко не всегда нужно, храниться несколько первых разрядов мантиссы, которые называются значащими.

    Вывод: вещественные типы данных, в отличии от целочисленных, характеризуются диапазоном точности и количеством значащих разрядов.

    Рассмотрим конкретные типы данных в наших трёх языках.

    ТипРазрядность в битахКоличество значащих цифрДиапазон точности
    float327от 1,5*10-45 до 3,4*1038
    double6415от 4,9*10-324 до 1,7*10308
    decimal12828от 1,0*10-28 до 7,9*1028

    Тип decimal создан специально для операций высокой точности, в частности финансовых операций. Он не реализован как примитивный тип, по-этому его частое использование может повлиять на производительность вычислений.

    ТипРазрядность в битахКоличество значащих цифрДиапазон точности
    float327от 1,5*10-45 до 3,4*1038
    double6415от 4,9*10-324 до 1,7*10308
    ТипРазрядность в битахКоличество значащих цифрДиапазон точности
    float327от 1,5*10-45 до 3,4*1038
    double6415от 4,9*10-324 до 1,7*10308

    Символьный тип данных

    Значение переменной этого типа данных представляет собой один символ. В действительности, это есть целое число. В зависимости от кодировки, это число превращается в некий символ. Данные типы данных характеризуются лишь размером выделяемой под них памяти.

    ТипРазрядность в битах
    char16
    ТипРазрядность в битах
    char8
    wchar_t16
    ТипРазрядность в битах
    char16

    Логический тип данных

    Это тип данных, значения которых могут быть: true (правда) или false (ложь). Логическому типу данных соответствуют в С# и C++ тип bool, в Java — boolean.

    Перечислимый тип данных

    Во внутреннем представлении, это целочисленный тип данных, только здесь пользователь вместо числе использует заранее определенные строковые значения.

    Чтобы прочувствовать эту концепцию, приведем пример на языке С++ (в С# и Java аналогично)

    enum Forms {shape, sphere, cylinder, polygon};
    

    Теперь переменные перечислимого типа Forms могут принимать лишь значения, определенные в примере кода. Это очень удобно, ведь мы уже оперируем не с числами, а с некими смысловыми значениями, замечу лишь, что для компьютера эти значения всё-равно являются целыми числами.

    Массив

    Далее перейдем к сложным типам данных. Первый из них — это массив. Массив — это набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу. Индекс массива — целое число, указывающее на конкретный элемент массива.

    Каждый массив характеризуется типом данных его элементов, который может быть как простым, так и сложным, то есть любым.

    В языках программирования нельзя оперировать всем массивом, работают с конкретным элементом. Чтобы доступиться до него в трёх рассматриваемых нами языках используют оператор «[]».


    Индекс имеет тип данных чаще всего int.

    Структура

    Ранее были рассмотрены встроенные типы данных. Теперь мы переходим к пользовательским типам данных. Структура — конструкция, позволяющая содержать в себе набор переменных различных типов.

    Структуры реализованы в языке программирования, чтобы собрать некие близки по смыслу вещи воедино.

    Например, есть колесо автомобиля. У колеса есть диаметр, толщина, шина. Шина в свою очередь является структурой, у которой есть свои параметры: материал, марка, чем заполнена. Естественно, для каждого параметра можно создать свою переменную или константу, у нас появится большое количество переменных, которые, чтобы понять к чему они относятся, нужно в именах общую часть выделять. Имена будут нести лишнюю смысловую нагрузку. Получается запутанная история. А так мы определяем две структуры, а затем параметры в них.

    struct Tyre
    {
       Material material;
       int mark;
    };
    struct Wheel
    {
       double diameter;
       double thickness;
       Tyre tyre;
    }
    

    Класс

    Еще одним пользовательским типом данных является класс. Класс умеет всё, что и структура, но кроме параметров, у него есть и методы, и поддерживает большое количество вещей, связанных с объектно-ориентированным программированием.

    plstruct.wikidot.com

    Значение слова «Тип» в 10 онлайн словарях Даль, Ожегов, Ефремова и др.

    Поделиться значением слова: м. греч. прототип, первообраз, подлинник, образец, основный образ. В пяти частях света находим мы пять типов человеческого рода: белый, желтый, красный, серый и черный. У Гоголя видим множество нравственых типов, типичных или типических лиц, резко очерченных, выразительных, первообразных. | Типы, буквы, литеры, набор в печатнях, снимки с коих дают печать. Типография, печатня, книгопечатня. -фский, -фичный, -фический, к печатне отнсящееся. Типограф, -графщик, печатник, книгопечатник, хозяин, содержатель печатни. -щичьи принадлежности. Типик м. церк. устав церковного служенья. Типик иерусалимский. Типик Афонской горы.
    ТИП, -а, м. 1. (вин. п. тип). Форма, вид чего-н., обладающие определенными признаками, а также образец, к-рому соответствует известная группа предметов, явлений. Типы рельефов. Славянский т. лица. Т. автомобиля. 2. (вин. п. тип). Высшее подразделение в систематике животных, объединяющее близкие по происхождению классы. 3. (вин. п. тип). Разряд, категория людей, объединенных общностью каких-н. внешних или внутренних черт. Он очень замкнут — я не люблю людей этого типа. 4. (вин. п. тип). Образ, содержащий характерные, обобщенные черты какой-н. группы людей. Гоголевские типы в русской литературе. 5. (вин. п. типа). Человек, отличающийся какими-н. характерными свойствами, приметами (чаще отрицательными) (разг.). Забавный т. Отвратительный т. Приходил какой-то странный т. Ну и т. ты! (осуждение). 6. типа кого-чего, в знач. предлога срод. п. Вроде, наподобие кого-че-го-н. Устройство типа центрифуги. Гостиница типа пансионата. Люди типа Самгина. || уменыи. типик, -а, м. (к 5 знач.) и типчик, -а, м. (к 5 знач.). || прил. типовой, -ая, -ое (к 1 знач.) и типический, -ая, -ое (к 4 знач.). Типовой проект. Типовой договор. Типический образ.
    1. м.
      1. Яркий образец, модель для группы каких-л. предметов, явлений.
      2. Высшая категория в систематике животных и растений.
        1. Вид, род, разновидность чего-л.
        2. Классификационное понятие в научной систематике (минералогической, геохимической, астрономической и т.п.).
        1. Человек, служащий прототипом писателю, артисту, художнику.
        2. Образ в произведениях литературы и искусства, в индивидуальных чертах которого воплощены наиболее характерные признаки лиц определенной категории.
          1. Отдельный человек, отличающийся от других какими-л. характерными чертами.
          2. разг. Человек, к которому относятся пренебрежительно, с презрением.
        3. Категория лиц с общими характерными признаками.
        4. 5)
          1. Облик человека, связанный с его принадлежностью к определенной этнической категории.
          2. Особенности психологического склада, присущие лицам определенной национальности.
    род. п. -а, впервые в знач. «изображение», Ф. Прокопович; см. Смирнов 290. Через франц. tуре «оттиск, прообраз, тип» из лат. tурus от греч. τύπος м. «удар, оттиск»: τύπτω «бью».
    *****
    первобытнообщинный, рабовладельческий, феодальный, капиталистический, социалистический.» История ·ВКП(б).
    2. (вин. ·тип. ). Высшее подразделение в систематике животных (зоол.).
    3. (вин. ·тип. ). Обобщенный образ, содержащий характерные черты известной группы людей (лит., иск.). — А теперь о втором типе работников. «Я имею в виду тип болтунов, я бы сказал, честных болтунов, людей честных, преданных Советской власти, но не способных руководить, не способных что-либо организовать.» Сталин. «То было время широких натур, почти уже несуществующего теперь типа загульных людей.» Горбунов. Тип лишнего человека в русской литературе 19 ·в. «Он (Гончаров) хотел добиться того, чтобы случайный образ, мелькнувший перед ним, возвести в тип, придать ему родовое и постоянное значение.» Добролюбов.
    4. (вин. ·тип. ). Человек оригинального склада, отличающийся каким-нибудь характерными особенностями во внешности, в поведении, в образе мыслей и т.п. (·разг. ). «У меня староста Ерофей — удивительный тип.» А.Тургенев. Забавный ·тип.
    | Странный, ненормальный человек, не подходящий под общую мерку (·разг. ·фам. ·неод. ). Ну и тип же ты, скажу я тебе.
    | То же, что индивидуум» title=’что такое индивидуум, значение слова индивидуум в словаре Ушакова’>индивидуум во 2 ·знач. (·разг. ·шутл. ). Ко мне подошел какой-то тип в гороховом пальто.
    образ, фигура; субъект, молодчик, фрукт, субчик; вид, образец, разряд, характер; вариант, разновидность, модификация, род, сорт, класс, категория; типик, парадигма, артикул, человек, штучка, гусь, типчик, элемент, джек, экземпляр, лоб, жук, штука, гаврик, племя, хмырик, гусь лапчатый, модель, хмырь, форма, группа, птица, подразделение, порода
    (от греч. typos — отпечаток, форма, образец),..1) форма, вид чего-либо, обладающие существенными качественными признаками; образец, модель для чего-либо…2) Единица расчленения изучаемой реальности в типологии…3) Человек, наделенный какими-либо характерными свойствами, яркий представитель какой-либо группы людей, в частности, сословия, нации, эпохи. См. также Типическое.—в биологии — таксономическая категория (ранг) в систематике животных. В типы (иногда сначала в подтип) объединяют близкие по происхождению классы. Напр., типы хордовых включают классы земноводных, пресмыкающихся, птиц, млекопитающих и др. Все представители одного типа имеют единый план строения. Типы отражают основные ветви филогенетического древа животных. Всех животных обычно относят к 16 типам (по мнению разных ученых, типов от 13 до 33). Все типы животных объединяются в царство животных. В систематике растений типу соответствует отдел.
    (typus; греч. typos отпечаток, образец) в систематике высшая таксономическая категория в зоологии, объединяющая родственные классы.

    сущ1. субъект, молодчик, фрукт, субчик2. образ, фигура

    См. вид, образец» title=’образец, образец синонимы, синонимы к образец, словарь русских синонимов’>образец, разряд» title=’разряд, разряд синонимы, синонимы к разряд, словарь русских синонимов’>разряд, характер» title=’характер, характер синонимы, синонимы к характер, словарь русских синонимов’>характер…
    артикул, вид, группа, категория, класс, модель, молодчик, образ, образец, парадигма, подразделение, порода, разряд, сорт, субчик, субъект, типик, типчик, фигура, форма, фрукт, характер, человек, экземпляр

    1. ти́п,
    ти́пы,
    ти́па,
    ти́пов,
    ти́пу,
    ти́пам,
    ти́п,
    ти́пы,
    ти́пом,
    ти́пами,
    ти́пе,
    ти́пах
    2. ти́п,
    ти́пы,
    ти́па,
    ти́пов,
    ти́пу,
    ти́пам,
    ти́па,
    ти́пов,
    ти́пом,
    ти́пами,
    ти́пе,
    ти́пах

    а, м.

    1. Форма, вид чего-нибудь, обладающие определенными признаками, а также образец, которому соответ-ствует известная группа предметов, явлений. Т. хозяйства. Производственные отношения нового ти-па. Типовой — являющийся типом.||Ср. КАТЕГОРИЯ» title=’КАТЕГОРИЯ, КАТЕГОРИЯ это, что такое КАТЕГОРИЯ, КАТЕГОРИЯ толкование’>КАТЕГОРИЯ, КЛАСС» title=’КЛАСС, КЛАСС это, что такое КЛАСС, КЛАСС толкование’>КЛАСС II, МАРКА» title=’МАРКА, МАРКА это, что такое МАРКА, МАРКА толкование’>МАРКА, МОДЕЛЬ» title=’МОДЕЛЬ, МОДЕЛЬ это, что такое МОДЕЛЬ, МОДЕЛЬ толкование’>МОДЕЛЬ, СИСТЕМА» title=’СИСТЕМА, СИСТЕМА это, что такое СИСТЕМА, СИСТЕМА толкование’>СИСТЕМА, СОРТ» title=’СОРТ, СОРТ это, что такое СОРТ, СОРТ толкование’>СОРТ.

    2. биол. Высшее подразделение в систематике животных и растений.||Ср. КЛАСС» title=’КЛАСС, КЛАСС это, что такое КЛАСС, КЛАСС толкование’>КЛАСС II.

    3. Разряд, категория людей, объединенных общностью каких-нибудь внешних или внутренних черт. Он мрачен и груб — я не люблю людей этого типа.

    4. лит. Художественный образ, содержащий характерные, обобщенные черты какой-нибудь группы людей (см. также ХАРАКТЕР» title=’ХАРАКТЕР, ХАРАКТЕР это, что такое ХАРАКТЕР, ХАРАКТЕР толкование’>ХАРАКТЕР). Т. «лишнего человека» в литературе XIX в.

    5. одуш. Человек, отличающийся какими-н. характерными свойствами, приметами. Забавный т. Знаю я этого типа. Типчик (разг. неодобр.) — уменьш. от т.||Ср. СУБЪЕКТ, ФРУКТ, ЭКЗЕМПЛЯР, ЭЛЕМЕНТ.

    6. кого-чего, в знач. предлога. Вроде, сходно с чем-нибудь Устройство типа центрифуги.

    Поделиться значением слова:

    glosum.ru

    Слово ТИП — Что такое ТИП?

    Слово тип английскими буквами(транслитом) — tip

    Слово тип состоит из 3 букв: и п т


    Значения слова тип. Что такое тип?

    Тип

    ТИП (Τύπος — удар, знак от удара, печать, образ, у Аристотеля — общее представление).. Предмет или явление, заключающие в себе черты, повторяющиеся в большом ряде других, подобных им, явлений или предметов почитаем мы типичными.

    Литературная энциклопедия: Словарь литературных терминов

    ТИП [греч. — отпечаток, модель]. Проблема Т. и типизации не является специфической проблемой литературоведения. Она имеет место в науках разных областей знания. Вопрос о Т. и типизации в лит-ре характеризуется своими особенностями…

    Лит. энциклопедия. — 1929-1939

    ТИП — в биологии — таксономическая категория (ранг) в систематике животных. В типы (иногда сначала в подтип) объединяют близкие по происхождению классы. Напр., типы хордовых включают классы земноводных, пресмыкающихся, птиц, млекопитающих и др.

    Большой энциклопедический словарь

    ТИП (биологическое), одна из высших таксономических категорий (ранг) в систематике животных. В тип объединяют близкие по происхождению классы. Все представители одного типа имеют единый план строения.

    Современная энциклопедия. — 2000

    ТИП (phylum), одна из высших таксоно-мич. категорий в систематике животных; определ. группа (таксой) животных(напр., хордовые), к-рой присвоен ранг типа.

    Биологический словарь

    ТИП (от греч. typos — отпечаток — форма, образец),1) форма, вид чего-либо, обладающие существенными качественными признаками; образец, модель для чего-либо 2)] Единица расчленения изучаемой реальности в типологии 3) Человек…

    Большой энциклопедический словарь

    ТИП — отпечаток, форма, образец — форма чего-либо, вид, обладающие существенными качественными признаками, образец, модель для чего-либо Человек, наделенный какими-либо характерными свойствами, яркий представитель какой-либо группы людей…

    Словарь исторических терминов. — 1998

    Тип почв

    Тип почв тип почв большая группа почв, развивающихся в однотипно сопряжённых биологических, климатических, гидрологических условиях и характеризующихся ярким проявлением основного процесса почвообразования; единица систематики почв.

    Географическая энциклопедия

    Тип почв большая группа почв, развивающихся в однотипно сопряжённых биологических, климатических, гидрологических условиях и характеризующихся ярким проявлением основного процесса почвообразования; единица систематики почв.

    Географическая энциклопедия

    Тип почв — основная таксономическая единица классификации п., применяемой в Советском Союзе. В соответствии с решением Междуведомственной комиссии по номенклатуре, систематике и классификации п., принятым в 1958 г.

    https

    Тип 80 (пистолет)

    Тип 64-2. Автоматическая винтовка Тип 64 (Type 64) (Япония) автоматическая винтовка Тип 64 (Type 64) Калибр: 7.62х51мм Тип автоматики: газоотводный, запирание перекосом затвора Длина: 990 мм Длина ствола: 450 мм Вес: 4,3 кг без магазина Темп стрельбы…

    Энциклопедия стрелкового оружия

    Тип 80 (англ. Type 80) — китайский автоматический пистолет калибра 7,62 мм. Разработан в конце 1970-х годов для не имеющих штатного автоматического оружия подразделений специального назначения Народно-освободительной армии Китая.

    ru.wikipedia.org

    Типы нервной системы

    Типы нервной системы, типы высшей нервной деятельности, комплекс основных врождённых свойств и приобретённых индивидуальных особенностей нервной системы (HC)…

    БСЭ. — 1969—1978

    ТИПЫ НЕРВНОЙ СИСТЕМЫ, типы высшей нервной деятель-нос т, и, комплекс осн. врождённых и приобретённых индивидуальных свойств нервной системы человека и животных, определяющих различия в поведении и отношении к одним и тем же воздействиям внеш. среды.

    Биологический словарь

    ТИПЫ НЕРВНОЙ СИСТЕМЫ ТИПЫ НЕРВНОЙ СИСТЕМЫ типы высшей нервной деятельности, комплекс осн. врождённых и приобретённых индивидуальных свойств нервной системы человека и животных…

    Биологический энциклопедический словарь. — 1986

    Динарский тип

    Дина́рская ра́са — малая раса (антропологический тип) европеоидной расы. Получила название в честь Динарских Альп. Термин был введён в начале XX в. французским антропологом И. Деникером, который также использовал название «адриатическая раса».

    ru.wikipedia.org

    Динарский тип — (динарид; адриатический тип по Деникеру; эпирский тип) Центрально- и юго-восточный европейский европеоидный тип, названный так из-за связи с Динарскими Альпами.

    Физическая Антропология. Иллюстрированный толковый словарь. — 2011

    Идеальный тип

    ИДЕАЛЬНЫЙ ТИП — термин М. Вебера, обозначающий понятие, отсылающее к культурно-историческим объектам, интерпретированным в свете определенных ценностей.

    Философская энциклопедия

    ИДЕАЛЬНЫЙ ТИП — методологическое средство социально-исторического исследования, разработанное немецким социологом М. Вебером. По Веберу, теоретическое социологическое исследование…

    Новая философская энциклопедия. — 2003

    ИДЕАЛЬНЫЙ ТИП — синтетическая мыслительная конструкция, представляющая систематические характеристики индивидуальных, значимых в своей единичности связей объектов культуры.

    Кемеров В. Философская энциклопедия. — М., 1998

    Вагон метро типа Ем

    Вагоны метро типа «Ем» и производных от него выпускались в 1967—1980 годах для Ленинградского и Московского метрополитена. Вагоны типа «Е» имели изменённое по сравнению с вагонами типа «Д»…

    ru.wikipedia.org

    Вагоны метро типа «Ем» и производных от него выпускались в 1967—1980 годах для Ленинградского и Московского метрополитена. Вагоны типа «Е» имели изменённое по сравнению с вагонами типа «Д»…

    ru.wikipedia.org

    Русский язык

    Тип/.

    Морфемно-орфографический словарь. — 2002

    Тип, -а.

    Орфографический словарь. — 2004

    Примеры употребления слова тип

    Летчик действует, как в бою: выходит на цель, выбирает тип оружия и производит пуск.

    Игровые характеристики ушли в тень: тип памяти, производительность графики, частота CPU.

    У нее совершенно мужской тип фигуры: широкие плечи, узкие бедра, плоская попа.

    Этот тип сооружений уже используется медицинскими подразделениями ряда силовых структур.

    Такой худощавый, долговязый тип с, как всем известно, вытянутой, как у лошадки, физиономией.

    У звезды Голливуда Леонардо Ди Каприо, определенно, имеется тип девушек, которые ему нравятся.

    Увеличение скорости доступа в Интернет сформировало новый тип общества.

    Я его отключил и вуаля все тип топ, если вдруг будет такая байда у вас, расскажу как исправить!!!


    1. типун
    2. типчак
    3. типчик
    4. тип
    5. тирада
    6. тиражировавшийся
    7. тиражировавший

    wordhelp.ru

    Тип данных — Википедия. Что такое Тип данных

    Тип данных (тип) — множество значений и операций на этих значениях (IEEE Std 1320.2-1998)[1].

    Другие определения:

    • Тип данных — класс данных, характеризуемый членами класса и операциями, которые могут быть к ним применены (ISO/IEC/IEEE 24765-2010)[2].
    • Тип данных — категоризация абстрактного множества возможных значений, характеристик и набор операций для некоторого атрибута (IEEE Std 1320.2-1998)[3].
    • Тип данных — категоризация аргументов операций над значениями, как правило, охватывающая как поведение, так и представление (ISO/IEC 19500-2:2003)[4].
    • Тип данных — допустимое множество значений[5].

    Тип определяет возможные значения и их смысл, операции, а также способы хранения значений типа. Изучается теорией типов. Неотъемлемой частью большинства языков программирования являются системы типов, использующие типы для обеспечения той или иной степени типобезопасности.

    Определение

    Тип данных характеризует одновременно:

    • множество допустимых значений, которые могут принимать данные, принадлежащие к этому типу;
    • набор операций, которые можно осуществлять над данными, принадлежащими к этому типу.

    Первое свойство можно рассматривать как теоретико-множественное определение понятия типа; второе — как процедурное (или поведенческое) определение.

    Кроме этого, в программировании используется низкоуровневое определение типа — как заданных размерных и структурных характеристик ячейки памяти, в которую можно поместить некое значение, соответствующее этим характеристикам. Такое определение является частным случаем теоретико-множественного. На практике, с ним связан ряд важных свойств (обусловленных особенностями организации памяти компьютера), требующих отдельного рассмотрения.

    Теоретико-множественное определение, особенно в низкоуровневом варианте, чаще всего используется в императивном программировании. Процедурное определение в большей степени связывается с параметрическим полиморфизмом. Объектно-ориентированное программирование использует процедурное определение при описании взаимодействия компонентов программы, и теоретико-множественное — при описании реализации этих компонентов на ЭВМ, соответственно, рассматривая «класс-как-поведение» и «класс-как-объект в памяти»[источник не указан 1326 дней].

    Операция назначения типа информационным сущностям называется типизацией. Назначение и проверка согласования типов может осуществляться заранее (статическая типизация), непосредственно при использовании (динамическая типизация) или совмещать оба метода. Типы могут назначаться «раз и навсегда» (сильная типизация) или позволять себя изменять (слабая типизация).

    Типы позволяют избежать парадокса Рассела, в частности, Чёрч ввёл типы в лямбда-исчисление именно с этой целью[6].

    В естественном языке за типизацию отвечают вопросительные местоимения.

    Единообразная обработка данных разных типов называется полиморфизмом[7][8].

    Понятие типобезопасности опирается преимущественно на процедурное определение типа. Например, попытка деления числа на строку будет отвергнута большинством языков, так как для этих типов не определено соответствующее поведение. Слабо типизированные языки тяготеют к низкоуровневому определению. Например, «число» и «запись» имеют различное поведение, но значение[en] адреса «записи» в памяти ЭВМ может иметь то же низкоуровневое представление, что и «число». Слабо типизированные языки предоставляют возможность нарушить систему типов, назначив этому значению поведение «числа» посредством операции приведения типа. Подобные трюки могут использоваться для повышения эффективности программ, но несут в себе риск крахов, и поэтому в безопасных языках не допускаются, либо жёстко обособляются.

    К неполным по Тьюрингу языкам описания данных (таким как SGML) процедурное определение обычно неприменимо[источник не указан 1326 дней].

    Классификация

    Существуют различные классификации типов и правил их назначения.

    По аналогии с математикой, типы данных делят на скалярные (примитивные) и нескалярные (агрегатные). Значение нескалярного типа (нескалярное значение) имеет множество видимых пользователю компонентов, а значение скалярного типа (скалярное значение) не имеет такового.[9] Примерами нескалярного типа являются массивы, списки и т. д.; примеры скалярного типа — «целое», «логическое» и т. д.

    Структурные (агрегатные) типы не следует отождествлять со структурами данных: одни структуры данных непосредственно воплощаются определёнными структурными типами, но другие строятся посредством их композиции, чаще всего рекурсивной. В последнем случае говорят о рекурсивных типах данных[en]. Примером структур данных, которые почти всегда строятся посредством композиции объектов рекурсивного типа, являются бинарные деревья.

    По другой классификации типы делятся на самостоятельные и зависимые. Важными разновидностями последних являются ссылочные типы, частным случаем которых, в свою очередь, являются указатели. Ссылки (в том числе и указатели) представляют собой несоставной зависимый тип, значения которого являются адресом в памяти ЭВМ другого значения. Например, в языке Си тип «указатель на целое без знака» записывается как «unsigned *», в языке ML тип «ссылка на целое без знака» записывается как «word ref».

    Также типы делятся на мономорфные и полиморфные (см. переменная типа).

    Некоторые распространённые типы данных

    Логический тип

    Логические, или булевы значения (по фамилии их изобретателя — Буля), могут иметь лишь одно из двух состояний — «истина» или «ложь». В разных языках обозначаются bool, BOOL, или boolean. «Истина» может обозначаться как true, TRUE или #T. «Ложь», соответственно, false, FALSE или #F. В языках C и C++ любое ненулевое число трактуется как «истина», а ноль — как «ложь». В Python некоторым единичным типам[en] также назначается то или иное «логическое значение». В принципе, для реализации типа достаточно одного бита, однако из-за особенностей микропроцессоров, на практике размер булевых величин обычно равен размеру машинного слова.

    Целочисленные типы

    Целочисленные типы содержат в себе значения, интерпретируемые как числа (знаковые и беззнаковые).

    Числа с плавающей запятой

    Используются для представления вещественных (не обязательно целых) чисел. В этом случае число записывается в виде x=a*10^b. Где 0<=a<1, а b — некоторое целое число из определённого диапазона. a называют мантиссой, b — порядком. У мантиссы хранятся несколько цифр после запятой, а b — хранится полностью.

    Строковые типы

    Последовательность символов, которая рассматривается как единое целое в контексте переменной. В разных языках программирования накладываются разные ограничения на строковые переменные. Строки могут содержать управляющие последовательности.

    Указатели

    Указатель — переменная, диапазон значений которой состоит из адресов ячеек памяти или специального значения для обозначения того, что в данный момент в переменной ничего не записано.

    Идентификационные типы

    Идентификационные типы интерпретируются не как число, а как уникальный идентификатор объекта. Например, FourCC[en].

    Абстрактные типы данных

    Типы данных, которые рассматриваются независимо от контекста и реализации в конкретном языке программирования. Абстракция в математическом смысле означает, что алгебра данных рассматривается с точностью до изоморфизма. Абстрактные типы находят широкое применение в методологии программирования, основанной на пошаговой разработке программ. На этапе построения спецификации проектируемой программы алгебра данных моделирует объекты предметной области, в терминах решаемой задачи. В процессе пошагового уточнения данные конкретизируются путём перехода к промежуточным представлениям до тех пор, пока не будет найдена их реализация с помощью базовой алгебры данных используемого языка программирования. Существует несколько способов определения абстрактных типов: алгебраический, модельный и аксиоматический. При модельном подходе элементы данных определяются явным образом. При алгебраическом используются методы алгебраических отношений, а при аксиоматическом подходе используется логическая формализация.

    Примеры

    • примитивные типы, в том числе:
    • ссылочные типы
    • опциональные типы[en]
    • Композитные типы, в том числе:
    • алгебраические типы
    • подтипы[en]
    • унаследованные типы
    • объектные типы, то есть объекты, значением которых являются типы — например, переменные типов
    • частичные типы[en]
    • рекурсивные типы[en]
    • функциональные типы, например бинарные функции
    • универсально квантифицированные типы, такие как параметрические типы
    • экзистенциально квантифицированные, такие как модули
    • зависимые типы — типы, зависящие от термов (значений)
    • уточняющие типы[en] — типы, идентифицирующие подмножества других типов
    • Предопределённые типы (являющиеся фактически структурными, но предоставляемые на правах примитивных) для удобства промышленных разработок, такие как «дата», «время», «валюта» и др.

    Самоприменение

    Тип может быть параметризован другим типом, в соответствии с принципами абстракции и параметричности[en]. Например, для реализации функции сортировки последовательностей нет необходимости знать все свойства составляющих её элементов — необходимо лишь, чтобы они допускали операцию сравнения — и тогда составной тип «последовательность» может быть определён как параметрически полиморфный. Это означает, что его компоненты определяются с использованием не конкретных типов (таких как «целое» или «массив целых»), а параметров-типов. Такие параметры называются переменными типа (англ. type variable) — они используются в определении полиморфного типа так же, как параметры-значения в определении функции. Подстановка конкретных типов в качестве фактических параметров для полиморфного типа порождает мономорфный тип. Таким образом, параметрически полиморфный тип представляет собой конструктор типов, то есть оператор над типами в арифметике типов.

    Определение функции сортировки как параметрически полиморфной означает, что она сортирует абстрактную последовательность, то есть последовательность из элементов некоторого (неизвестного) типа. Для функции в этом случае требуется знать о своём параметре лишь два свойства — то, что он представляет собой последовательность, и что для её элементов определена операция сравнения. Рассмотрение параметров процедурным, а не декларативным, образом (то есть их использование на основе поведения, а не значения) позволяет использовать одну функцию сортировки для любых последовательностей — для последовательностей целых чисел, для последовательностей строк, для последовательностей последовательностей булевых значений, и так далее — и существенно повышает коэффициент повторного использования кода. Ту же гибкость обеспечивает и динамическая типизация, однако, в отличие от параметрического полиморфизма, первая приводит к накладным расходам. Параметрический полиморфизм наиболее развит в языках, типизированных по Хиндли — Милнеру, то есть потомках языка ML. В объектно-ориентированном программировании параметрический полиморфизм принято называть обобщённым программированием.

    Несмотря на очевидные преимущества параметрического полиморфизма, порой возникает необходимость обеспечивать различное поведение для разных подтипов[en] одного общего типа, либо аналогичное поведение для несовместимых типов — то есть в тех или иных формах Ad hoc полиморфизма. Однако, ему не существует математического обоснования, так что требование типобезопасности долгое время затрудняло его использование. Ad hoc полиморфизм реализовывался внутри параметрически полиморфной системы типов посредством различных трюков. Для этой цели использовались либо вариантные типы[en], либо параметрические модули (функторы), либо так называемые «значения, индексированные типами» (англ. type-indexed values), которые, в свою очередь, также имеют ряд реализаций[10]. Классы типов[en]*, появившиеся в языке Haskell, предоставили более изящное решение этой проблемы.

    Если рассматриваемой информационной сущностью является тип, то назначение ей типа приведёт к понятию «тип типа» («метатип»). В теории типов это понятие носит название «род типов» (англ. kind of a type или type kind). Например, род «*» включает все типы, а род «* -> *» включает все унарные конструкторы типов. Рода явным образом применяются при полнотиповом программировании — например, в виде конструкторов типов в языках семейства ML.

    Расширение безопасной полиморфной системы типов классами[en]* и родами типов сделало Haskell первым типизированным в полной мере языком. Полученная система типов оказала влияние на другие языки (например, Scala, Agda).

    Ограниченная форма метатипов присутствует также в ряде объектно-ориентированных языков в форме метаклассов. В потомках языка Smalltalk (например, Python) всякая сущность в программе является объектом, имеющим тип, который сам также является объектом — таким образом, метатипы являются естественной частью языка. В языке C++ отдельно от основной системы типов языка реализована подсистема RTTI, также предоставляющая информацию о типе в виде специальной структуры.

    Динамическое выяснение метатипов называется отражением (а также рефлексивностью или интроспекцией).

    Представление на ЭВМ

    Наиболее заметным отличием реального программирования от формальной теории информации является рассмотрение вопросов эффективности не только в терминах О-нотации, но и с позиций экономической целесообразности воплощения тех или иных требований в физически изготовляемой ЭВМ. И в первую очередь это сказывается на допустимой точности вычислений: понятие «число» в ЭВМ на практике не тождественно понятию числа в арифметике. Число в ЭВМ представляется ячейкой памяти, размер которой определяется архитектурой ЭВМ, и диапазон значений числа ограничивается размером этой ячейки. Например, процессоры архитектуры Intel x86 предоставляют ячейки, размер которых в байтах задаётся степенью двойки: 1, 2, 4, 8, 16 и т. д. Процессоры архитектуры Сетунь предоставляли ячейки, размер которых в трайтах задавался кратным тройке: 1, 3, 6, 9 и т. д.

    Попытка записи в ячейку значения, превышающего максимально допустимый для неё предел (который известен) приводит к ошибке переполнения. При необходимости расчётов на более крупных числах используется специальная методика, называемая длинной арифметикой, которая в силу значительной ресурсоёмкости не может осуществляться в реальном времени. Для наиболее распространённых в настоящее время архитектур ЭВМ «родным» является размер ячеек в 32 и 64 бит (то есть 4 и 8 байт).

    Кроме того, целые и вещественные числа имеют разное представление в этих ячейках: неотрицательные целые представляются непосредственно, отрицательные целые — в дополнительном коде, а вещественные кодируются особым образом. Из-за этих различий сложение чисел «1» и «0.1», которое в теории даёт значение «1.1», на ЭВМ непосредственно невозможно. Для его осуществления необходимо сперва выполнить преобразование типа, породив на основании значения целого типа «1» новое значение вещественного типа «1.0», и лишь затем сложить «1.0» и «0.1». В силу специфики реализации вещественных чисел на ЭВМ, такое преобразование осуществляется не абсолютно точно, а с некоторой долей приближения. По той же причине сильно типизированные языки (например, Standard ML) рассматривают вещественный тип как equality types (или identity types) (Equality type[en]).

    Для низкоуровневого представления составных типов важное значение имеет понятие о выравнивании данных. Языки высокого уровня обычно изолируют (абстрагируют) программиста от этого свойства, однако, с ним приходится считаться при связывании независимо скомпилированных модулей между собой. Однако, некоторые языки (Си, С++) предоставляют возможность контролировать низкоуровневое представление типов, в том числе и выравнивание. Такие языки временами называют языками среднего уровня.

    Примечания

    1. ↑ IEEE Std 1320.2-1998 (R2004) IEEE Standard for Conceptual Modeling Language Syntax and Semantics for IDEF1X97:
      a set of values and operations on those values
    2. ↑ ISO/IEC/IEEE 24765-2010 Systems and software engineering — Vocabulary:
      a class of data, characterized by the members of the class and the operations that can be applied to them
    3. ↑ IEEE Std 1320.2-1998 (R2004) IEEE Standard for Conceptual Modeling Language Syntax and Semantics for IDEF1X97:
      a categorization of an abstract set of possible values, characteristics, and set of operations for an attribute
    4. ↑ ISO/IEC 19500-2:2003, Information technology — Open Distributed Processing — Part 2: General Inter-ORB Protocol (GIOP)/Internet Inter-ORB Protocol (IIOP):
      a categorization of values operation arguments, typically covering both behavior and representation
    5. ↑ С. J. Date. On The Logical Differences Between Types, Values, and Variables // Date on database: Writings 2000—2006, Apress, 2006, ISBN 978-1-59059-746-0
    6. Харрисон Дж. Введение в Функциональное Программирование = http://www.cl.cam.ac.uk/Teaching/Lectures/funprog-jrh-1996/. — 1997. Архивировано 11 января 2015 года.
    7. ↑ Strachey, 1967, 3.6.4. Polymorphism, p. 36—37.
    8. ↑ Cardelli, 1991, 2. Typeful languages, p. 5.
    9. ↑ Дейт К. Дж., 2005.
    10. ↑ Type-Indexed Values

    Литература

    • Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с. — ISBN 5-8459-0788-8 (рус.) 0-321-19784-4 (англ.).
    • C. Strachey. Fundamental Concepts in Programming Languages. — 1967.
    • Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism. — ACM Computing Surveys, 1985. — С. 471—523. — ISSN 0360-0300.
    • Лука Карделли[en]. Typeful programming (англ.) // IFIP State-of-the-Art Reports. — Springer-Verlag, 1991. — Iss. Formal Description of Programming Concepts. — P. 431–507.
    • Pierce, Benjamin C. Types and Programming Languages. — MIT Press, 2002. — ISBN 0-262-16209-1.
    • Luca Cardelli. CRC Handbook of Computer Science and Engineering. — 2nd. — CRC Press, 2004. — ISBN 158488360X.
    • Zhe Yang. Encoding Types in ML-like Languages. — Department of Computer Science, New York University, (c) ACM, 1998.

    wiki.sc

    Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *