Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 60

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 60 страницаИскусство программирования на Си (984073) страница 602015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Именно это подмножество правил будет второго выражения, которое в 2 раза длиннее пер- описании языка А!Во) 60. БНФ допускает несколько Один из способов, позволяюших понять выражение, испольюввно при написании примера кода, рассматривого, не лолжна превышать по времени компиляцию различныл способов записи, однако далее в этой главе состоит в том, чтобы взять копию определения КАК и ваемого в этой главе. первого выражения более чсч в 2 раза, поскольку будет использована нотация, несколько отличаюшаяся построить с ее помошью синтаксическую диаграмму Синтакси <ескос обозначение, пспольюванное в согласование этого процесса во времени должно по от той, какая использ>ется в опредеденип Ко<К. выражения.

Если начать анализ с выражения этом подмножестве правил, оказывается более компаквозможности подчиняться линейному закону.. Ка,кдос правило синтаксиса имеет свое ил<я <нан<е). тным, чел< описанное выше обозначение БНФ, приме- Ь * с2 + ну* ° ?он<<оса<ь. Несмотря на то что обнаруживать ошиб Оно <вписывается в первой строке с последуюшим дво- няемос в официальном определении (Ко<К) данного ки нео<лодпмо, это отнюдь не означает, по пра- с сточием. В каждой последующей строке указывается то можно было бы рассуждать следуюшим образом.

Это языка. В этом обозначении альтернативы разделяются вильные выра кения требуется отмечать как нспра- аныяернаошво (айегиа<е). Каждая альтернатива состоит выражение состоит из пяти отдельных обозначении: вертикальнои чертой ()), а не размешаются в отдельныл вильныс нлн нспрзвильныс выраж< ния как из послсловательности элементов, которые, в свою оче трех идентификаторов Ь, с2 и лус, а также дв>х бинар- строках. Определяемое ил<я отделяется от своего опрепрввильные.

а самом деле требуется созлать код рель, являются либо символьной строкой (это означа- ных арифметических операторов: * и +. При этом зна- деления двумя двоеточиями и знаком равенства (л=), а для вычисления выражения, которь<й соответствовал ет, что каждый символ лолжен присутствовать в анали- чениеЬ умножается на значение с2, а произведение этих не одним лишь лвоеточием, причем каждое правило дино~и кенлныгтеиитичегкигрнхж ы Г) чтиакгичскии анализ и вычиснгниг ннразкении $ Часть 1и Глава 19 них-г)ж)1 л= Й№п ( иррег-иех-гткн( 1оиег-лех-г)тгг ) ных определений С, которые оказываются более обшир иметь возможность разделить ее на подстроки, чтобы иррег-Бех-ьав11 л= "А" ! "В" ) "С" ( "0" ! "Е" ( "Е' № нылчи,несли быонииспользовались,тосоответствуюший было ясно, где идентификатор, где выражение сложекод получился бы нал1ного длиннее.

Расширение такого ния и т.д. В качестве примера рассмотрим следуюшее кода до полных опрелелений не вызывает особых татр>д- выражение: езсарег1-с№агасгег л= "чч" етсаре-тециепге № ненигп олн'ко о ранич н й объе астояшей и не ь„а+ Ь*с2+хуе елгаре-леоиепсе "= "и" ! "1" ! 'У'! Ъ" ( "г" ( "д" ( "а" ) -Л" ) "?" ) "'" ! ост1 71.:н11 позволяет этого сделать. кроме того, класс гггепгучег 1№денОргтна1-пега!-Йрг Орггана1-Оега1-№т11 ~ "Х" Гик-511и11 №ЕХЧ1М11 № тификапюр) не может начинаться с символа подчерки- Если пронлмеровать каждый из этих силчволов слегпгелег-соптгапг х= Й211 т1ецег-сопжат 1 гук11 № ванна Он должен начинаться с буквы. Кроме того, из дуюшим образом: этого синтаксиса >далены массивы и указатели 0 Ь Яоаг!оа-сопггапг х= Гпгелег-рагг 1гасггоп-рагг Е-рагг ехропгпг Г-раг1 № Такой 1сокрашенныи) синтаксис также предполша- 1 т1ееег-рагг х= тгекег-соплапг ~ евро № ет предварительное удаление всех лишних пробелов из 2 с /гас1гап-рпП .:= ртпг гпгехег-рагГ ~ етр1у № анализируемого текста таким образом, чтобы он не со- 3 2 рогпг х= "." № держал символов пробела, новой строки, табуляции, 4 перевода формата или комментариев.

5 Е-раг1 х= "е" 1 "Е" 1 етргу № 6 > г-рагГ х= "Г ) "р" ( "Г ) "Е" ! етргу № Синтаксический анализ (без рассмотрения ошибок) 7 ехропет х= оряопа1-лаан т1ецег-соптгат ~ етргу № Во время анализа строки силгволов, котоРая, как пред- то в пропессе синтаксического анализа получилась бы ор1гопа1-5ап х= + ~ ~ стулу № полагается, может оказаться выражением, необходимо информапия, привеленная в табл. 19.1. 2(инплниннслнныс те мати нсскис ри кжкы Гитпикитсскии ини тз и им ниснснпс нырахссни и ! ~ Часть Гй Глава 19 На рис. 19.1 представлена диаграмма синтаксичес- Прил!ерно такой порядок анализа приведен в табл.

19.1. сначата первую алыернативу, а если и она не ласт же- перечислены в табл. 19.2 (некоторые из ннх отмечены кого анализа. Подобные диаграммы мог>т быть та«» с В этол! случае рассужление начинается со слелуюшего ласмого рез>льтата. тогда уже становится ясно, что оп- двойным вопросительным знаком как сомнительные). нарисованы в виде древовидных структур (рис.

19.2). предполокения: "После этой б>квы следует другая бук- робование второй альтернативы не имеет смысла. Испольюванис сомнительных операций приводит к Оба >казанных рисунка сл>жат графическим представ- ва. Возможно, это идентификатор. Это иденп!фикатор, К кажлои альтернативе может быть добавлено две генерированию более короткого кода, хотя абсолютной пением табл.

19.1. после которого слелует знак умножения, а затем еше разреженные таблицы типа "Должно содержать" и "С необходимости в этол! нет. В конце вычисления требуНесмотря на то что дерево, приведенное на рис. 19.2, один идентификатор, поэтому это может быть выраже- чего может начинаться". В таблице "Должно содержать" ется, чтобы первый аккумулятор содержал полученное оказывается намного проще для понимания, чем при- ние", и так рассуждение продвигается далее в направ- указывается, что именно следовало определгпь лак значение, тогда как значение инлексного регистра опять веденная выше таблица, тел! не менее в рассматривае- ленин "выражения", которое хны собственно и пытаем- встретившееся в следуюшем тексте на предыдуших эта- должно быть равно н>лю мом здесь примере кода предпочтение будет отдавать- ся распознать.

Если во входном тексте имеется ошибка пах синтаксического или лексического анализа, если В качестве примера применения только >казанных ся получению именно полобной таблицы и он не соответствует вознкожнон!у синтаксису, тогда данная конкретная альтернатива ласт желаемый резуль- выше операций рассмотрил! вычисление след> юшсго этот факт обнаруживается как мокно ранее и обычно тат Таким образом, лля второй альтернативы условно- выра, кения: Ь 1 4 7 !О 13 16 17 19 расценивается как весьма близкий к ошибке в тексте. го выражения в таблице "Должно содержать" б>дет, по Ь * е2 + хух с 2 5 й 11 14 При нисхпдящем синтаксическом анализе <спр-диан краиней мере, >катано, что в последующем тексте дол- 2 расмпя) просмотр начинается с той части синтаксиса, жны прис>тствовать сил!волы "7' и ":".

+ > 20 21 22 23 и т д которую требуется в конечном счете распознать (ч го и Таблица "С чего можег начинаться" таюхс представ- дд хl является конечной целью анализа), а затем мы посте- ляет собой разрез енный массив, причем в нем указы- л2 = с2; у 3 б 9 12 15 18 пенно переходим ниже в направлении отдельных сим- ваются тс символы и синтаксические классы, когорые Д! = й1 * Х2; волов текста.

Иногда такой подход означает прослютр могут встретиться в начале любой альтернативы. Это Д2 = хух; л! х дз + кг! Яапа <чин<елен<ее п< ем а с<ические ра <деза Сене<сесин<сечи анализ и енчнс<ение сара<сепий т 1 Часть П1 Глава 19 А2 = д< степени связности [операндов) устанавливается в соот- вынужденно использовать все три клавиши переклю <е- Звтрквить а в аккуитлятор А1 А1 = А1 + А2; ветствии с таблицей порядка старшинства операций, ния регистра [старая, с грохотом работавшая пнш>'шая поместить в стек солеривиое акктитлЯтойа А1 атаск([вдехче) = А1; Эагрузвть Ь в ахкуиулятор А1 А1 = а; приведенной па с. 53 второго издания книги Кай.

Из машинка часто заедала при переклю <енин регистров), Поиествть в стек содеривиое аккумулятора А1 А2 = Ь; этой таблицы след>ет, например, но операторы учно- Лукашевич изобРел запись, которая не требовала при- извлечь вз стека и поместить в аккумулятор А2 11 (А)>А2) Пото Ы; женил вычисляются слева направо, а оператор >словил менення скобок. Д <я этого обычная запись операнд апе- взвлечь вз стека в воиествть в аккумулятор А1 А1 = атаск[твдех--)< ? — справа налево. да<пар опеРанд была заменена на запись лиера<пал операнд Выполнить уивоиеиве А2 = атаск[1влех — ); Чтобы придать всему этому какой-то смысл, нерелко операнд. Таким образом, обычная запись А + В превра- Поместить в стек солерквиое акхуяупятора А) доха П2< тилась в мнись + 4В Ы< используется так называемая ппяьгная нотация (Рай<А Поместить в стек содерквиое аккумулятора А1 па<а«ап), которая рассматривается в следуюшем разделе.

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

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

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

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