#prog #parsing #article
Obliteratingly Fast Parser Combinators (pdf)
Lexers and parsers are typically defined separately and connected by a token stream. This separate definition is important for modularity, but harmful for performance.
We show how to fuse together separately-defined lexers and parsers, drastically improving performance without compromising modularity. Our staged parser combinator library, flap, provides a standard parser combinator interface, but generates psecialized token-free code that runs several times faster than ocamlyacc on a range of benchmarks.
(thanks @clayrat)
Obliteratingly Fast Parser Combinators (pdf)
Lexers and parsers are typically defined separately and connected by a token stream. This separate definition is important for modularity, but harmful for performance.
We show how to fuse together separately-defined lexers and parsers, drastically improving performance without compromising modularity. Our staged parser combinator library, flap, provides a standard parser combinator interface, but generates psecialized token-free code that runs several times faster than ocamlyacc on a range of benchmarks.
(thanks @clayrat)
Blogspot
Obliteratingly Fast Parser Combinators
Jeremy Yallop , Ningning Xie , and I have a new draft out about combinator parsing, entitled Fusing Lexing and Parsing . The abstract is sh...
🔥6
Блог*
Сделать, что ли, отдельный хештег для serde 🤔
Таки сделал. А ещё сделал отдельный хештег parsing, а то материалов по парсингу на канале уже довольно много
Блог*
#моё #prog #rust В крейте time есть структура Date с методом format, который возвращает String со датой, отформатированной согласно переданному формату. Выглядит это примерно так (пример из документации): assert_eq!(date!(2019-01-02).format("%Y-%m-%d"),…
#prog #rust #rustlib
Хочу отметить, что моя претензия — парсинг форматной строки снова и снова — была решена в time начиная с версии 0.3.0, выпущенной 30 июля 2021 года, причём с подходом, похожим на описанный ранее мною в блоге.
Что там добавилось? Отдельный модуль format_description, который определяет пачку типов, описывающих компоненты формата — включая FormatItem и Component — и модуль formatting с трейтом Formattable, который реализовывается типами, описывающими формат форматирования даты и времени. Для того, чтобы получить формат из строки, достаточно вызвать функцию format_description::parse — или, если вы не хотите разбираться с ошибками при парсинге, макрос macros::format_description, который разберёт формат на этапе компиляции и проверит его правильность — и затем использовать результат в методах {Date, OffsetDateTime, PrimitiveDateTime, Time}::format, принимающих вторым аргументом ссылку на значение типа, реализующее
Хочу отметить, что моя претензия — парсинг форматной строки снова и снова — была решена в time начиная с версии 0.3.0, выпущенной 30 июля 2021 года, причём с подходом, похожим на описанный ранее мною в блоге.
Что там добавилось? Отдельный модуль format_description, который определяет пачку типов, описывающих компоненты формата — включая FormatItem и Component — и модуль formatting с трейтом Formattable, который реализовывается типами, описывающими формат форматирования даты и времени. Для того, чтобы получить формат из строки, достаточно вызвать функцию format_description::parse — или, если вы не хотите разбираться с ошибками при парсинге, макрос macros::format_description, который разберёт формат на этапе компиляции и проверит его правильность — и затем использовать результат в методах {Date, OffsetDateTime, PrimitiveDateTime, Time}::format, принимающих вторым аргументом ссылку на значение типа, реализующее
Formattable
.docs.rs
time - Rust
Feature flags
#prog #python #article
Jupyter Ascending: A Retrograde Development
Computational notebooks have a history dating back to the late 1980s, <...>. They combine two much older, better, but less popular ideas into a synthesis which manages to be less than the sum of its parts.
(и вдогонку ссылка оттуда на презентацию доклада I Don't Like Notebooks от Joel Grus, сделанного для JupyterCon 2018)
Jupyter Ascending: A Retrograde Development
Computational notebooks have a history dating back to the late 1980s, <...>. They combine two much older, better, but less popular ideas into a synthesis which manages to be less than the sum of its parts.
(и вдогонку ссылка оттуда на презентацию доклада I Don't Like Notebooks от Joel Grus, сделанного для JupyterCon 2018)
Google Docs
I Don't Like Notebooks - Joel Grus - #JupyterCon 2018
I Don't Like Notebooks hi, I'm Joel, and I don't like notebooks Joel Grus (@joelgrus) #JupyterCon 2018
👍2❤1
Forwarded from Технологический Болт Генона
🤩2
Блог*
— БОЖЕЧКИ КАКАЯ МИЛАЯ ПЛЮШЕВАЯ АКУЛА
В связи с уходом IKEA из России продам санкционный товар
Forwarded from Питонические атаки
Вам всегда в питоне не хватало указателей и арифметики над ними? Держите, пользуйтесь, теперь такое есть! (Пожалуйста, не надо)
https://github.com/ZeroIntensity/pointers.py
https://github.com/ZeroIntensity/pointers.py
GitHub
GitHub - ZeroIntensity/pointers.py: Bringing the hell of pointers to Python.
Bringing the hell of pointers to Python. Contribute to ZeroIntensity/pointers.py development by creating an account on GitHub.