kb 29.11.2011 19:11

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

1. rtsome 29.11.2011 19:17

>BSON
>конечный автомат
специалисты ойти в чати!

2. kbrtsome /1 29.11.2011 19:17

что не нравится?

3. rtsomekb /2 29.11.2011 19:21

отсутствие понимания матчасти. BSON — нерегулярная хуйня же.

4. utros 29.11.2011 19:52 eoranged

Я вот недавно тоже поймал себя на такой мысли. Теперь иногда заглядываю на codeforces.
Надо будет ещё на каком-нибудь SPOJ зарегаться и порешать задачи :)

5. kbrtsome /3 29.11.2011 19:55

я вот чего-то не понимаю, что ли. вот я взял и описал BSON при помощи конечного автомата на бумажке себе. ЧЯДНТ? ну там по мере достижения состояния еще дёргаются внешние штуки (для, собственно, построения документа постепенного), но из вне ничего не приходит.

ладно, пойду начну имплементировать, может таки уткнусь во что.

6. rtsomekb /5 29.11.2011 22:30

ну значит в итоге не конечный автомат получился.
достаточно например стек добавить.

7. rtsomertsome /6 29.11.2011 22:32

вообще я хуею с этих работоблядей.
я вот уже который месяц не могу работу найти.
хотя может вы все за полторы риски миса работаете, хуй вас знает.
всем же работодатели вдолбили в голову что раскрывать свою зарплату — "неприлично"

8. kbrtsome /6 29.11.2011 22:34 c8541125

у меня будет стек для вложенных документов, ага, но это отношение к автомату не имеет. вот я описал автомат (пока без вложенных документов, но смысл тот же)

а ниже уже будут "триггеры" при достижении тех или иных состояний. или не выйдет чего?

9. kbrtsome /7 29.11.2011 22:35 c8541125

при чем здесь работа вообще я не знаю, но ладно. зарплату могу свою в приват сообщить, не жалко, но я не сенийор девелопер и не архитектор никакой, потому может тебе это и миской риса покажется.

10. kbrtsome /7 29.11.2011 22:37 c8541125

ну и на developers.org.ua таки есть опросы зарплатные, смотри сколько угодно, сравнивай чего надо

11. rtsomekb /8 29.11.2011 23:02

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

12. rtsomertsome /11 29.11.2011 23:11

>If you don't know how parsing works, you'll do it badly with regular expressions, or if you don't know those, then with hand-rolled state machines that are thousands of lines of incomprehensible code that doesn't actually work.
совершенно случайно, параллельно я читаю вот это: http://steve-yegge.blogspot.com/2007/06/...

13. kbrtsome /11 29.11.2011 23:18

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

"нафига взялся" — собственно, потому что не знаю, потому и взялся. хотел сделать "как придумаю", а потом сравнить с "как правильно".

метод, который ты предложил — примерно так и работает драйвер bson питоновский. я думал, что можно без всех этих диких рекурсий и так далее, чтоб оптимальнее. ошибся в корне, как мы видим теперь (хотя наверняка можно ограничить вложенность просто и всё, но тогда код реально придется генерировать, или рекурсии делать, чего не хочется)

14. kbrtsome /11 29.11.2011 23:24

собственно, весь этот Bloated из-за попытки именно конечный автомат сделать и за один проход распарсить документ, а не копировать сто раз строки (хотя снова таки, могу ошибаться). хотя можно схитрить в данном случае, так как у BSON вначале документа стоит его размер — рекурсивно скармливать документ себе же. тогда только от вложенности будем страдать.

15. kbkb /14 29.11.2011 23:27

да, так и сделаю. и утру нос по производительности всем этим "правильным парсерам" (или сосну хуйца от незнания матчасти, как обычно)

16. DZhonrtsome /6 30.11.2011 04:17

Автомат с магазинной памятью в этот тред. И вливание курса по лексическим анализаторам.

17. DZhonkb /15 30.11.2011 04:25

Кхм, это называется "чисто инженерный подход" :)

18. kbDZhon /16 30.11.2011 07:16

В принципе, если к моему автомату прикрутить стек то получится таки даже без рекурсии. Стек нужен будет, по сути, только для того, чтоб возвращаться из вложенных документов обратно. Это оно?

19. kbDZhon /17 30.11.2011 07:17

:)

20. utrosrtsome /7 30.11.2011 08:23 eoranged

Учи похапэ^W^W Значит конкретно твои знания не востребованы сейчас на рынке или ты ищешь чего-то с неебической зарплатой, а по мнению работодателя до такой не дотягиваешь :)

21. DZhonkb /18 30.11.2011 08:34

не прямо оно, но сводится к нему)

Просто МА умеет парсить любой КС язык, а КА только регулярные языки. Регулярные языки вложены в КС языки.

22. DZhonutros /20 30.11.2011 08:39

Я после универа тоже чуток соснул, когда начал ходить по собеседованиям. Везде были нужны йоба-программисты со стажем.

23. kbutros /20 30.11.2011 09:16 c8541125

что-то @rtsome отказывается срывать покровы о том, чего же он такого неебического ищет

24. utroskb /18 30.11.2011 16:06 eoranged

Ну фактически ты ручками реализуешь рекурсию :)

25. kbutros /24 30.11.2011 16:06 c8541125

ну типа того, но не совсем. главное отличие от рекурсии — один проход.

26. utrosDZhon /22 30.11.2011 16:10 eoranged

Мне в этом плане повезло больше: когда закончу универ, у меня будет около 3 лет опыта работы по смежной специальности.

27. utroskb /23 30.11.2011 16:12 eoranged

Он хочет нихуя не делать и получать дохрена.
К.О.

28. kbutros /27 30.11.2011 16:13 c8541125

и что тут неебического?) давай различать дохуя и слишком дохуя. ну, меня интересует среди текущих вакансий — сильно слабые вакансии или мало платят.

29. utroskb /25 30.11.2011 16:23 eoranged

И тот задний...

30. 0x2207 30.11.2011 17:17 epsilon/psi

на ерланге надо писать. там есть бинарный паттерн-матчинг

31. utros0x2207 /30 30.11.2011 17:18 eoranged

Ты ещё скажи на окамле, он заточен под всякий парсинг и прочую фигню.

Do you really want to delete ?