Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 06:56

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 175 ]  На страницу 1, 2, 3, 4, 5 ... 12  След.
Автор Сообщение
 Заголовок сообщения: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 12:53 
Появилось тут желание для нужд целевой компиляции вместо использования Форт-асма использовать ассемблер стороннего поизводителя. Скажем - Асм gcc. Всё-таки поддержка разных процессоров там посерьёзнее будет, да и баги скорее отлавливаются. Для этого думаю заставить Форт транслировать текст программы в Асм-код удобоваримый для данного компилятора. Сам АСМ-код из текста программы оставляю неизменным, все остальное оформить в виде меток и констант.
Примеры подобного у кого-то есть что-бы совсем не изобретать велосипед?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 12:57 
Ну, как бы, весь FORTH, за исключением счетного числа кодовых слов, и состоит из "меток и констант". Переводить нечего.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 13:04 
gudleifr писал(а):
Ну, как бы, весь FORTH, за исключением счетного числа кодовых слов, и состоит из "меток и констант". Переводить нечего.

Помимо меток и констант есть еще собственно сам машинный код который собственно и выполняется процессором и который надо чем-то написать. Процессоры становятся сложнее и всроенные асмы Форта просто за ними не успевают. Вот потому и есть желание воспользоваться трансляцией в gcc-as(ну или встроенные асмы Keil-а или IAR-а).


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 13:10 
ArtemKAD писал(а):
Помимо меток и констант есть еще собственно сам машинный код который собственно и выполняется процессором и который надо чем-то написать.
Это называется ядром FORTH-системы. Оно пишется на любом удобном языке. Строчек, этак, пара тысяч максимум. И как-то формализовать их в каком-то универсально применимом для любого FORTH виде еще никому не удавалось. Потому что нафиг не надо.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 13:29 
gudleifr писал(а):
Оно пишется на любом удобном языке. Строчек, этак, пара тысяч максимум. И как-то формализовать их в каком-то универсально применимом для любого FORTH виде еще никому не удавалось. Потому что нафиг не надо.

Не надо это когда пишешь для одной платформы. Когда постоянно меняются железяки в т.ч. и процессора, необходимость появляется.
Так почему бы не формализировать этот вариант? Остановившись на традиционной связке целевого Форта+Асм.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 13:35 
ArtemKAD писал(а):
Когда постоянно меняются железяки в т.ч. и процессора, необходимость появляется.
Так напишите ядро на одном из модных переносимых языков. Например, nasm, C#, Prolog, BrainFuck...
ArtemKAD писал(а):
Так почему бы не формализировать этот вариант?
Потому, что универсальный FORTH - это фикция. Прибежище паятелей простых машин и упражнение в онанизме юных мета-программистов.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 14:15 
gudleifr писал(а):
ArtemKAD писал(а):
Когда постоянно меняются железяки в т.ч. и процессора, необходимость появляется.
Так напишите ядро на одном из модных переносимых языков. Например, nasm, C#, Prolog, BrainFuck...


nasm - x86 и ничего больше.
Prolog - без операционки с этим еще хуже чем с Си и Фортом.
BrainFuck - это вообще не серьёзно
C# - и как долго ждать пока Микрософт портирует .NET (CLR) на платформу о которой она ничего не знает?


Последний раз редактировалось ArtemKAD Пн дек 01, 2014 14:20, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 14:18 
ArtemKAD писал(а):
это вообще не серьёзно.
Так используйте любой другой удобный для Вас язык.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 14:25 
gudleifr писал(а):
ArtemKAD писал(а):
это вообще не серьёзно.
Так используйте любой другой удобный для Вас язык.

Меня целевой Форт-транслятор с асмом вполне устраивает. Почему бы не сделать для него доработку после которой он станет устраивать еще больше?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 14:35 
ArtemKAD писал(а):
Почему бы не сделать для него доработку после которой он станет устраивать еще больше?
Если Вас не устраивает программа, то, конечно, ее стоит переписать. Не надо только под это подводить не относящуюся к делу базу. Переводчиком с "языка FORTH" на язык "машины" служит ядро FORTH-системы. Это же ядро является практически единственной вещью, зависящей от "машины". Если Вы напишете ядро на ЛЮБОМ удобном Вам языке, проблемы с переводом не будет: за неимением вещей, которые надо переводить.

P.S. Может, так станет понятнее: [url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\0.OBSIE%20MESTA[/url].


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 17:36 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Подходящие ещё ассемблеры FASM и МАSM.
Для KolibriOS использовался FASM для переноса варианта SPF4 под неё.
В MASM, например, генерируется программа на Форт подобном языке в ForthEC проекте.

P.S. Одна из ссылок на форуме разработка связки SPF4 и Fasm...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 18:47 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
ArtemKAD писал(а):
Появилось тут желание для нужд целевой компиляции вместо использования Форт-асма использовать ассемблер стороннего поизводителя. Скажем - Асм gcc. Всё-таки поддержка разных процессоров там посерьёзнее будет, да и баги скорее отлавливаются. Для этого думаю заставить Форт транслировать текст программы в Асм-код удобоваримый для данного компилятора. Сам АСМ-код из текста программы оставляю неизменным, все остальное оформить в виде меток и констант.
Примеры подобного у кого-то есть что-бы совсем не изобретать велосипед?


:idea: Идея понятна и даже практична. Поддерживаю.

С примерами....постараюсь покопаться в загашниках и так по свободному поиску....отчасти идеи реализации форт-слов на асме под разные архитектуры можно стянуть с SwiftX (неприятно там лишь то, что у них постфиксный асм).

PS

за флуд в теме буду как минимум сильно ругаться!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 18:57 
ArtemKAD писал(а):
...

diver писал(а):
...

Вот, видите: проще один раз понять, чем всю оставшуюся жизнь себя и других мучить.

Начните сначала.
Например, для косвенного кода имеем примерно:
Изображение.
Какие квадратики Вы хотите переписать на "переносимом языке"?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 20:18 
KPG писал(а):
В MASM, например, генерируется программа на Форт подобном языке в ForthEC проекте.]

Да, похоже именно то что надо. Только там в MASM32 для х86, для остальных там похоже именно асм gcc(из GNU binutils).


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-транслятор в Ассемблер
СообщениеДобавлено: Пн дек 01, 2014 20:28 
ArtemKAD писал(а):
Да, похоже именно то что надо.
Т.е. пример чесания левой ногой за правым ухом. Еще одна несовместимая ни с чем фиговина, весящая больше, чем любая программа, которую можно на ней написать.


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 175 ]  На страницу 1, 2, 3, 4, 5 ... 12  След.

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


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

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


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

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