Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 121

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 121 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 1212019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Объект класса Реп иллюстрируется в разделе 11.6.2. Заметим, что точки используются для разделения сообщений, передаваемых разным методам и размещенных на соседних строках. Это похоже на использование точек с запятой лля разделения операторов в программах на языке Рааса 1. 11.5.2. Методы Общая синтаксическая форма метода в языке ЗшаИга)к имеет следующий вид: шаблон сообщения [)временные переменные )[ операторы Здесь квадратные скобки являются метасимволами. Это значит, что все, находящееся внутри этих скобок. является необязательным.

Поскольку в языке Бща!Вайс нет объявлений типов, при наличии временных переменных они только перечисляются в списке. Временные переменные существуют только во время выполнения метода, в котором они перечислены. В конце метода нет никакой пунктуации, Шаблон сообщения соответствует заголовку функции в таком языке, как С. Шаблоны сообщений, являющиеся прототипами сообщений, могут иметь одну из двух основных форм. Для унарных или бинарных сообщениЯ включается только имя метода. Для сообщений из ключевых слов шаблон сообщения состоит только из ключевых слов и имен формальных параметров. 11.5. Введение в язык Зва!11а1[г Значение, возвращаемое методом, отмечается путем добавления к описывающему его выражению символа (").

Во многих случаях это — последнее выражение в методе. Если в методе не указано возвращаемое значение, то объект-получатель сам по себе является возвращаемым значением. Шаблон сообщения для унарного сообщения — это просто имя метода. Ниже приведен пример унарного метода; сиггепГТоса1 "(о1с)Тога1 + пеиуа1ие) Этот метод, названный сиггепгтога1, возвращает значение выражения о1с)Тоса1 + пекЧа1ие. Бинарные методы в основном используются лля вычисления арифметических операций, определенных ранее, так что они здесь не обсуждается.

Общий вид шаблона сообщений, состоящих из ключевых слов, таков: ключ 1:параметр 1 ключ 2:параметр 2 ... ключ и:параметр и Рассмотрим следующий пример метода из ключевых слов, который не возвращает ника- кого значения: х: хСоогс) у: уСоогс) оигреп ирг сото хСоогс)буСоогс)г с)оип. В этом методе, соответствующем переключателю сообщения х: у:, объекту опг Реп передаются сообщения ир, сото (которое использует лва параметра хСоогс) и уСоогс)) и с)окп. Шаблоном сообщения является просто список пар, состоящих из ключевых слов и имен формальных параметров в методе. Пример сообщения лля этого метода приводится ниже: оигреп х: 300 у: 400 Дополнительные свойства методов, включая временные переменные, обсуждаются в разделе 1 !.5.6.

) 1.5.3. Операторы присваивания В языке Ята))гайс операторы присваивания похожи, по крайней мере внешне, на операторы присваивания в таких языках, как Раяса1 и С. Любое выражение сообщения, литеральный объект или имя переменной может появляться в правой части оператора присваивания. Левая часть является именем переменной, а оператор обозначается символами <-, как в следующем примере: гога1 <- 22.

аию <- гога1 Конкретный объект, на который ссылается переменная, изменяется, когда эта переменная появляется в левой части оператора присваивания. В данном случае переменная гоГа1 назначается ссылкой на объект 22. Затем переменная аию назначается ссылкой на этот же объект. Эта операция тесно связана с присваиванием указателей в языках Равса1 и Ас)а. Напомним, что все метолы перелают информацию назад отправителю, пославшему им сообщение. Чтобы сохранить возвращенную информацию, выражение сообщения помеща- 466 Глава 1 ! .

Поддержка объектно-ориентированного программирования э-;я в левой части оператора присваивания некоторой переменной. Эта переменная затем -ыначается ссылкой на возвращенную информапию, как в следующих примерах: пгзех <- спс[ех + 1. пе"Рау <- с[ее]нося огояяРау: 350.0 с]ерепс[епся: 4 3 первом операторе присваивания сообщение +1 передается объеюу, на который ссылается -<ременная 1п<[ех. Переменная зпс[ех назначается ссылкой на новый объект, являющийся тез)льтатом выполнения метода +. Во втором примере сообщение из ключевых слов :г=яярау: 350.

0 с]ерепс]епгя: 4 перелается методу огояяРау:<[ерепс]епгя: объекта с[ес[иося. Переменная песрау назначается ссылкой на объект, возвращаемый обьектом =еоиог. Легко понять, что язык 5ша]кайс (в соответствии с нашим определением) является ;чперативным языком, поскольку вычисления производятся с помощью выражений и . ператоров присваивания, а результаты хранятся в переменных. 11.5.4. Блоки и управлвкзщив структуры Один из наиболее необычных аспектов языка Бша!]гайс заключается в том, что операторы языка не обеспечивают создание управляющих структур.

Эти структуры формируются с помощью фундаментальной объектно-ориентированной парадигмы — передачи ;ообщений. Блоки позволяют объединять выражения в группы, которые можно использовать для ;оздания управляющих конструкпий. 11.5Л.1. Б Блок — это безымянный литеральный объект, содержащий последовательность выражений. Блоки являются экземплярами класса 01оох.

Сообщение можно послать блоку. поместив его непосредственно после блока. Блок определяется внутри квадратных скобок, а его компоненты, являющиеся выражениями, отделяются друг от друга точкой, как в следующем примере: [зпс]ех <- зпс]ех + 1. яцв <- яив + 1пс]ех] Выражения в блоке являются отложенными во времени действиями, поскольку они не выполняются во время их встречи в программе; вместо этого они выполняются, только когда блоку передается унарное сообщение ча1ие, определенное в классе В1осх. Например, [яив <- яив + 1пг]ех] ча1ие передает сообщение ча1ие блоку, вызывая его выполнение.

После завершения выполнения блока возвращается значение последнего выражения в нем. Блоки можно присваивать переменным и выполнять, передавая переменной сообщение ча1ие, как показано в следующем выражении ас[о1пс[ех <- [яив <- яив + Бпс[ех] Выражение сообщения аг]<11пс]ех чаХие 1 1.5.

Введение а язык Зша[1)а[[г приведет к добавлению объекта Тпс[ех к объекту яцль Это выражение сообщения можно также присвоить переменной, как показано ниже: ас[с[1пс[ех <- [яцж + Тпс[ех] яцж <- а<[с]1пс[ех тга1ие Блоки всегда выполняются в контексте их определения, даже когда они передаются как параметры лругому объекту. Таким образом. они семантически связаны с параметрами. передаваемыми по имени. в языке А].00]. 60. Блоки можно рассматривать в качестве объявлений процедур, появляющихся где угодно. Полобно процедурам, блоки могут иметь параметры. Параметры блоков определяются в начале блока в разделе, который отделяется от остальной части блока вертикальной чертой [ [ ).

Спецификации формальных параметров требуют наличия двоеточия, приписанного слева к каждому параметру. Поскольку в языке Вва11га1]с не существует объявленных типов, спецификации содержат только имена формальных параметров, которые перечисляются безо всякой разделяющей пунктуации. В качестве примера блока с параметрами рассмотрим следующий фрагмент программы: [:х:у [ язв <- х + 10. соса1 <- яив * у] Блоки предоставляют программисту средства для объединения выражений в единый набор, поэтому они являются естественным средством формирования управляющих структур на языке Ьшайгайс 11.5.Я.2.

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

Этот метод опрелелен лля всех блоков, возвращающих булевские объекты. Метод и[з11еТгце: предназначен лля передачи сообщения та1ие обьекту, содержащему этот метод [слив или йа1ве), вызывая таким образом выполнение блока с параметрами, как в следующем примере; соцгс <- 1. ящл <- О. [соцп <= 20] "Блок с условием выхода иэ цикла" и[з11етгие: [яшп <- яцм + соцпг. Ссыпь <- соцпс + 1] "Тело цикла" Несмотря на то что этот код имеет необычный вид и осуществляет необычные операции, процесс. с помощью которого он выполняется, значительно отличается от процесса, используемого в императивных языках.

Цикл реализуется следующим образом. Блок, содержащий код для добавления значения переменной сорос к значению переменной яща и увеличения на единицу значения переменной сопла, являющийся сегментом кода, выполнение которого подлежит контролю, передается в качестве параметра методу н[з11еТгце: условного блока [соцпс <= 20) . Я63 Глава 11. Поддержка объектно-ориентированного программирования ' члоз нЬ11етгие: передает сообщение зга1ие условному блолу, вызывая таким обрач его вычисление.

Результатом этою вычисления является булевский объект. Если ре-ьтат — объект сгие, то метод нь11етгие: вызывает вычисление параметра. переданго с помощью сообщения нЬ11еТгие:. Его параметром является блок, содержащий -г дажения итерации. После их вычисления процесс повторяется с помощью повторной пег.дачи блока выражений условному блоку [соипг <= 20]. Повторение прекращается, ;;лн результатом вычисления блока [соипг <= 20] становится объект йа1яе. Предположим, что управляющим блоком в предыдущем примере был блок згпг <= 2], а не [соипс <= 20]. Ниже приведены результаты отслеживания спствий, которые производятся при выполнении модифицированного кода.

Здесь симз .л -> означает передачу сообщения, а комментарии разделяются кавычками. соипг <- 1 яип <- 0 яив <- яип + соипг. соипг <- соипг + 1) -> [соипг <= 2] хЬ11еггие че1ие -> [соипг <= 2] "значение, посланное методом нЬ11етгие" 'соипг <= 2) гегигпя сгие нЬ11еТгие еча1иасея [яив <- яив + соипс. соипг <= соил< + 1) (яив <- 1; соипг <- 2) "результат вычислений" яив <- яип + соипс. соипс <- соипс + 1] -> [соипс <= 2) хп11еТгие че1ие -> [соипс <= 2) "значение, посланное методом нЬ11еТгие" 'соипг <= 2] гегигпя сгие нЬ11еТгие еча1иасея [яив <- яив + соипс.

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

Тип файла
DJVU-файл
Размер
9,5 Mb
Тип материала
Высшее учебное заведение

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

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