Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 20:25

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




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

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Не ново, но здесь не обсуждалось.

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

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


Последний раз редактировалось be_nt_all Вс янв 24, 2010 00:54, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 00:52 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
кстати, большое спасибо, оч интересная тема.
для Форта такая оптимизация, кстати, достаточно неоднозначна в силу возможных игр со стеком возвратов, исполнением данных и т.п.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 00:57 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Ну для таких слов и «классическая» inline-подстановка со щелевой оптимизацией опкодов (как в SPF) противопоказана.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 22:05 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Даю вводную 8)

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

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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 22:19 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Остальное переведу/перескажу завтра, когда у самого всё в голове устаканится.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 22:20 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вообще лучше всего бы в раздел статей перевод, а после него можно и своими словами обсудить. (имхо).

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 22:33 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Ок. Так и сделаю.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB