Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - valexey

Страницы: 1 [2] 3 4 ... 133
16
Общий раздел / Re: Про парсер и лексер.
« : Сентябрь 11, 2012, 10:14:13 am »
А от секты дракона нужно держаться подальше. Они не умеют писать компиляторы. Ради развлечения попробуйте найти промышленный компилятор, написанный по книге дракона... Не найдете.
Драконоиды вообще к компиляторам никакого отношения вроде бы не имеют :-) Да и не нужен мне дракон для моих задач (а потому и не интересен).
Речь о другом драконе ( http://ru.wikipedia.org/wiki/Книга_дракона_(компиляторы) ), видимо :)
Спасибо что обозначил правильный контекст, а то я до сих пор под впечатлением от секты другого Дракона :-)

А по тему - в АхУльмане многого (из по крайней мере актуального-современного) нет. Но и многое есть. Как справочник он хорош. Только не надо им ограничиваться.

17
Общий раздел / Re: Про парсер и лексер.
« : Сентябрь 11, 2012, 10:09:44 am »
Нужно копать в сторону аналитических грамматик.
http://en.wikipedia.org/wiki/Formal_grammar#Analytic_grammars

Да, и вопрос в догонку: если у меня уже есть грамматика заданная в (E)BNF, всегда ли возможно её переформулировать "без потерь" в терминах скажем PEG?

То есть какие из переходов возможны:
a) (E)BNF => PEG
b) PEG => (E)BNF

18
Общий раздел / Re: Про парсер и лексер.
« : Сентябрь 11, 2012, 10:02:37 am »
Из-за того что в безлексерных парсерах слишком мало матана на них трудно защищать диссеры. Вот про них учёные и забыли.
Стоп. Если там нет "матана" (хотя ясно что матан к грамматикам не имеет отношения), значит ли это, что безлексерный разбор не формализован?

А от секты дракона нужно держаться подальше. Они не умеют писать компиляторы. Ради развлечения попробуйте найти промышленный компилятор, написанный по книге дракона... Не найдете.
Драконоиды вообще к компиляторам никакого отношения вроде бы не имеют :-) Да и не нужен мне дракон для моих задач (а потому и не интересен).

Еще советую держаться подальше от слов BNF/EBNF ибо они задают способ генерации текста. А нам нужен разбор. Теоритически из генератора можно сделать парсер на практике это работает очень плохо.
То есть yacc/bison это таки генераторы текстов? ;-) Потому как формализм которым задается грамматика для разбора yacc'ом по сути является диалектом BNF.

Нужно копать в сторону аналитических грамматик.
http://en.wikipedia.org/wiki/Formal_grammar#Analytic_grammars
Спасибо. Посмотрю еще раз.

19
Общий раздел / Re: Про парсер и лексер.
« : Сентябрь 10, 2012, 08:30:09 pm »
Есть масса способов сделать безлексерные парсеры.
И они работают лучше лексерных.

А если делать парсер который может изменять свою грамматику во время разбора текста (чем я и занимаюсь) то он может быть только безлексерным.
А где можно прочитать про эту самую массу способов? Какие-то книжки/статейки имеются? А то в АхУльмане вроде бы ничего нет (собственно там даже про glr/gll нет).

20
Общий раздел / Re: Про парсер и лексер.
« : Сентябрь 10, 2012, 07:03:25 pm »
Конечно, есть. Можно, например новые конструкции не хардкодить в язык, а складывать в библиотеки.
И тогда люди могут добавлять расширения в язык, не дожидаясь пока автор языка его сделает.
Более того если расширяется основной язык то расширение появляется сразу у всех, а в случае библиотечных расширений языка пользователи могут выбирать какие расширения использовать.
Грамотное языковое расширение может уменьшить код в разы. А в особо запущенных случаях в десятки, а иногда и сотни раз.

В топике запахло немерлёй :-)

21
P.S. А если взять еще шире... То решение info21 на самом деле типичный костыль. Правильным решением здесь было бы подключиться к лексеру компилятора и сделать нужный перевод ключевых слов. Так что несмотря на легендарную расширяемость фреймворк ББ тут не блещет - сделать нормально нельзя, приходится делать через... костыль.
Ну, вообще это общая проблема почти всех компиляторов. Только-только стали появляться компиляторы к которым можно плагины лепить/пользоваться их функционалом извне. Компонентные, так сказать. Среди них например clang (C, С++ и ObjC) и ghc (haskell).

22
Общий раздел / Про парсер и лексер.
« : Сентябрь 09, 2012, 06:22:23 pm »
Я не поленился и нашел этот шедевр:
...
Я как-то писал здесь http://forum.oberoncore.ru/viewtopic.php?p=69811#p69811 про смесь из лексического и синтаксического разбора
Цитировать
Мне многократно приходилось писать "наколеночные" решения для разбора каких-нибудь данных. Почти всегда возникал соблазн схалтурить, не делать отдельный лексический разбор. В 100% случаев это приводило к тому, что в итоге получалась какая-то дрянь.

"Шестиветочный цикл" Info21 - прекрасная иллюстрация.

Я тоже думал об этом. Ну и немного шишек понабивал самостоятельно, так что подтверждаю.

Galkov, помнится очень хорошо объяснял почему требуется разделять парсер и лексер (за что был неоднократно гнобим на оборонкоре) - они банально работают по разным принципам. Обычный LL(с)-парсер не сможет разбить входной поток на лексемы. Какой-нибудь LALR - тоже. Я подозреваю что с задачей сможет справиться GLR и/или GLL парсер, но это будет не эффективно (ну и не факт что получится - я еще не прорабатывал эту тему).

