Forth
http://fforum.winglion.ru/

Про «агрессивную» оптимизацию для Форта
http://fforum.winglion.ru/viewtopic.php?f=35&t=2403
Страница 1 из 1

Автор:  be_nt_all [ Вс янв 24, 2010 00:47 ]
Заголовок сообщения:  Про «агрессивную» оптимизацию для Форта

Не ново, но здесь не обсуждалось.

M. Anton Ertl. Compilation of Stack-Based Languages, status April 1999

Эксперименты по полноценной «агрессивной» оптимизации генерируемого Фортом кода (как «у больших» языков программирования, по «Книге дракона»).

Автор:  mOleg [ Вс янв 24, 2010 00:52 ]
Заголовок сообщения: 

кстати, большое спасибо, оч интересная тема.
для Форта такая оптимизация, кстати, достаточно неоднозначна в силу возможных игр со стеком возвратов, исполнением данных и т.п.

Автор:  be_nt_all [ Вс янв 24, 2010 00:57 ]
Заголовок сообщения: 

Ну для таких слов и «классическая» inline-подстановка со щелевой оптимизацией опкодов (как в SPF) противопоказана.

Автор:  be_nt_all [ Вс янв 24, 2010 22:05 ]
Заголовок сообщения: 

Даю вводную 8)

Итак, задача получить data flow graph из форт-исходника.

Для начала не берём в расчёт различные управляющие конструкции, вроде IF, а только операции (арифметические и прочие) и стековые манипуляторы. При компиляции стековых манипуляторов мы их просто выполняем. Основной трюк начинается при работе со словами обработки данных. Компилятор берёт со стека и кладёт обратно столько же элементов, сколько и компилируемое слово. Но вместо его выполнения, компилятор строит структуру, содержащую слово, и взятые со стека операнды. А вместо результата мы возвращаем на стек указатель на эту структуру. Нетрудно увидеть что в результате получается граф потоков данных, готовый к дальнейшему употреблению. См. картинку 1 в статье A New Approach to Forth Native Code Generation.

Продолжение следует.

Оказывается писанного перевода _этой_ статьи я не делал (есть про компиояцию в gForth). Могу перевести (типа дословно), а могу просто пересказывать здесь дальше в той же манере.

Автор:  be_nt_all [ Вс янв 24, 2010 22:19 ]
Заголовок сообщения: 

Остальное переведу/перескажу завтра, когда у самого всё в голове устаканится.

Кстати, если с классическим фортом возникает много всяких частных сложностей (Эртлом описанных), то (как я и предполагал, впервые увидев strongForth) на статически типизированный форт все эти алгоритмы ложатся практически идеально .

Думаю, тут есть что обсудить.

Автор:  mOleg [ Вс янв 24, 2010 22:20 ]
Заголовок сообщения: 

вообще лучше всего бы в раздел статей перевод, а после него можно и своими словами обсудить. (имхо).

Автор:  be_nt_all [ Вс янв 24, 2010 22:33 ]
Заголовок сообщения: 

Ок. Так и сделаю.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/