[ Содержание ] [ Следующая ]
Входные данные компьютерных программ обычно имеют некоторую структуру; на самом деле, для каждой компьютерной программы, которая производит ввод можно определить "входной язык", который она воспринимает. Входной язык может быть комплексным, таким, как язык программирования или простой, такой как последовательность чисел. К сожалению, обычные средства ввода ограничены, сложны в использовании, и часто неспособны проверять свои входные данные на правильность.
Yacc обеспечивает общее средство для описания входных данных компьютерных программ. Пользователь Yacc указывает структуры входных данных вместе с кодом, вызываемом при распознавании каждой такой структуры. Yacc преобразовывает такие спецификации в подпрограммы, поддерживающие процесс ввода данных; часто удобно обрабатывать этой подпрограммой большую часть управления (flow control) в приложении.
Подпрограмма ввода, произведенная Yacc-ом вызывает написанную пользователем процедуру, возвращающую следующий токен. Таким образом, пользователь может определить входные данные своей программы с точки зрения отдельных входных символов или с точки зрения конструкций более высокого уровня, таких как имен или чисел. Пользовательская процедура также может обрабатывать такие идиоматические особенности, как соглашения о комментариях и продолжениях строки, которые обычно не подпадают под простые грамматические описания.
В дополнение к компиляторам C, APL, Pascal, RATFOR и т.д., Yacc также использовался для менее традиционных языков, включающих язык фотонаборных автоматов, нескольких языков для настольных калькуляторов, системы исправления документов и системы отладки Фортрана.
[ Содержание ] [ Следующая ]
c 1998-2000 SoloTony (Antonio Solo) | solotony@mail.ru |