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

Различия использования регулярных выражений и генераторов парсеров в GCC и MSVC - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [C++11] STL unordered контейнеры http://www.cyberforum.ru/cpp/thread1748040.html
Думаю, проще всего мою проблему/задачу описать псевдокодом. class MyClass { void Something() { EventHandler(this); } }
C++ Демонстрация влияния отсутствия нужных записей в буфере TLB на эффективное время доступа к памяти Напишите программу, демонстрирующую влияние отсутствия нужных записей в буфере TLB на эффективное время доступа к памяти, путем измерения времени каждого доступа, затрачиваемого на проход большого массива. Помогите пожалуйста. Реализацию буфера TLB сделал, а вот дальше, что делать не могу никак понять http://www.cyberforum.ru/cpp/thread1746709.html
C++ Как получить команды, которые программа посылает на процессор?
Всем привет. Готовлюсь к научной работе и получил необычное задание, которое вообще не вписывается в сферу моей деятельности. А именно нужно написать приложение которое на вход получает файл .ехе, выполняет его и как результат выдает список комманд которые подаются прямо на поцессор. В итоге получаеться что-то типа дизассемблера, но не дизассемблер=) Кто что-то слышал о таком и кто может...
C++ VC 2012 изи
не могу сделать задачу , хелпаните изи же Утворити файл, який містить інформацію про асортимент взуття в крамниці фірми. Структура містить: артикул, назва, кількість, ціна однієї пари. Кількість записів довільна. Артикул починається з літери Ж для жіночого взуття, Ч - чоловічого, Д - дитячого
C++ Раскрой выпуклого многоугольника двумя методами С++ http://www.cyberforum.ru/cpp/thread1741963.html
Помогите перваку с курсачем по АСА Раскрой выпуклого многоугольника на треугольники методом полного перебора и методом динамического программирования. Т.е. Нужно найти минимальную стоимость разреза многоугольника на треугольники(минимальную сумму длин не пересекающихся диагоналей) Метод полного перебора заключается в том, чтобы перебрать все возможные варианты и выбрать наилучший. Этот метод...
C++ Вывод данных в HEX по указателю Скрывать не буду, совсем не силен в указателях в c++. Путаюсь сильно со звездочками. Исходные данные: Имею структуру (названия все поменял): struct message { char field1; char delimiter1; char field2; подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17462 / 5700 / 361
Регистрация: 30.03.2009
Сообщений: 15,636
Записей в блоге: 26
29.05.2016, 10:00     Различия использования регулярных выражений и генераторов парсеров в GCC и MSVC
Если под словом "используют" подразумевается "сам компилятор написан с использованием", то можно поглядеть на исходники gcc, там есть какие-то файлы с расширением *.l, а в старых версиях были и файлы с расширением *.y (если я ничего не путаю). Когда-то я их изучал и сложилось впечатление, что там реализовано лишь некоторое подмножество языка. Да и не было полной уверенности, что оно входит именно в состав компилятора, а не в состав какой-нибудь утилиты, которая используется при сборке компилятора

Но тут есть два момента

1. Парсер в компиляторе занимает дай бог 1% времени исполнения. А потому скорость работы парсера в пределах +-100% роли не играет, а потому пофигу на чём его писать
2. lex/bison годны для написания примитивных парсеров. Синтаксис таких монстров как Си++ слишком сложен, для того, чтобы с ними работать на lex/bison. Парсер ведь не только должен распарсить, но ещё и грамотно выдать пользовательские ошибки, причем после выдачи ошибки современные компиляторы продолжают парсить (т.е. выдают несколько ошибок за раз). На lex/bison, думается, опухнешь это делать (правда не уверен в этом на все 100%)

Добавлено через 2 минуты
Что касается MSVC, то я более чем уверен, что тем не может быть никаких lex/bison тупо по политическим соображениям
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru