Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1страница 2страница 3 ... страница 6страница 7

1.7Базовые типы


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

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


  • Надёжность. Типы данных защищают от трёх видов ошибок:

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

  2. Некорректная операция. Позволяет избежать попыток применения выражений вида «Hello world» + 1. Поскольку, как уже говорилось, все переменные в памяти хранятся как наборы битов, то при отсутствии типов подобная операция была выполнима (и могла дать результат вроде «ello worldǼ»). С использованием типов (см. далее «Контроль типов») такие ошибки отсекаются опять же на этапе компиляции.

  3. Некорректная передача параметров. Если функция «синус» ожидает, что ей будет передан числовой аргумент, то передача ей в качестве параметра строки «Hello world» может иметь непредсказуемые последствия. При помощи контроля типов такие ошибки также отсекаются на этапе компиляции.

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

  • Документация. Использование того или другого типа данных объясняет намерения программиста. Например, enum и bool в языке не обязательны и вместо них может быть int — но оба они означают, что перед нами не целая величина, а одно из нескольких предопределённых значений.

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


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

  • Простые.

    • Перечислимый тип. Может хранить только те значения, которые прямо указаны в его описании.

    • Числовые. Хранятся числа. Могут применяться обычные арифметические операции.

      • Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.

      • Вещественные: с запятой (то есть хранятся знак и цифры целой и дробной частей) и с плавающей запятой (то есть число приводится к виду m*be, где m — мантисса, b — основание показательной функции, e — показатель степени (порядок) (в англоязычной литературе экспонента), причём в нормальной форме 0<=mнормализованной форме 1<=mцелое число и хранятся знак и числа m и e).

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

    • Символьный тип. Хранит один символ. Могут использоваться различные кодировки.

    • Логический тип. Имеет два значения: истина и ложь, при троичной логике может иметь и третье значение — «не определено» (или «неизвестно»). Могут применятьсялогические операции. Используется в операторах ветвления и циклах. В некоторых языках является подтипом числового типа, при этом ложь=0, истина=1.

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

  • Составные (сложные).

    • Массив. Является индексированным набором элементов одного типа. Одномерный массив — вектордвумерный массив — матрица.

      • Строковый тип. Хранит строку символов. Аналогом сложения в строковой алгебре является конкатенация (прибавление одной строки в конец другой строки). В языках, близких к бинарному представлению данных, чаще рассматривается как массив символов, в языках более высокой абстракции зачастую выделяется в качестве простого.

    • Запись (структура). Набор различных элементов (полей записи), хранимый как единое целое. Возможен доступ к отдельным полям записи. Например, struct в C или record в Pascal.

    • Файловый тип. Хранит только однотипные значения, доступ к которым осуществляется только последовательно (файл с произвольным доступом, включённый в некоторые системы программирования, фактически является неявным массивом).

    • Класс.

  • Другие типы данных. Если описанные выше типы данных представляли какие-либо объекты реального мира, то рассматриваемые здесь типы данных представляют объекты компьютерного мира, то есть являются исключительно компьютерными терминами.

    • Указатель. Хранит адрес в памяти компьютера, указывающий на какую-либо информацию, как правило — указатель на переменную.

    • Ссылка.

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


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

  • Статическая типизация — контроль типов осуществляется при компиляции.

  • Динамическая типизация — контроль типов осуществляется во время выполнения.

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

  • Строгая типизация — совместимость типов автоматически контролируется транслятором:

    • Номинативная типизация (англ. nominative type system) — совместимость должна быть явно указана (наследована) при определении типа.

    • Структурная типизация (англ. structural type system) — совместимость определяется структурой самого типа (типами элементов, из которых построен составной тип).

  • Слабая типизация — совместимость типов никак транслятором не контролируется. В языках со слабой типизацией обычно используется подход под названием «утиная типизация» — когда совместимость определяется и реализуется общим интерфейсом доступа к данным типа.




<предыдущая страница | следующая страница>


Структуры и типы данных языка программирования

Позднее, в конце 1960-х годов, тот же учёный исследовал полиморфные системы типов. Позже, в 1970-х годах, Робин Милнер предложил практическую реализацию расширенной системы полимор

547.99kb.

13 10 2014
7 стр.


Краткая теория по курсу информатика Типы данных языка программирования Turbo Pascal

В языке программирования Turbo Pascal все данные, используемые программой должны принадлежать к какому-либо типу данных. Некоторые из них

103.03kb.

13 10 2014
1 стр.


1. Среда языка программирования Pascal abc

Блеза Паскаля. На основе языка Паскаль в 1985 г фирма Borland выпустила версию Turbo Pascal версии с этого времени язык Паскаль используется во всем мире в учебных заведениях в кач

537.72kb.

02 10 2014
4 стр.


О. В. Прохорова основы программирования. Часть «Основы языка С++»

Разработчиком языка Си++ является Бьерн Страуструп. В своей работе он опирался на опыт создателей языков Симула, Модула 2, абстрактных типов данных. Основные работы велись в исслед

1072.81kb.

10 10 2014
13 стр.


Использование языка программирования perl для ввода данных в электронный каталог ирбис

В данном докладе рассматриваются проблемы быстрого ввода данных в электронный каталог Ирбис, и пути их решения с помощью программы ms excel 2007 и кода Perl

89.57kb.

26 09 2014
1 стр.


1. Синтаксис и семантика языков программирования. Алфавит языка Borland Pascal. Описание синтаксиса языка: синтаксические диаграммы

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

424.66kb.

09 10 2014
2 стр.


Ещё о типах данных Типы, определяемые пользователем

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

137.2kb.

13 10 2014
1 стр.


Пояснительная записка к курсовой работе по дисциплине «Структуры и алгоритмы обработки данных»

Исследование эффективности алгоритмов сортировок для различных структур и размерностей данных 9

488.85kb.

11 10 2014
8 стр.