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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
18.01.2014, 03:40     Страуструп. Грамматики. Парсер #1
Собственно начал читать этого дядьку и наткнулся на парсер. Он объясняет суть парсинга с использование грамматик. Однако с грамматиками я столкнулся впервые и мне они не понятны. Вот скрин,где он разбирает выражение "по полочкам",однако мне не понятно почему здесь число 45 - выражение, а 11,5 - уже Терм, ну а 7 - Первичное выражение. Нечто вроде рекурсивного спуска,однако почему 11,5 - не выражение,ведь судя грамматике оно является термом,который в свою очередь является выражением. То же и с числом 7.
Скрин:
Миниатюры
Страуструп. Грамматики. Парсер  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 03:40     Страуструп. Грамматики. Парсер
Посмотрите здесь:

C++ Задача:Страуструп. 4.11.4
Страуструп или С++ за 21 дней? C++
C++ Страуструп
C++ Страуструп
Страуструп. задание C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
2855 / 1803 / 271
Регистрация: 27.08.2010
Сообщений: 4,883
Записей в блоге: 1
18.01.2014, 09:26     Страуструп. Грамматики. Парсер #2
Теория программирования. Парсеры и парсер-генераторы
D_bl_M
 Аватар для D_bl_M
25 / 25 / 1
Регистрация: 25.03.2012
Сообщений: 129
18.01.2014, 09:44     Страуструп. Грамматики. Парсер #3

Не по теме:

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



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

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

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

Добавлено через 33 минуты
sergei60, вот и я за Пратта, и так же не отказываюсь от прочтения Страуструпа, но позже
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
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
2855 / 1803 / 271
Регистрация: 27.08.2010
Сообщений: 4,883
Записей в блоге: 1
18.01.2014, 16:26     Страуструп. Грамматики. Парсер #9
Цитата Сообщение от TheChosenOne Посмотреть сообщение
может найду ответы
Вот здесь еще посмотрите: М.В. Мозговой "Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход". Наука и Техника, СПб 2006
Изображения
 
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 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
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.01.2014, 14:29     Страуструп. Грамматики. Парсер #12
как-то так
Страуструп. Грамматики. Парсер
могу в чем-то ошибаться так как давно этим не занимался
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 16:58     Страуструп. Грамматики. Парсер
Еще ссылки по теме:

дайте подсказку. Страуструп C++
C++ namespace Страуструп 3-е издание
C++ Страуструп FLTK newline в Out_box

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

Или воспользуйтесь поиском по форуму:
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
19.01.2014, 16:58  [ТС]     Страуструп. Грамматики. Парсер #13
Jupiter,благодаря Вашей схеме все стало ясно
Спасибо!
Yandex
Объявления
19.01.2014, 16:58     Страуструп. Грамматики. Парсер
Ответ Создать тему
Опции темы

Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru