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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Про «агрессивную» оптимизацию для Форта
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Ок. Так и сделаю.
Сообщение Добавлено: Вс янв 24, 2010 22:33
  Заголовок сообщения:   Ответить с цитатой
вообще лучше всего бы в раздел статей перевод, а после него можно и своими словами обсудить. (имхо).
Сообщение Добавлено: Вс янв 24, 2010 22:20
  Заголовок сообщения:   Ответить с цитатой
Остальное переведу/перескажу завтра, когда у самого всё в голове устаканится.

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

Думаю, тут есть что обсудить.
Сообщение Добавлено: Вс янв 24, 2010 22:19
  Заголовок сообщения:   Ответить с цитатой
Даю вводную 8)

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

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

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

Оказывается писанного перевода _этой_ статьи я не делал (есть про компиояцию в gForth). Могу перевести (типа дословно), а могу просто пересказывать здесь дальше в той же манере.
Сообщение Добавлено: Вс янв 24, 2010 22:05
  Заголовок сообщения:   Ответить с цитатой
Ну для таких слов и «классическая» inline-подстановка со щелевой оптимизацией опкодов (как в SPF) противопоказана.
Сообщение Добавлено: Вс янв 24, 2010 00:57
  Заголовок сообщения:   Ответить с цитатой
кстати, большое спасибо, оч интересная тема.
для Форта такая оптимизация, кстати, достаточно неоднозначна в силу возможных игр со стеком возвратов, исполнением данных и т.п.
Сообщение Добавлено: Вс янв 24, 2010 00:52
  Заголовок сообщения:  Про «агрессивную» оптимизацию для Форта  Ответить с цитатой
Не ново, но здесь не обсуждалось.

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

Эксперименты по полноценной «агрессивной» оптимизации генерируемого Фортом кода (как «у больших» языков программирования, по «Книге дракона»).
Сообщение Добавлено: Вс янв 24, 2010 00:47

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


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