Оптимизирующие парсер-комбинаторы

May 21, 2010 09:00

Оптимизирующие парсер-комбинаторы
Дмитрий Попов

Аннотация

Статья рассказывает о технике парсер-комбинаторов для построения ( Read more... )

#5

Leave a comment

gds May 21 2010, 09:41:10 UTC
let p_float = [...]
Что интересно, этот парсер работает почти вдвое быстрее, чем стандартная окамловская функция float_of_string.

Интересно, почему так получилось?

Reply

alexott May 21 2010, 12:10:45 UTC
в С++ тоже самое - если пользоваться парсером на базе 2-го спирита, то оно быстрее чем atoi

Reply

ext_4199 May 21 2010, 12:49:17 UTC
А все-таки, почему?

Reply

mr_aleph May 21 2010, 12:59:00 UTC
у меня есть ощущение, что стандартные способы разбора типа float_of_string поддерживают более сложные форматы чисел, каким-нибудь более точным способом обрабатывают случаи чисел не представимых в float, а так же учитывают локаль.

Reply

ext_4199 May 21 2010, 13:49:21 UTC
Makes sense.

Reply

ssart May 25 2010, 11:51:18 UTC
Не быстрее. Как только мы перестаём в цикле переводить одно и то же значение, а берём таблицу с предварительно случайным образом созданными строками - всё становится на свои места, и atoi начинает выигрывать. Проверялось на gcc-4.4@x86_64. Похоже, что это компиляторы C++ шибко вумные стали.

Reply


Leave a comment

Up