Инструменты пользователя

Инструменты сайта


examination:c:question8

Вопрос №8. Типы данных. Типизация.

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

По способу определения типов данных языки программирования разделяются на:

  1. Языки с полиморфным типом данных ( в этих языках переменная может принимать значение любого типа, в параметры функции можно передавать значения любых типов и сами функции так же могут вернуть значения любых типов; сопоставление типов значений переменных и параметров функций с применяемыми к ним операциями производится непосредственно при выполнении этих операций. Такой порядок связывания переменных с их типами называют динамической типизацией, то есть происходящей во время исполнения. Языки программирования, поддерживающие только динамическую типизацию называют условно «бестиповыми». Тем не менее это название не означает отсутствие понятия типов в данном языке.

  2. Языки с неявным определением типов ( в таких языках тип данных явно не задается, но типы данных определяются некоторыми дополнительными атрибутами переменных)

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

examination/c/question8.txt · Последние изменения: 2014/01/15 08:10 (внешнее изменение)