Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
#1

Страуструп. Грамматики. Парсер - C++

18.01.2014, 03:40. Просмотров 1343. Ответов 12
Метки нет (Все метки)

Собственно начал читать этого дядьку и наткнулся на парсер. Он объясняет суть парсинга с использование грамматик. Однако с грамматиками я столкнулся впервые и мне они не понятны. Вот скрин,где он разбирает выражение "по полочкам",однако мне не понятно почему здесь число 45 - выражение, а 11,5 - уже Терм, ну а 7 - Первичное выражение. Нечто вроде рекурсивного спуска,однако почему 11,5 - не выражение,ведь судя грамматике оно является термом,который в свою очередь является выражением. То же и с числом 7.
Скрин:
Миниатюры
Страуструп. Грамматики. Парсер  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 03:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Страуструп. Грамматики. Парсер (C++):

Страуструп. задание - C++
насколько я понял задание - есть класс class STC { unexpected_handler old; public: STC(unexpected_handler h) { ...

Страуструп и Графика - C++
Начал читать Страуструпа. По настоянию автора подключил его заголовочные файлы и библиотеку FLTK. Но программа не работает: ...

Задача:Страуструп. 4.11.4 - C++
1.Напишите программу,которая печатает символы от 'a' до 'z' и цифры от '0' до '9' и их целые значения. 2.Проделайте то же самое для...

Страуструп или С++ за 21 дней? - C++
Народ,подскажите,что лучше страуструп или Вильямс?мне кажется мне щас подойдет Вильямс,я думаю что щас нуждаюсь в основе...

дайте подсказку. Страуструп - C++
10. (*2) Напишите класс или шаблон, подходящий для реализации обратного вызова. 11. (*2.5) Напишите класс Lock (блокировка) для...

namespace Страуструп 3-е издание - C++
Добрый вечер народ) Читаю книгу Страуструпа 3-е издание там встретился такой фрагмент кода: namespace Stack { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
18.01.2014, 09:26 #2
Теория программирования. Парсеры и парсер-генераторы
D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 129
18.01.2014, 09:44 #3

Не по теме:

не думаю что это именно то что просили, если я не ошибаюсь - то книга "принципы и практика использования C++" по сути она для новичков, следовательно новичок должен понять о чем речь, а нет так что прочитав кучу литры, Страуструп вдруг откроет ему глаза.
Это конечно мое мнение.



TheChosenOne, А вообще на счет самой книги:
Прочитав несколько глав я понял что должна быть база, т.к. глянул на листинг не помню то ли третья глава, там нужно было сделать калькулятор, чтоб принимал как письменный ввод так и числовой, и вот тогда я понял что эта книга не для меня ПОКА что. Примеры листингов разбросаны, нет описания вывода и т.д., просто есть с чем сравнить, да Страуструп хорошо, но не на первых парАх. Периодически беру ее в руки, но на долго общаться с ней меня не хватает.
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
18.01.2014, 10:02 #4
Цитата Сообщение от D_bl_M Посмотреть сообщение
следовательно новичок должен понять о чем речь
Без знания того, что есть лексема, правила вывода, формальная грамматика и грамматический разбор, пялиться на синтаксические диаграммы бесполезно чуть менее, чем полностью. Зато освоение базовых понятий открывает глаза на устройство Языка Программирования.

И приходит понимание, что, например, преобразование Русский->Translit, Huffman Compression или приведенный выше калькулятор построены по одному и тому же нехитрому принципу.
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 372
18.01.2014, 10:04 #5
Нужно много практики ,много знаний,но Страуструпа программисту на С++ прочитать надо ,лучше в оригинале,чтобы понять образ мысли его. Это тоже лично мое мнение.сам много раз начинал и так же удачно заканчивал читать,но обязательно прочту.. А пока Прата идет хорошо.
D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 129
18.01.2014, 10:40 #6
Цитата Сообщение от gazlan Посмотреть сообщение
Без знания того, что есть лексема, правила вывода, формальная грамматика и грамматический разбор, пялиться на синтаксические диаграммы бесполезно чуть менее, чем полностью. Зато освоение базовых понятий открывает глаза на устройство Языка Программирования.

И приходит понимание, что, например, преобразование Русский->Translit, Huffman Compression или приведенный выше калькулятор построены по одному и тому же нехитрому принципу.
Нет, я конечно не спорю, но мы берем самое главное во внимание, это "новичок", как ты можешь понять то, что выше базы, не зная синтаксиса и прочих вещей, это все ровно что взять и начать книгу с классов, рассказывать басни приводить примеры и ни слова про потоки ввода/вывод, или же растянуть на три главы. Мое мнение это не так уж и разумно и никак не для новичка.

Добавлено через 33 минуты
sergei60, вот и я за Пратта, и так же не отказываюсь от прочтения Страуструпа, но позже
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 372
18.01.2014, 10:47 #7
D_bl_M, Я начинал с Оверленд Брайэн С++ без страха. А сначала и Прата не шел вообще ,а сейчас по прошествии 2 месяцев Прата как по маслу идет.
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
18.01.2014, 16:11  [ТС] #8
D_bl_M, Я осилил Лафоре без особого труда,так что какая-никакая база у меня есть. Однако,читать Страуструпа тяжело...
Парсер Лафоре я освоил без проблем... У Страуструпа,когда вчитаешься в код, более-менее понятно как взаимодействуют отдельные блоки программы,однако с грамматиками столкнулся впервые и... не понял как он их составляет (например 45 и 11,5 ,и 7 - числа => они все должны быть выражениями,но это не так...).
gazlan, Спасибо,я почитаю,может найду ответы
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
18.01.2014, 16:26 #9
Цитата Сообщение от TheChosenOne Посмотреть сообщение
может найду ответы
Вот здесь еще посмотрите: М.В. Мозговой "Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход". Наука и Техника, СПб 2006
Изображения
 
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.01.2014, 16:56 #10
Цитата Сообщение от TheChosenOne Посмотреть сообщение
почему здесь число 45 - выражение, а 11,5 - уже Терм, ну а 7 - Первичное выражение.
все что слева от знака "+" - выражение, все что справа - терм.
все что слева от знака "*" - терм, все что справа - первичное выражение.
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
19.01.2014, 02:33  [ТС] #11
Jupiter, т.е. если будет выражение 5+7+4*2 как это разобрать ? 5 стоит слева => это выражение. В свою очередь 7 стоит справа от первого знака "+" и слева от второго знака "+" чем оно в этом случае является ?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.01.2014, 14:29 #12
как-то так
Страуструп. Грамматики. Парсер
могу в чем-то ошибаться так как давно этим не занимался
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
19.01.2014, 16:58  [ТС] #13
Jupiter,благодаря Вашей схеме все стало ясно
Спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 16:58
Привет! Вот еще темы с ответами:

Неизвестная функция. Книга. Страуструп - C++
Я видел похожу тему, но толком ответа не нашел. Сразу к делу. Есть функция get_token(). Она не из стандартной библиотеки, т.е. её нужно...

Б.Страуструп. Программа угадай число! - C++
Доброго времени суток. Помогите пожалуйста. Я видел пару решений , вот например одно из них : #include <iostream> using...

Страуструп, и траблы в среде программирования - C++
Всем добрых суток! Я начал изучение где-то 3 дня назад, 3 дня от компьютера не отхожу ,читаю, делаю записи в тетради. Мне это очень...

Что имеет ввиду Страуструп? - C++
Цитата Страуструпа, Язык программирования C++. Специальное издание: Т.е. если нужны только беззнаковые целые, то unsigned -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.01.2014, 16:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru