Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 24, 2024 15:40

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 150 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 10, 2007 16:26 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
вопрос писал(а):
могу набросать на Prolog'e


Набрасывай


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Mihail писал(а):
Ну давайте прикинем, что собой будут представлять примитивы на
"промежуточном ассемблере" .
Для обозначения команд этого ассемблера предлагаю использовать
префикс 'M'. За тем, можно представить в этом виде Форт для MSP
http://fpauk.narod.ru/spmsp.rar


8)

Mihail писал(а):
CODE DUP

 MMOV   --@DSTK,TOS

 NEXT

END-CODE


мой вариант:
Код:
CODE DUP
         dpush tos
      exit
END-CODE



Mihail писал(а):
CODE !

 MMOV   @TOS,@DSTK++

 MMOV   TOS,@DSTK++

 NEXT

END-CODE


мой вариант:
Код:
CODE !
          MOV temp , subtop
          MOV [tos] , temp
          MOV tos , CELL [top]
          dheave 2 CELLS
      exit
END-CODE


Mihail писал(а):
CODE EXECUTE

        MMOV   TMP, TOS

        MMOV   TOS,@DSTK++

        MJMP    TMP

END-CODE


мой вариант:
Код:
CODE EXECUTE
             MOV  addr , tos
             dpop tos
           JMP addr
        END-CODE


Mihail писал(а):
Очень сильно сомниваюсь, что написание этого ассемблера будет

проще, чем написание данных примитивов в кодах.

оно не проще, конечно же, но удобнее. К тому же проще, чем реализовать полную поддержку ассемблера для используемого процессора.
и значительно меньше по объему.

Mihail писал(а):
Или можно предумать более простой в реализации синтаксис?

ну, вроде как я предложил сравнительно более простой 8)


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
Mihail писал(а):
Или можно предумать более простой в реализации синтаксис?

ну, вроде как я предложил сравнительно более простой


Перепись, перепись!!! :)) Кто проще? :))))))


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
А чтобы никому обидно не было, у меня вот какое предложение. Прежде, чем писать всеобщие ассемблеры с разными синтаксисами, надо написать генератор всеобщих ассемблеров!.. :)) Тогда на этом генераторе можно будет нагенерировать всеобщие ассемблеры для разных фортов, процессоров и ОС. И уже потом на этих ассемблерах написать что-нибудь...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 10, 2007 23:02 
Не в сети
Moderator
Moderator
Аватара пользователя

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

шутку юмора понял 8)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 00:22 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
А чтобы никому обидно не было, у меня вот какое предложение. Прежде, чем писать всеобщие ассемблеры с разными синтаксисами, надо написать генератор всеобщих ассемблеров!.. :)) Тогда на этом генераторе можно будет нагенерировать всеобщие ассемблеры для разных фортов, процессоров и ОС. И уже потом на этих ассемблерах написать что-нибудь...

Уважаемый Хищник, неужели я не подчеркнул раз 10, что всеобщий ассемблер (а особенно генератор всеобщих ассемблеров ) невозможен или ненужен, неужели я не сказал, что возможность такого ассемблера вытекает из простоты примитивов форта, первых алгоритмов, на которых он базируется?

Неужели также я не сказал, что он имеет смысл только в некоторых случаях, улучшая удобство и скорость разработки?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 00:27 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Скажем, всеобщий ассемблер для реализации компиляторов С я предлагать бы не стал.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 14:52 
Имхо такой ассемблер не имеет смысла. Ассемблер, на то и ассемблер, чтобы отражать систему команд конкретного микропроцессора. Именно за счет этого и становится возможным низкоуровневая оптимизация кода (работа на уровне машинных команд). И так или иначе такой всеобщий ассемблер придется адаптировать к конкретным микропроцессорным наборам команд и регистрам, что в итоге выродится в несколько ассеблеров объединенных общим front-end'ом. Нереально ето. Как например скомпилировать на таком асемблере код, использующий восемь регистров, на микропроцессоре, где их всего три? Единственный вариант - сохранять содерживое регистров в память, что уже приведет к несовпадающему с оригинальным ассемблером, машкоду.
Вообщем имхо в универсальном ассемблере смысла я не вижу. :shuffle; Точнее, даже будучи реализованным, такой ассемблер не сможет решать те задачи, для которых его создавали.
Лучше пейсать специфичные для конкретного микропроцессора ассемблеры на Форте. А остальные задачи возложить на Форт.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 17:05 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Владимир писал(а):
Лучше пейсать специфичные для конкретного микропроцессора ассемблеры на Форте.


Это когда понадобится быстродействие. Вообще, проще всего, написать примитивы в кодах.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 17:08 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
вопрос писал(а):
Скажем, всеобщий ассемблер для реализации компиляторов С я предлагать бы не стал.


Си выражается через Форт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 17:12 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Будет чуть врмеени, я небольшую модельку исходника набросаю, будет понятнее, что к чему, вчера начал, но требуется полистать ассемблерный справочник - многое просто забыл

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 21:25 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Владимир писал(а):
И так или иначе такой всеобщий ассемблер придется адаптировать к конкретным микропроцессорным наборам команд и регистрам, что в итоге выродится в несколько ассеблеров объединенных общим front-end'ом. Нереально ето. Как например скомпилировать на таком асемблере код, использующий восемь регистров, на микропроцессоре, где их всего три?


8) с одним но, если говорить не о универсальном ассемблере, а о форт-ассемблере для более удобного написания форт-примитивов, то ситуация таки разруливаемая получается. Во-первых регистров в ФВМ меньше, чем у большинства процессоров, к тому же можно писать не полный асм, а урезанный - некий набор макросов, которые можно писать и в ручную в виде 0x34 C, и так далее с возможностью правки некоторых полей. То есть я не за всеобщий, как в названии, а за псевдоассемблер - который может быть использован на любой (почти) архитектуре без изменений. Что же до почти, то такие архитектуры, как у микрочиповского PIC или у Сановской Явы - так на них форт к сожалению нормально выразить не получится 8(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 11, 2007 21:45 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Ассемблер, на то и ассемблер, чтобы отражать систему команд конкретного микропроцессора.
поэтому все ассемблеры в общих чертах так похожи :)

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 12, 2007 07:37 
mOleg писал(а):
8) с одним но, если говорить не о универсальном ассемблере, а о форт-ассемблере для более удобного написания форт-примитивов, то ситуация таки разруливаемая получается.

Аааа, ну тогда другое дело. :) Только вот такой псевдоассемблер выродится в обычное расширение Форта (интересно можни ли такой псевдоассемблер называть ассемблером :D ).
Хотя... это же Форт, и какие-то стандартные образы к нему мало применимы :) За эту гибкость мышления и реализаций мы его и любим :D


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 12, 2007 08:02 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Хотя... это же Форт, и какие-то стандартные образы к нему мало применимы За эту гибкость мышления и реализаций мы его и любим


вообще, набор команд ФВМ тоже ассемблер 8)
Только там есть один момент - команды эти достаточно нетривиальными получаются с точки зрения большинства процессоров 8( 8)
Теперь договоримся, что любое слово, описанное не на форте (не имеются ввиду случаи 0x0A C, и им подобные), будем относить
к ФВМ. И при этом захотим получить форт-систему, с минимальными правками ФВМ на портирование - в идеале вообще без правок ФВМ обойтись - а только правкой ЦК 8) То традиционный ассемблер не подходит - ФВМ придется переписывать. А вот псевдоассемблер подойдет, так как псевдоасм создаст достаточно качественную прослойку между асемблером целевой платформы и высокоуровневым кодом (форта).
<pre>
Потому что:
- количество и наименование регистров будет сохраняться;
- имена команд и их функциональность будет сохраняться;
- ФВМ форта функционально фиксирована.

Вобщем таки получится "всеобщий асм", но с рядом ограничений, а именно:
- не полная поддержка команд целевого процессора (полная лишь на столько, на сколько необходимо)
- необычное наименование команд и регистров (впрочем, если знаешь три-четыре асма разных архитектур - то привыкнуть не сложно)
- возможно меньшее количество методов адресации, то есть не будет чего-то типа: MOV top , [top+rtop]
- возможно меньший шанс нахождения максимльно скоростного алгоритма для данной архитектуры процессора.
</pre>
то есть я к чему веду - такой псевдоассемблер позволил бы просто писать низкоуровневые слова ФВМ одинаковым образом для различных типов шитого кода и процессорных архитектур за счет введения дополнительного уровня абстракции, но с некоторым урезанием функциональности ассемблера. Короче компромис 8)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 150 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10  След.

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


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

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


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

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