Опрос
Опрос Тема Опроса: Что эффективнее (скорости разработки+работы самого способа)
bars   pie

Bison & другие парсеры.    
  12 (92.3%)
Рукопашный разбор    
  0 (0.0%)
Свое особое мнение.    
  1 (7.7%)




Всего голосов: 13
« Создано: trdm : 26. Марта 2007 :: 15:11 »
Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) 2С подход к конст-ю интерпретаторов и Bison (число прочтений - 15733 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
2С подход к конст-ю интерпретаторов и Bison
24. Марта 2007 :: 14:54
Печать  
Что эффективнее? генерация парсера посредством инструмента или
пытаться всетаки скушать все варианты вручную?
Удобнее думаю 2, а вот быстрее ли?
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #1 - 25. Марта 2007 :: 04:43
Печать  
trdm писал(а) 24. Марта 2007 :: 14:54:
Что эффективнее? генерация парсера посредством инструмента или
пытаться всетаки скушать все варианты вручную?
Удобнее думаю 2, а вот быстрее ли?

Ты про парсер языка 1С? Лично я никогда таким не занимался, но вот что хочу сказать Подмигивание:
ИМХО, для начала неплохо бы изучить доступные готовые средства. Во-первых, антиресно, а во-вторых, их может оказаться достаточно, в-третьих, их не дураки, в общем-то пишут Улыбка, а значит по скорости может оказаться приемлемо.

Насчет доступных средств слышал еще что-то про какой-то Yacc. Также в Бусте есть некий spirit, но, ИМХО, на нем наверняка все мозги свихнуть можно (это для экстремалов сиплюсплюсников) Подмигивание
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #2 - 26. Марта 2007 :: 09:38
Печать  
Ясен перец, лучше инструментом.
В-первую очередь лучше тем, что для инструмента надо сначала формализованную грамматику написать, а это самому поможет разобраться в тонкостях языка.
Плюс хороший инструмент обычно еще и работу с ошибками хорошо позволяет сделать.
А то помню, при компиляции в 2С затыкалось на первой ошибке, и дальше не проверяло.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #3 - 26. Марта 2007 :: 10:30
Печать  
Так то оно так, но нарываясь на имеющийся рукопашный вариант поневоле возникает такой вопрос.
Мелькает мысль: разработчик оценил варианты и принял решение вести войну с кодом в рукопашную.
Согласен, что инструментом пользоваться эффективнее.
+ "быстрее" имелось ввиду быстродействие компилятора.

orefkov писал(а) 26. Марта 2007 :: 09:38:
А то помню, при компиляции в 2С затыкалось на первой ошибке, и дальше не проверяло.

Это всего лишь частный случай, имеющий место быть.
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #4 - 26. Марта 2007 :: 11:31
Печать  
trdm писал(а) 26. Марта 2007 :: 10:30:
Мелькает мысль: разработчик оценил варианты и принял решение вести войну с кодом в рукопашную.

Я вот например, регулярно изобретаю велосипеды. Причем по разным причинам. Например, не знаю про хорошие готовые средства. Или когда готовых средств в ближайшей досигаемости нет. Или, когда готовые средства есть, но интересно что-то сделать самостоятельно. Какими мотивами руководствовался разработчик, мне не известно, но то, что он не выбрал какое-то готовое средство, еще не значит, что от их рассмотрения нужно отказываться Подмигивание
  
Наверх
 
IP записан
 
sslava74
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Ноября 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #5 - 19. Апреля 2007 :: 17:37
Печать  
По поводу Yacc и Bison. Yacc - строит так называемый лексический анализатор, который выполняет лексический анализ, т.е. разбор текста программы на лексемы: переменные, операторы, и т.п.. Далее этот набор лексем проверяется синтаксическим анализатором, код для которого можно построить с помощью Bison. С описанием правил разбора в Yacc'е и Bison'е в принципе разобраться несложно, благо литературы по ним достаточно.
Т.е. в итоге не надо гемороится - изобретать лексический и синтаксический движки, а только уже реализовывать исполнительную часть.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #6 - 20. Апреля 2007 :: 05:18
Печать  
Вообще-то YACC - как-раз таки синтаксический анализатор, а Bison - усовершенствованная версия YACC. Для лексического анализа в связке с YACC и Bison'ом обычно юзают flex. (Надо только найти версию, правильно работающую с кириллицей).
Хотя вот например в телепате лексический анализатор - самописный, но реализован по такому же принципу ДКА.
  
Наверх
 
IP записан
 
sslava74
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Ноября 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #7 - 20. Апреля 2007 :: 06:30
Печать  
ОК - с Yacc'ом маху дал, с Flex'ом перепутал
  
Наверх
 
IP записан
 
sslava74
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 28. Ноября 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #8 - 20. Апреля 2007 :: 07:41
Печать  
Посмотрел свои студенческие эксперименты, попробовал русский язык где-нить для токенов применить, работает однако. В чем проблемы были с flex'ом?
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #9 - 21. Апреля 2007 :: 08:42
Печать  
С case-insensitivity на ранних версиях.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #10 - 17. Июня 2007 :: 20:42
Печать  
таак, вроде и теоретическое обоснование предпочтения использования Bisona нашел..
  
Наверх
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #11 - 19. Июня 2007 :: 05:46
Печать  
Вкратце расскажешь?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #12 - 02. Мая 2008 :: 13:55
Печать  
orefkov писал(а) 19. Июня 2007 :: 05:46:
Вкратце расскажешь?

у Хомского сопоставлены классы граматик и распознающие машины.
  
Наверх
IP записан
 
MMF
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 15. Августа 2007
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #13 - 03. Мая 2008 :: 21:09
Печать  
http://mmf.newmail.ru/05s979.htm
не совсем в тему Бизона, но познавательно.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 2С подход к конст-ю интерпретаторов и Bison
Ответ #14 - 04. Мая 2008 :: 08:48
Печать  
блин. очень много букв (
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать