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

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

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

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

-ыре игрока, использующие одну и ту же стратегию игры. Такую игру можно молели- -.- ть с помощью главного модуля, создающего семейство сопрограмм, каждая из кото- имеет свой набор карт. В таком случае главная программа может начать моделиро-ие. возобновив выполнение сопрограммы одного из игроков, которая в свою очередь, .: ззв ход, может возобновить выполнение подпрограммы следующего игрока, и так да:;. пока игра ие закончится. 5 же форму возобновления можно использовать и лля начала, и для продолжиения : зознения сопрограмм. допустим, что программные модули А и В являются сопрограммами. На рис.

8.4 по. чы два способа последовательного выполнения модулей А и В. На рис. 8.4, а выполнение сопрограммы А инициируется главным модулем. После не- -. рого периода выполнения сопрограмма А передает управление сопрограмме В. Косопрограмма В иа рис. 8.4, а впервые передает управление сопрограмме А, это озиа.;-. что сопрограмма А продолжает свое выполнение с того места. где она закончила . -. е предыдущее выполнение. В частности, ее локальные переменные сохраняют свои -э~ения, полученные ими во время предыдущего выполнения.

На рис. 8.4, б показана .:тернативная последовательность выполнения сопрограмм А и В. В этом случае глав.: ы модулем инициируется выполнение сопрограммы В. 3 отличие от образцов, показанных на рис. 8.4, сопрограмма часто имеет цикл, со.:гжаший возобновление. На рис. 8.5 показана последовательность выполнения при . ч сценарии. В этом случае сопрограмма А запускается главным модулем. Внутри .: . его основного никла сопрограмма А возобновляет выполнение сопрограммы В, кото:.

в свою очередь, возобновляет выполнение сопрограммы А в своем основном цикле. 3. Сопрограммы за аоаоаноата нз главного модуля а) б) Рис В.4. Две возлгожные поеаедоватезьноспги выпол- нения двук сопрограчч без циклов ° азоааампа — а нз глазного модуля Рис. В,В. Последоватезьноснгь выпглзненил сопрограмм с цикзачи звв Глава 8. Подлраграмаи Лроцесс абстрагирования прелставлен в языках программирования подпрограммами. -гезеление подпрограммы описывает действия, которые выполняет подпрограмма. =: г эв подпрограммы приводит к выполнению предусмотренных ею действий. Формальные параметры — это имена.

которые используются в подпрограмме лля .: = эок на фактические параметры, полученные при вызовах подпрограммы. Подпрограммы могут быть либо функциями, которые моделируют математические «кони и используются для определения новых операций, либо процелурами. опреде'. шими новые операторы. Локальные переменные в подпрограммах могут размещаться динамически в стеке, е'печивая поддержку рекурсии, или статически, обеспечивая эффективность и зависи:;ть локальных переменных от своей предыстории. Есть три основные семантические модели передачи параметров — режим ввола, реи вывода и режим ввода-вывода — и большое количество подходов к их реализации. При использовании параметров, передаваемых по ссылке, возникает совмещение ; еи между несколькими параметрами, а также между параметром и видимой нелокаль-.п переменной.

Доступ к нелокальной переменной обеспечивается несколькими разными способами: -:гез внешние объявления. блоки глобальных данных, внешние модули, а также через . -=тический и динамический обзор. Параметры, являющиеся именами подпрограмм, обеспечивают необходимый сервис, днако их иногда трудно понять. Непрозрачность заключается в среде ссылок, доступной -си выполнении подпрограммы, передаваемой в качестве параметра. В языках Ада и С++ допускается перегрузка подпрограмм и операторов.

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

Каковы три основные характеристики подпрограмм? Что означает выражение "активная подпрограмма'"? Что представляет собой параметрический профиль". Что такое протокол подпрограммы? Что такое формальные параметры? Что такое фактические параметры? Какие достоинства и недостатки имеют ключевые параметры? 389 Вопросы б. 8. 9. 1О. 390 Глава 8. Подпрограммы 11. 12. 13. 14. 15.

