Автор Тема: Про парсер и лексер.  (Прочитано 50750 раз)

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #75 : Сентябрь 12, 2012, 11:32:38 pm »
Сори. Вместо того чтобы нажать на цитирование твоего сообщения, нажал на редактирование, и затер нафиг
Opera наше всё.

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #76 : Сентябрь 12, 2012, 11:38:27 pm »
Цитата:
Анализаторы для языков, представленных КС-грамматиками, такие как LR-анализаторы, требуют особого шага лексического анализа, который разбивает входные данные в соответствии с пробелами, пунктуацией и так далее.
Вот, кстати, я сначала не подумал о том, что есть шаг. Может, в википедии под шагом понимают проход по тексту только с целью разбиения на лексемы?..
А с началом шага синтаксического анализа о продолжении работы лексического говорить уже не приходится...

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Про парсер и лексер.
« Ответ #77 : Сентябрь 12, 2012, 11:55:06 pm »
У Вирта короче вполне себе безлексерный парсер  ;D  :P
from valexey: Сори. Вместо того чтобы нажать на цитирование твоего сообщения, нажал на редактирование, и затер нафиг (что мог - восстановил) :-/ Повтори свою мысль пожалуйста.

Мою мысль повторяет следующий же пост:
http://oberspace.dyndns.org/index.php/topic,333.msg8917.html#msg8917

Для PEG не нужен предпросмотр токенов и потому нет необходимости в отдельном лексере.
Т.е. получается что безлексерный парсер - это парсер в котором отдельный лексер не обязателен.

DIzer

  • Гость
Re: Про парсер и лексер.
« Ответ #78 : Сентябрь 13, 2012, 01:54:20 pm »
Другое дело, что практика показывает, чта-а средний программист не умеет думать еще и о конструировании DSL, даже eDSL не умеет. У него голова занята совсем другим - предметной областью.

Поэтому, после общения с Владиславом Чистяковов (ака VladD2) по поводу Nemerle/N2 и Андреем Бреславом, по поводу Kotlin'a, у меня сложилось четкое мнение, что Kotlin при попутном ветре вполне может взлететь, а вот Nemerle и, тем более, Nemerle-2 - нет.

Хотя мне конечно N2 намного интересней Котлина. Точнее так: N1/N2 мне интересней на поковыряться в алгоритмах, dsl'и понаделать, теорию там с практикой в плане синтаксического разбора почесать (единственное что активно мешает ковырянию - мертвая привязка немерлей к .net'у. Мне довольно сложно найти винды в округе чтобы там немерлю поковырять).

Kotlin интересен с сугубо практической точки зрения (но нужно дождаться стабилизации языка и средств разработки для него). Особенно он мне интересен тем, что у него два бекенда - jvm и js.
1. да и не только средний.. любой, которому есть чем заняться.
2. в явке уже есть дополняющие языки (как доп язык javafx1.0, например , не прошел), впрочем они есть и под .net. По первому впечатлению  НИМЕРЛЕЙ спроектирован  лучше.. Что касается вторых версий (Немерлея и FX) - то разработчики (наверное понимая, что в разработанную нишу одним только сахаром не влезешь ) пытаются найти свое собственное место.. - как результат.. и там и там "FRAMEWORKS"

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #79 : Сентябрь 13, 2012, 02:39:44 pm »
2. в явке уже есть дополняющие языки (как доп язык javafx1.0, например , не прошел), впрочем они есть и под .net. По первому впечатлению  НИМЕРЛЕЙ спроектирован  лучше.. Что касается вторых версий (Немерлея и FX) - то разработчики (наверное понимая, что в разработанную нишу одним только сахаром не влезешь ) пытаются найти свое собственное место.. - как результат.. и там и там "FRAMEWORKS"

JavaFX 2.0 это не язык. Это просто либа для java.

Кроме того, я не вижу смысла даже сравнивать javafx с nemerle, ибо первый по сути является DSL'ем, а второй является языком общего назначения с богатыми возможностями создания eDSL'ей.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Про парсер и лексер.
« Ответ #80 : Сентябрь 13, 2012, 02:47:29 pm »

JavaFX 2.0 это не язык. Это просто либа для java.

Кроме того, я не вижу смысла даже сравнивать javafx с nemerle, ибо первый по сути является DSL'ем, а второй является языком общего назначения с богатыми возможностями создания eDSL'ей.

1 Так я про это и сказал.. в конце
2. Думаю что есть.. 1 версии были яп..  общего назначения с небольшими уклонами в предметные области... а вот вторые - фреймворки(это по словам САМИХ РАЗРАБОТЧИКОВ)

DIzer

  • Гость
Re: Про парсер и лексер.
« Ответ #81 : Сентябрь 13, 2012, 02:53:46 pm »
то есть мне лично интересно это вот с какой позиции куда процесс языкосоздания заносит в нашей реальности , где конкуренция достаточно высока и почему это так...

chucheloid

  • Newbie
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #82 : Сентябрь 13, 2012, 04:11:29 pm »
Другое дело, что практика показывает, чта-а средний программист не умеет думать еще и о конструировании DSL, даже eDSL не умеет. У него голова занята совсем другим - предметной областью.
Нет. Она у него занята головоломкой, на тему как впихнуть предметную область в узкие рамки языка программирования так, чтобы код не скатился в говно.
А если не занята, то проект проваливается с вероятностью близкой к 100%.

