Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 67

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 67 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 672019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 67)

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

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

Вся эта деятельность по определению объекта группа представляет собой разработку спецификации для абстрактного типа данных груплсе (то есть разработку необходимых атрибутов н операций). Реализация объектов типа группа происходит на следующем этапе конструирования программы. Выбор конкретного вида реализации для объектов этого типа должен быть сделан на основе типов данных, определенных в языке; также могут быть использованы другие абстрактные типы данных, например студена, преподаватель и т. д. Так, имя преподавателя может быть реализовано как строка длиной не более 10 символов или как целое число (идентификационный номер, присвоенный преподавателю), в то время как список зачисленных на курс студентов может быть представлен одномерным массивом целых чисел (идентификационные номера студентов).

Когда реализация типа данных группи определена, можно переходить к реализации операций над объектами этого типа, например, в виде подпрограмм, аргументами которых являются эти объекты. В американских университетах студенты могут сами выбирать курсы, которые они желают прсклушать, заранее записавшись на них. — Примеч. науч ред. Глава 6. Инкапсуляция 237 Если программа достаточно велика, над другими ее частями могут работать другие программисты; но теперь они также могут использовать тип данных группа, В их распоряжении находятся определенные ранее представления этого типа и подпрограммы, позволяющие манипулировать группами (объектами данных типа группа), используя спецификацию на подпрограммы, совершенно не заботясь о том, как они на самом деле реализованы.

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

Одна из задач, стоящих в наше врсмя персд разработчиком языка, — добиться того, чтобы различия между формами представления типов данных не были заметны для программиста, использующего эти типы данных при создании программ. Иначе говоря, синтаксические структуры языка, используемыс для работы с целочисленными переменными и с переменными типа группа, не должны различаться. Подобным же образом сигнатуры операций целочисленного сложения словить: целое х целое -~ целое и добавления студента в объект раздел курса добавить к курсу; сгудек1 х группа — + группадолжныобладатьпохожимсинтаксясом и иметь сопоставимую семантику.

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

3. Объявления типов. В языке предусмотрена возможность определения новых типов и операций над ними. Понятие абапрактиих типов данных (см. раздел 6.2), позволяющее программисту создавать новые типы данных, реализовано в языках типа Ада и С. 4. Наследование. Возможности определения новых типов данных и операций над ними значительно расширились благодаря использованию понятий объектно-ориентированного программирования и наследования. Кроме того, появилась возможность автоматической проверки правильности использования этих типов.

Концепция наследования рассматривается отдельно в главе 7. 238 Глава б. Инкапсуляция 6.1. Структурированные типы данных Структура данных — зто такой объект данных, который содержит другие объекты данных в качестве своих элементов или компонентов. В предыдущей главе мы рассматривали понятия объектов и типов данных на простых примерах элементарных типов данных. В этом разделе рассматриваются аналогичные вопросы, но уже в более сложном случае структур данных; в частности, обсуждаются такие важные типы данных, как массивы, записи, стеки, списки и множества. 6.1.1.

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

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

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

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

Б,1. Структурированные типы данных 239 Тип каждого компонента. Структура данных является однородной (гомогенной), если все ее компоненты одного типа. В противном случае она называется неоднородной (гетерогениой). Массивы, множества и файлы обычно однородны, в то время как записи и списки, как правило, неоднородны. Имени, используемые для выбираемых компонентов.

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

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

Эти расширенные формы могут рассматриваться как отлельные типы пли просто как базовые последовательные типы, в которых компонентами являемся структуры данных того же типа. Например, двухмерный массив (матрицу) можно рассматривать как отдельный тип (как в языке РОСТКАХ й(1 з )) или как вектор векторов (как в С дО ) (й) ), то есть вектор, компонентами которого (строками или столбцами) являются также векторы. Для записей тоже имеются варианты — альтернативные множества компонентов, из которых только один включен в каждый объект данных этого типа. Операции над структурами данных Спецификация области определения и диапазона значения для операций над структурами данных задается почти так же, как и в случае элементаРных типов данных. Большое значение имеют следующие новые классы операций, специфические для структур данных.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее