Введение

Реализация языка программирования SNOBOL4. SPITBOL (Speedy Implementation of SNOBOL) — это компилируемая реализация языка программирования SNOBOL4. Изначально разработанный для семейства компьютеров IBM System/360 и System/370, он был портирован на большинство основных микропроцессоров, включая SPARC. Его создателями были Роберт Дьюар и Кен Белчер, в то время работавшие в Иллинойском технологическом институте. До разработки SPITBOL считалось, что SNOBOL4 работает медленно, требует больших затрат памяти и не подлежит компиляции из-за своей динамической природы. Хотя позднее связывание не позволяет определить всё во время компиляции, SPITBOL использует различные стратегии для принятия решений как можно раньше. Доступны современные версии компилятора SPITBOL. С 2001 года исходный код оригинального компилятора SPITBOL 360 находится в открытом доступе под лицензией GNU General Public License. MACRO SPITBOL — это реализация SPITBOL, написанная в 1970-х годах Робертом Дьюаром и Энтони П. Макканном. MACRO SPITBOL написан на MINIMAL — языке ассемблера для абстрактной машины. Набор инструкций тщательно определён, чтобы обеспечить некоторую гибкость при реализации, позволяя использовать аппаратные операции, благоприятные для обработки строк. Реализация MINIMAL, предназначенная для интерпретации на микрокомпьютерах, была выполнена путём преобразования MINIMAL в MICRAL с использованием транслятора, который сам был реализован на SPITBOL. Версия MACRO SPITBOL для MICRAL вместе с интерпретатором MICRAL занимала менее 40 КБ. Такое экстремальное сжатие объектного кода MICRAL достигается за счёт набора макроподстановок машинного кода, которые минимизируют объём, необходимый для объектного кода и таблицы макросов. Сложность известных алгоритмов для оптимального решения этой задачи высока, однако эффективные эвристики позволяют достичь почти оптимальных результатов. Исходный код MACRO SPITBOL был опубликован под лицензией GNU General Public License 17 апреля 2009 года.