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

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

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

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

Краткий обзор языка. Уникальность языка Вп>айга!к определяют следующие свойства, благодаря которым он отличается от остальных языков, описанных в этой кни~е. + Среда разработки. Яп>айса)к разрабатывался как целая система: язык, компьютер и среда программирования, Однако в данной книге мы рассматриваем Б>вайса!к только как язык программирования и совершенно не касаемся вопросов, связанных со срепой программирования, + Мияимольвый языкрпзрпботки, Небольшой бжп>вый язык определяет Яшайгай.

По существу, все, что можно делать в Вшайгайг, — это разработать класс как подкласс других классов и к каждому из ра>работанных классов присоединить метолы, Основные операторы Вшайгайг определяют присваивание и последовательное выполнение лейс>.вий. Истинная мощь языка заключается в механизме параметрических вызовов, называемых сооб>цениями. Г1ри помощи сообщений можно определять структуры управления, подобные нашим обычным конструкциям > ~ и н!»1е. Я>па!1!а!к поставляется с препон ределсиным набором определений классов, па>шсанных на языке Вшайгайц Котла Бшайга!к устанавливается на коыпьютер, то создается образ пустого окружения путем включения всех этих определений. При вызове интерпретатора Вп>айса!к вы получаете свою собственную копию этого образа.

Внутри этого образа вы строите новые классы и модифицируете существующие классы добавлением или изменением методов. Системному администратору легко построить систему В>вайса!к с альтернативным набором предопределенных опрелслений классов, так что не совсем понятно, что следует понимать под языком Яп>а! Ма!к. В данной книге мы называем языком Яшайга!к набор предопределенных классов. 2.2. Наследование 321 + Выполнение програииы 5та!!га1н, Модель выполнения для БшайсаПс основана на коммуникационной модели (сопшшшсас)оп шос(е1). Данные в Бша11сайс состоят из объектов, а методы рассматриваются как сообщения, посылаемые объектам. Так, ! + 2 означает, что сообщение «+» с параметром 2 послано целочисленному объекту 1.

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

