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

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

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

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

Почему цели указателей большинства языков ограничиваются обьектамн одного типа? 26. Что такое ссылки в языке С++ и как они обычно используются? Почему в языке С++ в качестве формальных параметров лучше использовать ссылки, а не указатели? Назовите преимушества ссылок в языке !ача по сравнению с указателями в других языках. 27. 28. 29. Опишите ленивый и энергичный подходы к освобождению памяти, занятой мусором.

Чем различаются ссылки в языках С++ и 1ача? Почему арифметические операции над ссылками в языке Зача не имеют смысла? 30. 31. Назовите аргументы "за' и "против*' представления булевских значений одним би- том памяти. Почему десятичное значение неэкономно использует область памяти? В языке СОВО1. используется несколько различных методов хранения десятичных чисел в памяти.

Объясните формат н цели каждого из них. Сравните методы надгробий, а также ключей и замков, используемых для предот- вращения возникновения висячих указателей. В качестве критериев при сравнении используйте належность и стоимость их реализации. Разработайте набор простых тестовых программ для определения правил совмес- тимости типов доступного вам компилятора языка Рааса! или С. Напишите отчет о полученных вами данных. Какие недостатки имеются у неявного разыменования указателей, но только в оп- ределенных контекстах? Рассмотрите, например, неявное разыменование указателя на запись языка Ада при использовании его для обрашения к полю записи.

Обоснуйте сушествование оператора - > в языках С н С++. 3. 8. 9. 272 Гдово 5. Типы данных Определите, какая из альтернатив реализации, описанных в разделе 5.10.4, исполь- зована в лоступиом вам компиляторе языка Рааса!. Объединения языков С и С++ отделены от записей этих языков, а в языках Рааса! и Ада эти типы ланных объединены. В чем заключаются достоинства и недостатки обоих проектных решений? 10. Определите, реализована ли в доступном вам компиляторе языка Рааса! процедура с(1врове. 11.

Определите, реализована ли в доступном вам компиляторе языка С функция аггее. !2. Предположим, что существует язык с определяемыми пользователем перечисли- 13. Многомерные массивы могут записываться в память по строкам, как в языке 14. В языке Вцпоцййз Ех(евдо А!.ОО!. матрицы заносятся в память как одномерные 17. Если вы имеете доступ к компилятору, в котором пользователь может указывать, 18. Проанализируйте и запишите результат сравнения функций та11ос и бгее языка 19. Проанализируйте и запишите результат сравнения использования указателей языка 15. 1б.

мыми типами и возможностью перегрузки перечисляемых величин; т.е. язык. в ко- тором один литерал может включаться в лва различных перечислимых типа: куре со1огв = (гес(, Ь1це, дгееп); аоос( = (Ларру, апдгу, Ь1це); Использование константы Ь1ие не может подвергаться проверке типов. Предло- жите метод, позволяющий проверку типов, но не запрещающий подобную перегрузку. Разов), или по столбцам, как в языке гОКТВА1Ч. Напишите функшао лоступа лля обоих методов дяя трехмерного массива. массивы указателей на строки матриц„причем последние интерпретируются как одномерные массивы значений. В чем заключаются достоинства и недостатки та- кой схемы? Напишите программу, выполняющую умножение матриц, на некотором языке, в котором существует проверка выхода индекса за пределы допустимого лиапазона, для котс!зой с помощью вашего компилятора можно получить версию вашей программы ел машинном языке или языке ассемблера.

Определите число команл. необходимых для проверки выхода индекса за пределы допустимого лиапазона, и сравните его с числом команд а процессе умножения матриц. На языке Рааса! напишите программу, содержащую следующие обьявления: чаг А, В: аггау ! 1 ..

10 ! ой впседег; С: аггау (1..10) оЕ дпведег; 0 : аггау [1..10) о1 ьпседег( Включите в программу команды, определяющие для каждого из массивов совмес- тимые с ним массивы. желательна ли проверка выхода индекса за пределы допустимого диапазона, на- пишите программу с многократным доступом к матрице и измерьте время выпол- нения программы с этой проверкой и без нее. С с операторами пеи и с(е1еге языка С++. В качестве основного критерия срав- нения используйте безопасность. С++ и ссылок в языке )ача при обращении к динамическим переменным.

В качест- ве основных критериев сравнения используйте безопасность и удобство. 20. Напишите краткое исследование потерь и приобретений, произошедших вследствие отказа разработчиков языка 3ача включить в язык указатели из языка С++. 21. Назовите аргументы "за" и "против" неявною освобождения кучи в языке Зача по сравнению с явным освобожлением динамической памяти, требуемым в языке С+в. ги Глава 5.

Типы данных фрндрвк (фриц) Л. Бауэр (Глеб(сй (Ег((з) (,. Вацег) Фрнц Бзузр нз Мюнхене вместе с Клаусом Сзмельсоном (К!аиз Загпецоп) в первой полоенне т950-х годов рвзработзлн злгеб- рзнческнй язык, который мог реелнзовывэться непосредст- венно аппвратным обеспеченн- ом Однако свой нэнболее знвчн- тельный вклад в разработку языков прогрзммнровення Фриц Бауэр сделал. руководя комэн- дой рэзрэботчнков языке д!.001. Выражения и операторы присваивания К- ак можно понять из названия, основное внимание в этой главе уделяется выражениям и операторам присваивания.

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

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

Еше одним моментом, не затронутым в ланной главе. являются рассмотренные в главе 5 выражения, сопоставляюшие символьные строки с образцом. 6.1. Введение Выражения являются основными средствами вычислений в языке программирования. Для программиста важно понимать и синтаксис, и семантику выражений. Методы описания синтаксиса уже приводились в главе 3, поэтому в ланиой главе основное внимание обращается на семантику выражений — т.е. на их смысл, опрелеляемый тем. как именно они вычисляются. Для того чтобы понять, как вычисляются выражения, необходимо ознакомиться с порядком вычисления операторов и операндов.

Порядок вычисления операторов в выражении определяется правилами ассоциативности и приоритетами. Порядок вычисления операнлов в выражениях часто не упоминается разработчиками языка, хотя он и может влиять на значение выражений. В этом случае возникает ситуация, позволяющая прграммисту получать в различных реализациях языка различные результаты. Кроме т," с семантикой выражений связаны несоответствие типов, приведение типов и сокраь.е-. ное вычисление. Сущность императивных языков программирования заключается в господств) к роли операторов присваивания. Цель оператора присваивания — изменить значенпе —.- ременной. Таким образом, неотьемлемой частью всех императивных языков являе-..

концепция переменных, значения которых изменяются во время выполнения програч ." (Неимперативные языки программирования иногла содержат такие переменные осе, типа, как параметры функций в функциональных языках программирования.) Выполнение оператора присваивания можно просто свести к копированию знач;- из одной ячейки памяти в другую. Однако в большинстве случаев операторы присвз, .-.. ния содержат выражения, в которые входят операторы, вызывающие копирование зн ний в процессор, гле над ними выполняются некоторые операции, а результаты коп; -. ются обратно в память. 216 Глава 6. Выражвния и операторы прмсваиво а Простой оператор присваивания задает выражение, подлежащее вычислению, и целевую ячейку памяти, в которую будет помещен результат вычисления этого выражения.

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

у которого есть три операнда. Примером языков, содержащих тернарные операторы, являются языки С, С++ и )ата, рассматриваемые в разделе 6.2.1.4. В большинстве императивных языков программирования бинарные операторы являются инфиксными, т.е, они появляются между операндами. Одним из исключениЯ является язык Рег1, в котором есть префиксные операторы, т.е. предшествующие своим операнлам. Цель арифметических выражений — указать арифметическое вычисление. Реализация такого вычисления лолжна выполнять два действия, 'выбирать операнды (обычно из памяти) и выполнять над ними арифметические действия. В следующих разделах мы разберем подробности обшей структуры арифметических выражений в императивных языках программирования. Ниже перечислены основные вопросы разработки, характерные лля арифметических выражений, причем все они рассматриваются в этом разделе. ° Каковы правила приоритетов операторов в языке? ° Каковы правила ассоциативности операторов в языке? ° Каков порядок вычисления операндов? ° Имеются ли у вычислений операндов побочные эффекты? ° Допускает ли язык перегрузку операторов, определяемую пользователем".

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

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

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

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