Просто люди настолько привыкли к данной совершенно бесполезной активности, что не замечают её.
С ДСЛ все намного проще. Написал логику как она есть. И скомпилировал.
Сделать компилятор намного проще, чем архитектуру архитектурить, ибо компилятор может генерировать любой говнокод и ни каких проблем это не создает.

Кстати немерле тоже умеет компилироваться в яваскрипт. http://user1663.netfx45lab.discountasp.net/
Можете сравнить данный способ создания веб интерфейсов с любым другим...

chucheloid

  • Newbie
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #83 : Сентябрь 13, 2012, 04:22:44 pm »
1. да и не только средний.. любой, которому есть чем заняться.
И чем же он занимается?
Ломает голову, как протащить через 100500 методов контекст, который в начале проекта был не нужен, а когда понаписали десятки метров кода понадобился?
Или продирается через тонны костылей, которые протаскивают что-то куда-то?
А может он долбит реализацию INotifyPropertyChanged, которая у всех классов настолько одинаковая, что даже не смешно?
...


2. в явке уже есть дополняющие языки (как доп язык javafx1.0, например , не прошел), впрочем они есть и под .net. По первому впечатлению  НИМЕРЛЕЙ спроектирован  лучше.. Что касается вторых версий (Немерлея и FX) - то разработчики (наверное понимая, что в разработанную нишу одним только сахаром не влезешь ) пытаются найти свое собственное место.. - как результат.. и там и там "FRAMEWORKS"
Я совершенно не понял что общего у JavaFX и Н2?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #84 : Сентябрь 13, 2012, 06:53:56 pm »
Другое дело, что практика показывает, чта-а средний программист не умеет думать еще и о конструировании DSL, даже eDSL не умеет. У него голова занята совсем другим - предметной областью.
Нет. Она у него занята головоломкой, на тему как впихнуть предметную область в узкие рамки языка программирования так, чтобы код не скатился в говно.
А если не занята, то проект проваливается с вероятностью близкой к 100%.

Типичный программист не знает полностью своего основного языка программирования даже если это просто java. Не знает как работает скажем jvm, не знат как работает сборщик мусора (а это уже .net'чик), и, в частности, не знает соберет ли сборщик мусора два объекта которые ссылаются друг на друга но извне на них больше ссылок нет. И что под капотом библиотек тоже не знает. Но при этом этот самый типичный разработчик, каким-то образом добивается поставленных перед проектом целей. Это факт подтверждаемый экспериментально.

Про то как устроены компиляторы, про какие-то грамматики и про то как сделать простейший язык (да даже тупо калькулятор который умеет + и -) они не знают и не ведают. И не умеют.
Y = λf.(λx.f (x x)) (λx.f (x x))

chucheloid

  • Newbie
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #85 : Сентябрь 13, 2012, 07:37:36 pm »
Типичный программист не знает полностью своего основного языка программирования даже если это просто java. Не знает как работает скажем jvm, не знат как работает сборщик мусора (а это уже .net'чик), и, в частности, не знает соберет ли сборщик мусора два объекта которые ссылаются друг на друга но извне на них больше ссылок нет. И что под капотом библиотек тоже не знает. Но при этом этот самый типичный разработчик, каким-то образом добивается поставленных перед проектом целей. Это факт подтверждаемый экспериментально.
Как меня утомила эта сказка.
Такое случается только если над ними стоят надсмотрщики, которые создают архитектуру. А такие люди без труда смогут сделать ДСЛ.
Либо проект маленький как хелловорлд. Тогда просто он не успевает загнуться до того как его доделают.

DIzer

  • Гость
Re: Про парсер и лексер.
« Ответ #86 : Сентябрь 13, 2012, 09:09:03 pm »
Как меня утомила эта сказка.
Такое случается только если над ними стоят надсмотрщики, которые создают архитектуру. А такие люди без труда смогут сделать ДСЛ.
Либо проект маленький как хелловорлд. Тогда просто он не успевает загнуться до того как его доделают.
Да нет не сказка, просто каждый занимается своим делом.. а насчет остального не вижу противоречия с тем о чем говорит Алексей - каждому свое. Понятие "маленький" относительно.. вон айфон - тоже маленький да отдельных "частей" в нем немного - но высокотехнологичный продукт однако..

chucheloid

  • Newbie
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #87 : Сентябрь 14, 2012, 03:48:51 pm »
Да нет не сказка, просто каждый занимается своим делом..
Именно что сказка. Ну не могут люди с низкой квалификацией сделать что-то большое.
Физически не могут.
Обязательно нужен надсмотрщик, который ходит и бьёт по рукам.
ДСЛ с этим справится гораздо лучше.
1)Банально в разы меньше писать. Те работа будет сделана быстрее и там будет меньше багов.
2)ДСЛ очень эффективно бьёт по рукам. Причем со 100% вероятностью и сразу.

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

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Про парсер и лексер.
« Ответ #88 : Сентябрь 14, 2012, 04:30:01 pm »
ДСЛ с этим справится гораздо лучше.
Поправочка: удачный DSL.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Про парсер и лексер.
« Ответ #89 : Сентябрь 14, 2012, 04:32:52 pm »
Я совершенно не понял что общего у JavaFX и Н2?
Я уже сказал  - ребрэндинг -стали называться фреймворками... разумеется каждый разошелся по "своим понятиям"... но тем не менее...