PS. Справится/не справится - имеется ввиду, что это честный парсер, работающий по полностью формализованной грамматике и ничего кроме нее не знающий. А не так как работает например виртовский парсер Оберона.

23
Байтораздирающее зрелище. Еще один пример того, что циклу Дейкстры нечего делать в программах, предназначенных для чтения человеком.
Vlad, в таких случаях следует приводить свой образцово-показательный вариант. Иначе будет:
- Вы - недоучки!
- Нет, это вы - недоучки!
и т.п.

Это не имеет смысла - приведенный код писал не info21, насколько я понимаю, а trurl. Таким образом если окажется что код плохой, проиграет trurl, если окажется что код хороший (а то что представит vlad - плохой), то выйграет info21. В обоих случаях info21 не в накладе.

Это тот самый случай, который подтверждает поговорку "не ошибается тот, кто ничего не делает".

24
Под Windows 7 минимальный размер памяти резервируемый под стек потока 256 Кб.
Что-то как-то слишком дофига. В хрюниксах можно и 8 Кб сделать. А возможно и меньше.

25
Вот ссылка на картинку, там ещё и описание в пдфке есть, в последней статье...
http://forum.oberoncore.ru/viewtopic.php?f=93&t=1542&start=420#p74169
Прикольно, даже Лаптев переплюнул Ткачёва по практическим делам. Я фигею дорогая редакция...
Но ты учти, что Лаптев все же не самостоятельно это пишет. У него есть рабы студенты которые делают всю работу. А он сам к коду не притрагивается. Он менеджер :-)

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

Ну а также Ткачев играет роль маркетоида-продажника/евангелиста продвигаемой идеалогии (хотя идеалогия для технологии - звучит дико).

26
насчет использования в реальном программировании - сомнения  не развеялись. Я правильно понял - что В.Лаптев хочет брать за нее деньги с пользователей?
Насколько я помню, пока речь идет о продаже другим ВУЗам (видимо на неких спец. условиях). Речи о выпуске коробочной версии вроде бы пока не идет. (ну и естественно в свободном доступе всего этого не будет (до тех пор пока это студентам в руки не попадет конечно :-) )

27
Общий раздел / Re: Про Turbo Pascal и обучение
« : Сентябрь 08, 2012, 02:11:29 pm »
Но конечно вот такое слабо похоже на Паскаль:
uses System.IO;

begin
  var d := new DirectoryInfo(getcurrentdir);
  var ff := d.GetFiles; 
 
  foreach f: FileInfo in ff do 
    writeln(f.Name , '       ', f.CreationTime);
end.

28
Общий раздел / Re: Про Turbo Pascal и обучение
« : Сентябрь 08, 2012, 01:55:52 pm »
Ха! В этой веб-морде PascalABC и графические программы работают. Забавно. Запустил из примеров жизнь (life) и фрактаьчик. Причем они могут быть интерактивными, программы эти. И все в браузере.

При этом на рабочих местах вполне может стоять какой-нибудь линукс без wine даже. (я собственно из под подобного линукса все это и гонял). Или макось. Или вообще с iPad'a можно.

Да, глянул в js - там забавно. Там русские коментарии автора (и куча закомментированного кода). И пишет он на js так, будто пишет на паскале :-) Но работает. Как говорится, респект ему и уважуха.

PS. Технически приложение запускается на сервере, а браузер является по сути тонким клиентом.

29
Общий раздел / Re: Про Turbo Pascal и обучение
« : Сентябрь 08, 2012, 01:43:05 pm »
Да, про Scheme вот новость (2009 год): http://www.linux.org.ru/news/doc/3978571
Цитировать
Scheme будет разделён на два языка программирования

Комитет разработчиков языка программирования Scheme принял решение о разделении спецификации языка на две составляющих: описание "малого языка", ориентированного на обучение; и "большого языка", ориентированного на промышленную разработку.

Спецификация "малого Scheme" будет основываться на R5RS, и полностью соответствовать заложенным в RnRS принципам: "языки программирования должны проектироваться не путём последовательного нагромождения возможностей". В целях повторного использования существующей образовательной базы, предполагается сохранять как можно большую обратную совместимость с существующими стандартами Scheme.

Спецификация "большого Scheme" будет основываться на R6RS, и включать максимальное количество возможностей, признанных полезными в промышленной разработке: сетевое программирование, потоки, интернационализация, FFI, и т.д.

Предполагаются публичные отчёты через 6 и 12 месяцев с начала работы групп; публичный драфт стандарта через 18 месяцев; финальный драфт через 24 месяца.

30
Общий раздел / Re: Про Turbo Pascal и обучение
« : Сентябрь 08, 2012, 01:38:15 pm »
Вот черт.. придется пояснять свою точку зрения... Ммм.  дело в том что Станислав Станиславович  искренне верит что  его разработка может быть использована для серьезных проектов.. и по этому он нафигарил  туда расширений  аля шарпей.. и продвигает их в справке (единственный доступный общественности документ).. но тут вот какая беда... для  нас PABC - это язык на 1 семестр.. основными являются языки  группы СИ , и неприятное дополнение.. мы используем автоматизированные системы проверки... которые эти расширизмы не  воспринимают.. более того эти расширизмы не воспринимает не freepascal, ни  delphi...
А вы не пробовали его попросить либо выпутисть специальную упрощенную версию для обучения, либо воткнуть ключик отключающий расширизмы?

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

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

Страницы: 1 [2] 3 4 ... 133