Разница между однопроходными и двухпроходными трансляторами заключается в том, сколько раз исходный код анализируется во время компиляции. 3
Однопроходный транслятор обрабатывает входные данные один раз, переходя непосредственно от лексического анализа к генератору кода, а затем возвращаясь к следующему чтению. 3 К достоинствам такого транслятора можно отнести высокую скорость компиляции, а к недостаткам — получение, как правило, не самого эффективного кода. 12
Двухпроходные трансляторы обрабатывают исходный код или абстрактное синтаксическое дерево программы несколько раз. 3 На первом проходе они осуществляют анализ программы и формируют информационные таблицы, которые используются при втором проходе для создания объектного кода. 1 Двухпроходные трансляторы обеспечивают лучшее обнаружение ошибок и оптимизацию. 3