Как делают синтаксический анализатор Scala combinators выдерживает сравнение с Парсеком Haskell? [закрытый]

22
задан artif 13 March 2010 в 07:15
поделиться

2 ответа

У вас много вопросов!

Сравнение parsec (которая является лишь одной из многих библиотек комбинаторов парсеров Haskell) с реализацией parsec в Scala

Здесь никто не проводил сравнений, поскольку код Scala довольно новый, но посмотрите документацию:

Обратите внимание, что в Haskell есть много других библиотек комбинаторов парсеров, если вас интересует этот подход, например,

Каковы некоторые сильные/слабые стороны реализации комбинаторов парсеров в Scala по сравнению с Haskell?

Коду Haskell более десяти лет, он хорошо изучен, есть много примеров, много документации и пользовательских примеров. Материал Scala относительно новый.

packrat parsing

packrat parsing - это совсем другое. Оригинальный packrat paper был разработан на языке Haskell, но с тех пор получил более широкое распространение.

Есть ли веб-страница или какой-то другой ресурс, показывающий, как различные операторы/функции/DSL-сахара из реализации одного языка отображаются на реализацию другого?

Нет, но это было бы здорово. Однако почти все(?) библиотеки комбинаторов парсеров основаны на новаторской реализации parsec, так что у них много общего с оригинальным parsec.

14
ответ дан 29 November 2019 в 05:40
поделиться

Также имеется следующий технический отчет:

Комбинаторы синтаксического анализатора в Scala

Комбинаторы синтаксического анализатора хорошо известны в языках функционального программирования, таких как Haskell. В этой статье мы описываем, как они реализованы в виде библиотеки на Scala, функциональном объектно-ориентированном языке. Благодаря гибкому синтаксису Scala мы можем точно аппроксимировать нотацию EBNF, поддерживаемую выделенными генераторами синтаксического анализатора. Для непосвященных мы сначала объясним концепцию комбинаторов синтаксического анализатора, разработав минимальную библиотеку с нуля. Затем мы переходим к подробному описанию существующей библиотеки Scala, включая ее поддержку для обозначения привязки переменных как части синтаксиса. Мы приводим несколько реалистичных примеров, чтобы проиллюстрировать полезность нашей библиотеки.

report.pdf (324K)

7
ответ дан 29 November 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: