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

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

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

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

Операнды в выражениях вычисляются слева направо? 14.2. Операнды в выражениях вычислаются справа налево". 15. Доп>стим, что ф>нкция бцп языка С была определена сяедуюшим образом: Дпг 1цп(хпс 'й) ( *.'с += 4 г гвгигп 3 (*К) — )г ) 1б. 17. 18. 300 11. 12. 13.

14. Укажите порядок вычисления выражений в упражнении!О, предполагая, что приоритетов не сушествует, а ассоциативность — та же. Создайте описание в виде формы ВЛ(Е правил приоритета н ассоциативности, определенных для выражений в упражнении ) О. Единственными возможными именами операндов предполагаются а, Ь. с, с( и е. Используйте грамматику из упражнения ) 2 для создания дерева синтаксического анализа для выражений из упражнения ! О. Допустим. что функция ГОМ была определена следуюшим образом: Гипаасйоп ГОМ(чаг К : дпсвдвг) : дпсвавг; Ьвахп К := К + 4; ГОМ := 3 " К " 1 а; Предположим, что функция ГОМ следуюшим образом используется в программе: Предположим, что функция 1 оп следующим образом используется в программе; чойг1 паап () дпс 1 + 10, 3 = 10, ашк1, яцт2) аап1 = (2 / 2) + Гоп(41); вцш2 = йип (аб) + (3 / 2); Для определения значения переменных вцп1 и вцш2 запустите программу на компьютере.

Объясните результаты. Назовите свой главный аргумент против (или за) правил приоритетов операторов в языке АР1.. Для некоторого языка, по вашему выбору, составьте список символов, которые можно использовать для устранения всех перегрузок операторов. Определите в двух языках, по вашему выбору, порождают лн явные сужаюшие преобразования типов сообшение о потере значимости преобразовываемой вели- чины.

Глава 6. Выражения и операторы присваивания 19. Должны ли оптимизирующие компиляторы языков С и С++ иметь возможность изменить порядок вычисления подвыражений в булевских выражениях? Почему". 20. Ответьте на прелыдуший вопрос по отношению к языку Аг)а. 21. Рассмотрим следующую программу на языке С: зпс бпп (ьпС *2) ( *з += 5; кесцки 41 ) згоЫ пазп() ( зпсх =- 3; х = х + йип(ах) г ) Чему равно значение переменной х после выполнения присваивания в функции вадп в слелуюших случаях? 2!.1.

Операнды вычисляются слева направо. 21.2. Операнды вычисляются справа налево. Напишите на вашем любимом языке программу определения и вывода правил приоритета и ассоциативности его булевских и арифметических операторов. Упражнения 7.1. Введение 7.2.

Составные операторы 7.3. Операторы ветвления 7.4. Операторы цикла 7.5. Безусловный переход 7.6. Защищенные команды 7.7. Выводы Питер Наур (Ре$вг Нав1 Питер Наур из Копенгагена вплотную занялся разработкой языков программирования после того, как в 1958 году был опубликован первый отчет о языке А1.001., Он стал редактором издания А~СО~ Ви1'ебп — европейского средства обмена мнениями мемду людьми, вовлвченнымн в разработку языка А1.001. Наур модифицировал систему обозначений, использованную Бзкусом в 1959 году, и применил ее для представления самой последней версии языка А1Л01.

на ларинском совещании в 1960 году. Структуры упровленнв но уровне операторов отак управления, или последовательность выполнения, в программе может изу- П чаться на нескольких уровнях. В главе б мы рассматривали поток управления внутри выражений. подчиняющийся правилам ассоциативности операторов и приоритетам операций. Наивысшим уровнем является поток управления среди программных модулей, обсуждаемый в главах 8 и 12. Между этими двумя крайностями находится важный вопрос о потоке управления между операторами, описанный в данной главе. Мы начнем с обзора эволюции управляющих операторов в императивных языках.

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

Олнако количество полезных программ, состоящих исключительно из операторов присваивания. ограничено. Чтобы сделать вычисления, выполняемые в программах. гибкими и мощными. необходимо наличие, по крайней мере, еше двух лингвистических механизмов: некоторых средств выбора среди альтернативных путей потока управления (выполнения операторов) и некоторых средств лля организации повторного выполнения определенных наборов операторов. Операторы, обеспечивающие такие возможности. называются управляющими операторами (соя!го! жагешепш). Управляющие операторы первого успешного языка программирования — языка гОКТКА)Ч вЂ” были, по существу, разработаны создателями архитектуры компьютера 1ВМ 704. Все эти операторы были непосредственно связаны с инструкциями на машинном языке.

так что их возможности в большей степени определялись структурой машинных команд, чем особенностями самого языка. В то время лишь немногие знали о трудностях. связанных с программированием, и управляющие операторы языка гОКТКАХ в конце 1950-х голов считачись вполне приемлемыми. В последующих разделах этой главы мы обсудим управляющие операторы языка гОКТКАХ и причины, по которым они теперь считаются неприемлемыми прн разработке программ.

Упраачяющнм операторам были посвящены многие исследования и дискуссии, проходившие в течение 1О лет с серелины 1960-х до середины ! 970-х годов. Один из основных выводов, сделанных на основе этих исследований, состоял в следующем: несмотря на очевидную достаточность одного управляющего оператора (условного оператора во!о).

язык программирования, не содержащий оператора ого, нуждается лишь в небольшом количестве различных управляющих операторов. Действительно, было доказано, что все алгоритмы, которые можно выразить с помощью блок-схем, могут быть закодированы на языке программирования. имеющем только два управляющих оператора: один лля выбора между лвумя путями потока управления и один — для логически управляемых итераций (Вбпш апд !асор!и1, 1966). Важный результат, вытекающий из этого утверждения, заключается в том, что операторы безусловного перехода являются излишними — возможно, удобными. но несущественными. Этот факт вместе с проблемами использования безусловного перехода, или операторов яо1о, привел к большим спорам об операторе його, как будет показано в разделе 7.5.1. Глава 7.

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

чем применять для создания циклов оператор иЬх1е. Основным фактором. ограничивающим количество управляющих операторов в языке. является читабельность программ, зоскольку наличие большого количества видов операторов требует от читателя более глу. окого знания языка. Напомним. что лишь немногие люди знают все о каком-либо крупном « ~ыке программирования: вместо этого они изучают подмножество этого языка. выбранное , чн для использования и часто отличающееся от подмножества, на котором написана чи-земая ими программа. С другой стороны.

недостаток управляющих операторов может зрпвести к необходимости использования операторов низкого уровня, таких как операторы що. что делает программу менее читабельной. Вопрос о том, какая совокупность управляющих операторов обеспечивает требуемые ь гцожности и нужную легкость создания программ, широко обсуждался в течение по.едней четверти столетия. По существу, это — вопрос о том, насколько следует расшн-ить язык, чтобы увеличить легкость разработки программ за счет его простоты, размера ; читабельности. Упрааляюшая структура (сощго! ззпзсщге) — это управляющий оператор и соволуп:;сть операторов, выполнение которых он контролирует. Исследования в области разра.ткн языков программирования, проведенные в )960 голу, показали, что управляющие :-р) лтуры должны иметь один вход и один выход.

Наличие нескольких входов в нтератив-ые структуры, в частности, делает программы менее читабельными и понятными. 7.2. Составные операторы Одно нз вспомогательных свойств языка, облегчающее разработку управляющих . эераторов, заключается в способе образования наборов операторов. Основная причина -сприемлемости управляющих операторов ранних версий языка ГОКТКАХ заключатась тсутствии такой конструкции. В языке А(.ОО(. 60 впервые была введена структура для представления набора опера- -~ ров, а именно: составной оператор (сошроцпц згагешепз), имеющий следующий вид: Ьеддп выражение 1 выражение и ецс) Составной оператор позволяет создавать набор операторов, рассматриваемый как от=ельный оператор. Это — мощная концепция.

которую с болыпой пользой можно приченять при разработке управляющих операторов. В некоторых языках в начато составного оператора можно добавлять объявления данных, превращая его в блок, как показано в главе 4. Язык Рааса! унаследовал от языка А(.ОО(. способ образования составных операторов, но не позволяет использовать блоки. Языки, основанные на синтаксисе языка С (С, Сч-«. Зача), 305 7.2.

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

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

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

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