16, 17. 18. 19. 20. 21. Какие проблемы связаны с разработкой подпрограмм? Какие достоинства н недостатки имеют динамические локальные переменные? Каковы три основные семантические модели передачи параметров? Что такое режимы, концептуальные модели передачи, достоинства и недостатки методов передачи параметров по значению, по результату, по значению и резуль- тату, по ссылке и по имени? Каким образом возникают альтернативные имена при передаче параметров по ссылке? . В чем состоит отличие способов, которыми исходная версия языка С н язык АН$1 С работают с фактическим параметром, тип которого не идентичен типу соответ- ствующего формального параметра? В чем заключается проблема, связанная с подходом, использованным в языке Аба, позволяюшим разработчикам средств реализации языка самим решать, какие па- раметры передавать по ссылке, а какие — по значению и результату? Назовите два основных вопроса, связанных с методами передачи параметров.

Сформулируйте два основных вопроса, возникаюших при передаче имен подпро- грамм в качестве параметров. Дайте определение понятий теневое и глубокое связывание для сред ссылок под- программ, передаваемых в качестве параметров. Что такое перегруженная подпрограмма? Что такое параметрический полиморфизм? Что приводит к созданию экземпляров шаблонной функции в языке С++? Дайте определение понятий раздельная и независимая компитлция. Какие вопросы связаны с разработкой функций? Чем сопрограммы отличаются от обычных подпрограмм? Приведите аргументы "ы" и "против" пользовательской программы, создающей дополнительные определения для существующих операторов, как зто сделано в языках Ада и С++. Считаете лн вы такую определяемую пользователем перегрузку операторов хорошим или плохим способом программирования? Обоснуйте ваш ответ, В большинстве реализаций языка гОйТКАХ 1Ч параметры передавались по ссылке с использованием исключительно передачи пути доступа к данным.

Укажите достоинства и недостатки этого проектного решения. Приведите аргументы в поддержку решения разработчиков языка Ада 83 позволить создателям средств реализации языка самим делать выбор между реализацией режима зп оцп передачи параметров с помощью копирования или с помощью ссылок. Язык РОКТКА)Ч имеет две слабо отличающиеся разновидности блоков СОММОРп пустой и именованный.

Одно различие между ними заключается в том, что пустой блок СОММОМ не может быть инициализирован во время компиляции. Можете ли вы определить причину, по которой пустой блок СОММОМ разработан именно таким образом? Подсказка: это проектное решение было сделано в самом начале разраоотки языка ГОКТКА)ч, когда память компьютеров была довольно маленькой. Допустим, вы хотите написать подпрограмму, печатающую заголовки на новых страницах вывола вместе с номерами страниц, начиная с ! при первом вызове и увеличивая номер на 1 при каждом последующем выюве. Можно ли это сделать в языке Рааса) без параметров и без ссылок на нелокальные переменные? Можно ли это сделать в языке ГОКТКА)ч? Можно ли это сделать в языке С? В языке ГОКТКА)ч подпрограммы могут иметь несколько входных точек. Когда это свойство бывает ценным? Напишите на языке Рааса! процедуру АООЕК, складывающую два целочисленных массива.

Она должна иметь только два параметра, означающих два складываемых массива. Второй массив также должен содержать результат, полученный на выходе. Оба параметра должны передаваться по ссылке. Проверьте процедуру АВАЕВ с помощью вызова АВАЕВ(А, А). Здесь переменная А — это массив, который складывается сам с собой. Объясните результаты выполнения этой программы. Решите задачу 7 с помощью языка С. Рассмотрите процедуру В16ЯОВ, из раздела 8.5.2.5. Замените два оператора присваивания значений элементам массива В1ЯТ следующими: :1ЯТ [1]: = 3 1ЯТ [2]: = 1 Выполните новую программу вручную при следующих предположениях и сравните с результирующими значениями в массиве 11ЯТ в подпрограмме В16ЯОВ после возвращения из подпрограммы ЯОВ.

9.!. Параметры передаются по значению. 9.2. Параметры передаются по ссылке. 9.3. Параметры передаются по имени. 9.4. Параметры передаются по значению и результату. Рассмотрите следующую программу, написанную с использованием синтаксиса языка С: .а и() [ Епп ча1ие = 2, 11лт[5] = (1, 3, 5, 7, 9); анар(ча1пе, 11вт[0)); виар(11ат[0] 11вт [1] ] г анар(ча1пе, 11эт [ча1ие) ) Г чоЫ виар( Епс а, Дпс Ь) ( 1пт теврг гетр = а; а = Ь 39з ° "ппжнения 11.

12. 13. 14. 15. Ь = гетр! ) Каковы все значения переменных на1ие и 11вс при каждом из трех вызовов функции в;. ар для каждой из следующих моделей передачи параметров? 10.1. Передача по значению. 10.2. Передача по ссылке. 10.3.

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

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

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

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