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

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

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

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

епс/ а Да, это химический элемент Ан ЧОГС( РГЕЕвунтаХтгна ( аГГНСС авуатакведукк рРГЕЕВОау ) гч'-те(а/ л= "(чс" /ч'-те(а/-епс/ и Анализ был проделан довольно быстро и просто. поп-те(а! л=А-лап-тс(а/ ~ С-поп-те(а/ ~ /(/-лоп-те(а/ и В итоге оказалось, что это золото. А тсперь допустим, аСГНСС авуаеаХВОаук МЕХСаунеаХВОС(у = ИО( Ь( что имеются слсдуюшис входные данные: А-пап-те(а/ л= "А" А-поп-п(е(а/-еп(/ и ый11е (нругеевоау(=ИОЬЬ) — СС 1 Ди сн ( С-пап-те(а/ .:= "С" С-пос(-те(а/-ел(/ и Мехеауптахвоау = (чрргееВоду)->Мехтводу( /ч'-поп-те(а/ л= "Ас" Ас-лоп-те(а/-епс/ л Соответсгвуюший ряд вопросов и ответов окюкстся 11 [([ ругееВ ау)->Воауеоптенеа)(чМОЬЬ) несколько ллиннсс.

( А-те(а/. еле( з= "и" ~ '8" и Ггее([*рргееВоау)->Водуеопсепеа)( С-те(а/-епс/ л= "о" ) 'й" ! "е" и Химический элемент ) Металл Си 1гее ( *ругееводу ); /с/-те(а/-епс/ л= у(' и крРГЕЕВОау = МЕХС5унтаХВОС)у( А-лап-те(а/-епс1 л= "е" и А-мстаял Си ) С-поп-те(а/-епс/ л= 7" ~ етр(у и А Си «рРгеевоау = Иехеаупеахвоау( /(/-поп-те(а/-еп(/ г= "е" ~ етрЬ " Нет, нс А Си Нет, нс А-мсталл Си ! Дапаыните чьные та штичаакиеран(ачы Синп~акаичп л ии а ничик и аычиа ыние аыратении Часть )и Глава Гд Нет, не А Сз Следовательно, кюкдый идентификатор, например, бу- правило выражается связанной древовидной структурой.

са, ожилаюшие обработки и ешс не распознанные, тогНет, не А-металл Сз дст повторно проанализирован несколько раз, прежде У каждого узла этой структуры имеется свое имя (зк- да анкзиз завершается неудачно. В этом случае синтак- С-металл Сз чем будет найден подходящий его контекст. Такой под- вивалентное левой части правила синтаксиса), а также сическнй анализатор вынужден отменить свое последнее ход отнюдь не обязательно эффективен, однако он уп- одна илн несколько альтернатив (соотвстствуюших ле- решение и сделать альтернативный выбор.

Последним С Сз рошает понимание. вой части правила синтаксиса и разделенных вертикаль- является такое решение синтаксического анкзизатора, Да, это С Сг ными чертами). Кажлая ачьтсрнатива указывает на це- прн котором из абстрактного синтаксиса была выбрана Конец анализа С-металла С5 Интуитивные правила обычного языке почку элементов. А ка:клый элемент представляез собой конкретная альтернатива. При этом самый нижний элс...(Далее следуют строки анализ. на со алев следуют строки анализа на несоответствие Ка:кдое правило синтаксиса имеет простую интерпрс- указатель на синтаксический узел (именованный эле- мент отвергается, соответствующий узел синтаксичесо, в ичи г)... тацию на обычном языке.

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

Эту же представляет собой слинственнос дерево Каждый из его (т.с. когда возможных альтернатив уже больше нет и Нет, это не С-металл Св фразу можно выразить следующим образом: узлов указывает на олин конкретный узел абстрактного совпадение не обнаружено) либо окажется успешным. )Ч-металл Сг нпе-ехргечвап = гпа ггр ~са(пе-ехргеглап ) а Лле синтаксиса и альтернативу в пределах этого узла. Кро- Приведенное выше описание может показаться вам ехргахг(ап " " ма ар (саг(не-ехргеззюп а йпе-ехргехч(ап ме того, кажлый узел содержит послсдовазсльность (цс- несколько суховатым.

поэтому обратимся к конкретно- почку) элементов. А каждый элемент представляет со- му примеру. Допустим, что входной буфер содержит Нег, это не конец анализа С5 бой указатель на другой конкретный узел либо на вполне такое выражение: С-неметалла Увы, эти выражения ничем не напоминают те фра- опредсленную символьную строку. хне раздеаы иметь лва послслствия. Во-первых, оно препятствует бесполсзной работе синтаксического анализатора в тс- Сг(епгс!)ег-га!1 (1 а1гегиазе) зс)еззгз))ег-газ! (з а1гсглаге) етр1у Таблица !9,3. Синтаксический анализ исходного выражения 1еиег (б) !С)егзгг)) ег-га(! (!' айегпаге) Часть выражения Р)оскал транскрипция Имя анализируемого элемента выражение аЬс5 + хугб выражение логического сложения(первая альтернатива) аЬс5 в кутб выражениелогического умножения(пераая альтернатива) аЬс5 + хугб выражение включающего ИЛИ (первая альтернатива) аЬс5 н хухб выражение исключающего ИЛИ (первая альтернатива) аЬс5 + кутб выражение И (первая альтернатива) аЬс5 ч хугб выражение равенства (первая альтернатива) аЬс5 + хугб выражение отношения(первая альтернатива) аЬс5 + хугб выражение сдвига (пераая альтернатива) аЬс5 ч хугб выражение сложения (вторая альтернатива) аЬс5 + хугб выражение сложения (первая альтернатива) аЬс5 (еггег ('с) Ыепгз))ег-га!! (1' айегяазе) (епег Рекурсия входном б>фсрс.

Итак, синтаксичсский анализ продал жастся слслуюшим образом: !слег ('а) На этом этапе появляется ошибка. Начальный указатель указывает на символ "5", который опрслслснно нс является буквой (!епег). Поэтому эта ветвь исключается вплоть ло того места, в котором был слслан последний выбор. н вместо нес опробустся вторая альтернатива. Таким образом, конец привслснного выше синтаксического анализа получается слслуюшим: !еиег ('а) А тспсрь рассмотрим слслуюший прслполагаслзый элсмснт синтаксиса, который относится к остальной части выражсния рптагу-ехргезлаи (основное яыразксние).

В конечном счстс синтаксический аназиз привслст к созданию структуры, описанной в табл. !9.3. Во всем рассматриваемом злссь процессе выполняются рекурсивные процедуры, т.с. такие процслуры, которые взлзывают сами себя косвенно или явно В рекурсии, собственно, нет ничего плохого, оннако при сс выполнении непременно необходимо избежать бесконечной ехргеятоп (одюа)-ОР-ехргееаюп ( ! н а!1епза(е) (од(са1-АРР-ехргеев1ол (!м айегпа(е) (пс(изме-ОР-ехргеаззол ( !" а!1егпа1е) ехсгиявс-ОР-екргеаз!оп (1 н а((егпа1е) АГЛО-екргеязюп ( ! и алеша (е ) еаиауяу-ехргеаяюп (! и авегпа(е) ге)а!зола)-екргеаяюл ( ! и а!1егпа1е) нттбекргеьяюп (1и аиегпа(е) ааатве-ехргеьяюп (2 аиегпа1е) аааггзне-ехргеззюп (1и а!(егпа1е) С ннтнксн нескин ннн зиз н нычисзенне нырнзн енин Глава 1Я чение нсопрелслснного времени, а во-вторых, оно прс лупрсжласт пользователя об ошибке в исхолном синтак сисе.

Липинпитепьные темитинесн причини вв — —— Часть и! Для обнаружения бесконсчной рекурсии в пронес- Ошибки в синтвкснсв вхгпсг ввупсахволу ТЫвволу( сс ввода нового заголовка (узла) в дерево анализа на 1пг (ьсодевепегаге) ( ио(Д» ); Похоже, что лало принимает ешс более скверный обокажзом этапе синтаксичсский анализатор может снова рот. Обратил ли читатель внимание на то, по в лвух (пх ЬьавГСЬаг; попытаться найти орели всех предыдущих узюв такой, послслних примсрал правия синтаксиса имеется еще олна серьезная ошибка! На самом деле ле сушествуез узел, имя и значения котооого совпадают с теми, на которые указывают входной и выходной указатели. вхгпсх ввупгахтаЫе51евепг ( Рсл т . й Узел имеется, , воз 1ожно.

придется вор- Об ' 1 (, Ь И Ь Ь И сваг вупхахваве[вувтвд ИаНК Ьвввтв+1(З встствуст. Оба определения, а(р(сайеас( и Ьегайеае(, монуться в то жс самое состояние, которое соотвстствуст вггпсх ввувгахВеабь рвупхахво(пхег( тут вообгле оказаться бесконечными, даже в абстракт- гпх 151агхвв1ГЫ( п оцесса анализа, и установить ном смысле.

Каким жс образом можно гарантировать хпх 1лпагсопгазп( отсутствие полобной ошибки в намного более сложном состоянис ошибки. ): Рекурсивные пра Рек сивные правила могут быть скрытыми. Рас- синтаксисе выражений, неписаных на языке С? смотрим следующий синтаксис вхгпсг вА11егпахетаЬ1ев1евепх ( Вероятно, читателю булст приятно узнать, что, котла а1рла з= а(рлалеас( "Ь" ~ легавое( "с" № гарантируется отсутствие бесконечных рекурсивных и(ряа11еас(: — — Ьегалеас( "а" ! "Ь" а(ряаяеас( № путей во всем сиьыаксисс, рекурсия должна всегда быть 1пг 151аггвв11Ь( Ьегалеас( х= а(рйа11еас( "Ь" ( "а" Ьегаяеаьг № консчной.

Поэтому 1арантия отсутствия бесконечной хпх 1впвгсопге1пз рекурсии в синтаксисе приобретает вссьма важное знаМожно ли здесь сразу же заметить рекурсию". Она чсние В коро~ком синтаксисе это можно определить на вхгпсх ввопх(певаветаЫев1евепс ( присутствует в последней парс правил.

Когда синтак- глаз. А лля более ллинного синтаксиса существуют инсЬаг пдевеводу(ВОВТ1НВ НАНВ ЬВВСТВ+1); Сии тип синеснии ахать и нмниюение пмратенна Глава (9 МЙИ Сан»пале и»ел» на анализ и ни числе и не аирпне ее к» ф$ Дапапннп~епьниенлечалпичеекнера»3» и 6И вЂ” '- Яф Часть ГМ гпг Расее Глава (9 чогд Ргее5упгах1геа ( вггнсг ввупТахВоду** рРгееВоду ); лпг гп,ооТ,Ыпврасея; чогд 5ВЕрврасев [ гпг* ) ); гпг Сегвупгахваае ( сЬаг* вупгахЫпе, Ь|п5расея = РАЬВЕ; ) )' г=ю; чо(д Кеаочеврасев ( сЬаг' 1прпгвп((ег ); [ г =ю; (( (п<РАВВВ ВВРРВВ ьемств ) ая ( 1прптво((ег[ [и )[ = ' (е ' ) ); (п»» ) Епг» вггпсТ ввупгахВоду* рвупгахр, гу (Ыпврасев) вггосг вРагвеводе'* рррагвеВоду ); ( гпг СегвечрагвеВоду ( вггпсг врагвеводе* ррагепТВеад, 11 ([[вярасе(1прпгво((ег[гп))) яггасг врагвеводе' РРгечгопвВоду, ( МечВ д ); 1прогвп1(ег[опг»») 1прпТВп11ег[1п); гпг ВЫ1двечрагвеВоду ( яггесг вРагяеМоде* ррагепгвеад, Ыпврасев РАББЕ; вТгасг врагвеМоде' РРгеч[опвВоду, ) вггпсТ врагвеМоде»* ррвееВоду, ) 1пТ ТРлгвТСЬаг, 1пг гВавТСЬаг ); ( ( сЬаг*» рр1прпТВп11ег, 11 (гвврасе(1прпгвп((ег[гп))) гпТ* вггпсг явупгахВеад рхоо(5, Ыпврасев сев - тВВЕ; вТгпсг врагяеводе'» Р рхооТР 1прпсво((ег[опг++) тпг СепегагеОегреТСоде ( вггпсг врагъеводе' рхооТР ); ) Синит к с икеский анализ и нынисс ение нырам ении Дапаенип санные тематические ран)есы ЕШ к Часта О! Глава 19 гесагп 1БЬахав; ) геспгп 1БКаспв; ) (пс рагсЬаг ( чо(О* опе ( гпх 1БСахпя; (е(сЬаг*)опе= ' 11') (*(сЬаг')опе==' 1 ')) геьпгп ТБГахов ) 1БСахов РЬ1БК; гегагп (вьаьпв; (вхаьпв=ТАБЕ( ) е1ъе ТБСавпв = РХЬБК; гу ((*(сЬагн)опе=='(''] (н(сЬагк)опе==' 12') ( (вьахвя РЬЬБК( ) е1ве 1БСахпяпТАОЕ; гпь ТгуНахсЬРагве ( сЬаг"* рр1прпГВаууег, гпг* )с, вхгпсс ввупьахВосу* рвупьахр, всгпсс врагяеНове** ррРагвеВос)у ) гпх )ввахая ТАБЕ; 1пс 'ВовувхгьпОЬепОГЬ; 'пс ЬЬ аь; всгпсс ярагвеВосе* рнечрагяе - ВОЬЬ сЬаг *рьпраГВо((ег; 1( (рвупхахр->Вон)уеопсепхв(пНОЬЬ) ( (воВУБГг(пБЬепБКЬ = вхгьеп(РБУпхахр->ВоСУОопсепьв) ((19оСУБхг)пОЬепОСЬ + «)>РЬАБК ВОРРКА ЬКНОТВ) Доаолн июеа иные нее ионе« «ееи ив ри и)ели йя< Часть <й Сини~анси нчъ ии ани ~а« и выч «воен ив выра зееиии Гаева 19 <пс ЯЬ1рмехсвупсах (всгпсс вяупсахВобу** РРЯупгахР ) ( ( *ррйооСР = аа11ос(вгхеоу (всгпст врагвейобе)); Ьпс <йесагп = РЬЬЯЕ; 11 ((*ррйооср) =МОЬЬ) ( 11 (<(«РРЯувтагр)->Ра ПСЬ11- НЕХГЬ11)<=НОЬЬ) 151аспв = ЕЛЬНЕ; ( геспгп гЯсасав; «ррвупсахр = <ерряупьахр)->Рагепьй)Г->Мехсй)С- ТЬ<вВобу; ) ) [*ррйооср)->Рагепсрагве МОЬЬ; ху <(*ррвупсахр)1«МОЬЬ) (еррйооср)->Мехтрагве МОЬЬ; гйеспгп = ТВОЕ; (*ррйооСР)->Ргет1опяРагве = МОЬЬ< ('ррйооср)->ТЬьвйеаб рйоогв; (еррйооГР)->ТЬгвВобу НОЬЬ; ) ( ррйооСР)->ТЬЬврагве НОЬЬ; иогб РгьпсРагвеТгее ( втгпсс вРагвейобе* р1врпт, <пс берсЛ ) (еррйоосР)->СобеСепегате МОЬЬ; (еррй гр)- ЬР(гвССЬ 0; втгпсь ярагвейобе* ррагвейобе; <еррйооср)->ТЬавССЬаг -1; ) пеыоерСЬ = берГЬ+1 1 ( РРагвевобе = р1прпс; ) ейг1е (ррагвенобе<=МОЬЬ) Глава 19 ПИ- ' ° /]она.

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

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

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

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