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 ] |
Заголовок сообщения: | |
Даю вводную Итак, задача получить 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/ |