Как правило, используется динамическая сборка мусора, хотя семантика необходимой сборки мусора в языке не специфицирована. 7.2.5. Объекты и сообщения Яп1айсайс представляет альтернативный подход к разработке объектов и методов, значительно отличающийся по своей идеологии от моделей наследования, представленных ранее в этой главе для языков Ас(а и С++.

Идея Бша11са! к принадлежит Алану Кею из Хегох Ра!о А!со КезеагсЬ Сепсег, он предложил ее в начале 70-х гг., но окончательный вариант вобрал в себя многочисленные дополнения других разработчиков. Ягпайсайс был разработан как целая вычислительная среда для персонального компьютера. Поэтому он включал в себя не только язык для представления алгоритмов, но и среду вычисления, состоящую из разделенного на окна (ч !пс(овз) экрана монитора и мьппи рабочей станции Хегох А1со.

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

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

Методы можно определять для отдельных экземпляров класса. 322 Глава 7. Наследование 3. Передача сообщений. Для выполнения действий объектам передаются методы в форме сообщений. Вместо того чтобы связывать с функцией на(юр параметров, как это делается в большинстве других языков, в 5пт а!1[а!)т функция (то есть метод) связывается с объектом данных.

Эта связь метода с объектом называется сообщением. В Вша!1[а!к существуют три типа сообщений; 1. Унарное сообгдсние — это метол, не имеюгдий параметров. Например, для создания объектов в большинстве классов используется встроенный метод пем х 5ет пен В данном случае переменной х присваивается вновь создаваемый объект класса 5еь. Теперь х является экземпляром объекта класса 5е[.

2. Бинарное сообщение, как правило, используется для арифметических операций. Выражение 3 + б соответствует бинарному методу «+», посланному объекту 3 с параметром б. Метод «+» возвращает объект 9 как результат данного сообщения. 3. Ключевые сообщения ведут себя примерно так же, как перегруженные функции в языках типа Аг!а и С++. Например, для присвоения значения третьему элементу массива х следует сначала создать массив с нужным количеством элементов, а затем выполнить операцию присваивания: х Янган пеи 10 х аЫЗ ро[.42 Сначала метод пе»с с параметром И посылается классу Яггау для создания массива из десяти элементов, который присваивается переменной х. Вызывается ключевой метод а[ и ри[: для присваивания третьему компоненту массива х значения 42.

Название а [; рис: метода этого оператора присваивания образуется путем конкатенации ключевых слов (аг; и рог; ). Другой метод, а[:, посланный экземпляру массива, извлекает значение соответствующего элемента массива, Использование символа «» для обозначения операции присваивания объясняется некоторыми фактами из истории развития компьютерной техники, Исходно операция присваивания в Вша!![а!к обозначалась символом +-, который в 60-е и 70-е гг.

был представлен на клавиатурах той жс клавишей, что и символ «», поэтому внутреннее определение этих символов было одинаковым. Со временем символ < — исчез с клавиатуры, но в Вша!1[а!)г используется символ, который соответствует той же клавише. Аналогично операция, указывающая возвращаемое каким-либо методом значение, исходно обозначалась символом Т, который размещался натой же клавише, что и символ «». Со временем этотсимвол также исчез с клавиатуры. Последовательности операторов в Вша!1[а!)г могут быть выполнены как блоки, например: [ .покаянная переиенная ~ оператор, оператор,3 где локальная переиеииая — это необязательная локальная переменная, объявленная в блоке. (Первый символ в блоке необходим для устранения синтаксической неоднозначности в определении блоков.) Выполнение блока операторов происхо- 7.2.

Наследование 323 дит посредством передачи метода ча1ые этому блоку, а результатом выполнения является последнее выражение блока. Так !х! х ['Зто строке']. "Гереиенной х присвоен данный блок." х чатое ргтпт ! "Вычисляется блок переиенной х." означает следуюШее: 1) объявляется локальная переменная х; 2) переменной х присваивается блок; 3) метод х ча1ые возвращает строку Это строка, которая печатается методом ргт пЬ. В Яшайьайт комментарии обозначаются двойными кавычками. Символ! в ВшаПЬайс обозначает команду для выполнения предыдущей последовательности операторов.

Использование передачи ключевого параметра позволяет создавать многие широко используемые структуры управления. Предопределенное окружение ЯшаПГайт включает встроенный метод для работы с булевыми данными т ГТгые. 1ЕЕа1зе:. Каждое из этих ключевых слов получает в качестве параметра некоторый блок данных. Например, Ьгые тЕТгые:]ЕЕа1ве: вычислит блок 1ГТгые;, тогда как Еа1ее тЕТгые: тбра1ве: вычислит блок тбра1зе .

Записывая эти конструкции с использованием общепринятых отступов, подобных тем, что применяются в языке Равса], мы получим следующий синтаксис: х>2 т'гтгче. Сх болыве 2' ршптап] тГГа1ве; С х иен>ае или равен 2' ргтптв1] В данном случае метод > с параметром 2 передается объекту х. Метод > возвращает объект Ьгые или Еа1ве в зависимости от значения х, Этому булевому объекту затем передастся ключевой метод тГТгые;1ЕЕа1эе; с двумя блоками в качестве параметров.

В зависимости от того, какой был возвращен булев объект, выполняется блок т ЕТгые: или т Ера1зе:. (Метод рг]пГИ1 аналогичен методу ргтпЬ, за исключением того, что после напечатанного объекта он печатает также символ новой строки.) Алгоритм вычисления очень похож на вычисление оператора т Е-ЕЬеп-е] ее, но фактическое выполнение радикально отличается. Используя этот подход, можно аналогичным образом разработать циклические конструкции. Бшайсайс — единственный из описанных в нашей книге языков, полностью основанный на концепциях инкапсуляции и абстракции. Наследование в Бшаййайс является базовой характеристикой процесса вызова методов. Неупорядоченность в определении методов приводит к другой проблеме в определении методов — неоднозначности.

Например, рассмотрим следуюшие методы: .'Оасавсоге с1авв иегпобвгог: 'Нтвс'! ав9п: аЧв1ое Со: ЬЧатые вЧа1ые рю птв1 ! Ьо: аЧа1ые авйп; ЬЧа1ое вча1ые ршпш1 На первый взгляд это выглядит как неоднозначное определение метода аврп Ьо:. Тем не менее Ьо евро: — это совсем другой метод; вт> Оасавбоге авйп: 8 Со 9 ! Ехесо Ст оп Ьею ив... 324 Глава 7. Наследование 8 яг> Оагааеоге Го; 9 аярп В 1 Ехесыгтоп Ьер пя. 9 Очень важно, чтобы каждый ключевой метод использовал уникальный набор имен.

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

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

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