Руководство пользователя для GNU Awk
Приложение C. Замечания о реализации
C.4 Предложения по усовершенствованию
Приведем несколько проектов, которые могут понравиться будущим gawk хакерам. Они могут потребовать от нескольких дней и до недель для программирования, в зависимости от того, что вы выберете и насколько быстрым программистом являетесь. Посылайте написанные вами усовершенствования кураторам проектов в GNU. См. раздел C.2.1 [Добавление новых свойств], стр. 295, с описанием правил добавления новых возможностей в gawk. См. также раздел B.7 [Сообщения об конфликтах и ошибках], стр. 292, по поводу контактов с кураторами.
1. Компиляция программ awk. gawk использует анализатор Bison (YACC-like), превращающий входной сценарий в синтаксическое дерево; это дерево потом исполняется простым рекурсивным исполнителем. Этот метод требует много лишних действий, так как рекурсивный исполнитель вызывает множество процедур даже в простейших случаях.
Нужно, чтобы gawk превращала дерево разбора сценария в Си-программу, которую пользователь мог бы потом компилировать, используя обычный Си-компилятор и специальную библиотеку, содержащую все нужные функции (regexps, fields, associative arrays, type coercion, и т.д.).
Более легкой возможностью может быть промежуточная фаза awk превращения дерева разбора в линейную байтовую форму, подобную той, которая используется в GNU Emacs Lisp. Тогда рекурсивный исполнитель может быть заменен простым интерпретатором, что даст скорость, промежуточную между исполнением скомпилированной программы и тем, как gawk работает сейчас.
2. Чтобы программы в комплекте тестов могли использовать документацию из этой книги.
3. См. файл `FUTURES' для нахождения других идей. Вступите в контакт с нами, если вы серьезно хотите заняться одной из названных здесь задач.
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|