Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт май 27, 2022 03:59

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 150 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 13, 2007 19:46 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7519
Благодарил (а): 21 раз.
Поблагодарили: 142 раз.
вопрос писал(а):
Плюс ограничения и перечни регистров (ещё строчек двадцать-сорок). Зато всё ищет само и от процессора к процессору меняется только "ограничения" и "реализация". Т.е. то, во что преобразуется на выходе конечный результат поиска

Еще чуть-чуть, и получится gcc...
Когда люди хотят сделать, они делают. И при случае активно используют все, что им может в этом помочь. А если видят, что сделать нельзя, сложно или просто не нужно, с удовольствием отказываются. А вот когда интересна маниловщина - начинаются мечты, как оно будет круто.


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

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

Что мне может помочь - дайте полный набор примитивов форта с соответствующими абстрактными описаниями и какой синтаксис абстрактного ассемблера желательно было бы предлагать
Пролог-программе в качестве исходника. Если не обломаюсь, напишу за пару дней, отладка - пару недель в свободное время.

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


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

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

Кто-нибудь прочёл-понял исходник Пролога? Там на формулки смотреть не нужно, только на их "расшифровку"

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7519
Благодарил (а): 21 раз.
Поблагодарили: 142 раз.
Да нету у Форта "полного набора примитивов". Если попытаться его написать, с большой вероятностью получится дутый, высосанный из пальца стандарт, который ляжет мертвым грузом. Насчет Си - некорректно. Си - это front-end, Форт - еще и back-end. Си можно представить в виде стековой машины, достаточно обходить дерево выражений в одном порядке. Не говорю уже о .net (MSIL). Стековая машина в чистом виде, включая dup и drop в системе команд. При этом в него транслируются C++, C#, и ворох других, абсолютно не привязанных к стеку, языков.


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

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

Полный набор примитивов КАКОГО-НИБУДЬ реального Forth'a

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7519
Благодарил (а): 21 раз.
Поблагодарили: 142 раз.
Полный набор примитивов не является тем "общим знаменателем", к которому следует приводить форт-машины. Это становится понятным, если попробовать действительно использовать форт для разных процессоров. Для какой-то архитектуры некий примитив будет очень сложным, а для какой-то - наоборот, сильно упрощающим жизнь. Обернем все в макросы? Отлично, потеряется прозрачное видение внутренностей движка. Зато таакие перспективы... шей да пори, не будет пустой поры. Еще три десятка процессоров... а потом появится четвертый десяток, и станет ясно, что куча их команд вообще никак не предусмотрена.

Чем не нравится написание сразу Форта на родном для процессора ассемблере? Чем также не нравится постфиксный ассемблер? Да, придется работать и напрягать мозги для достижения вполне конкретных характеристик. Написание еще одной прокладки между Фортом и ассемблером несколько отодвигает этот этап, но рано или поздно все равно придется.


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

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

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7519
Благодарил (а): 21 раз.
Поблагодарили: 142 раз.
Я уже постил тот постфиксный ассемблер, которым пользуюсь. Можно еще десяток вариантов сделать, я же не против. Но лозунги тут не работают - нельзя заставить всех взять что-то, и начать это что-то "развивать". Всегда найдется человек, который по прошествии некоторого времени скажет "я посмотрел, понял, что вы все ерундой занимаетесь, и все переписал заново". Что мы, собственно, и наблюдаем на форуме уже не первый раз. Сделать самому - само по себе очень неплохо, но не надо вокруг этого желания водить хороводы и говорить "вот сейчас, погодите, я сделаю, и всем сразу будет хорошо". Можно предложить свою уже готовую разработку, это просто жест вежливости. Но не странно ли - Форт написать просто, ассемблер на Форте написать просто... даже форт-процессор сделать просто. Но тем не менее с завидной периодичностью возникают предложения "а давайте я сейчас сделаю форт/ассемблер/процессор, только вы уж все им пользуйтесь, и свое не пишите".


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

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

Было МОЖНО И ТАК

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7519
Благодарил (а): 21 раз.
Поблагодарили: 142 раз.
Ну и DUP в 5 разных стилях - еще не Форт. Пока что тут тот же самый тупик, что и в других подобных проектах - пишутся только самые приятные примеры. А все остальное... ну, кто-то наверняка сделает. Только вот никто почему-то не хочет делать это "все остальное".

Чисто концептуально - Форт и есть промежуточный язык. К нему можно приводить разные процессоры. А тут получается еще один промежуточный язык, на котором можно написать промежуточный язык. Мало ли как еще можно? Обсуждение уже разрослось, а выхода нет, только копится общее недовольство тем, что идея пропадает.


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2155
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
вопрос писал(а):
Полный набор примитивов КАКОГО-НИБУДЬ реального Forth'a

Возьми набор примитивов СПФ 4.18. Файл - spf_forthproc.

_________________
С уважением, chess


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

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


Зачем?
http://devbiol.zoo.uwo.ca/~kvt/relf-0.2.zip и то можно сократить.


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

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


есть оптимальный набор 8) а полного быть и не должно.
О стандарте речи по-моему не шло.

Хищник писал(а):
Для какой-то архитектуры некий примитив будет очень сложным, а для какой-то - наоборот, сильно упрощающим жизнь. Обернем все в макросы? Отлично, потеряется прозрачное видение внутренностей движка. Зато таакие перспективы... шей да пори, не будет пустой поры. Еще три десятка процессоров... а потом появится четвертый десяток, и станет ясно, что куча их команд вообще никак не предусмотрена.

Это понятно, но в то же время писать для каждого нового процессора ассемблер достаточно неприятно, использовать же стиль: "0xC3 C, " тоже не очень удобно, так как при этом вообще нету никакой прозрачности ведения, если только вы не умеете читать коды 8)
Конечно же, есть архитектуры, на которые форт портировать практически очень сложно, например процессоры PIC микрочипа, но для большинства интеловских процессоров можно найти некоторый устаканенный набор команд. Вообще речь идет о поиске компромисса, между наглядностью и удобством написания примитивов, сложностью реализации целевого ассемблера и простотой использования побайтного задания кодов команд. (как это я понимаю).

Хищник писал(а):
Чем не нравится написание сразу Форта на родном для процессора ассемблере?

он должен существовать - этот ассемблер, причем в рамках используемой форт-системы.
Кроме того получается достаточно ненаглядно, и каждый раз полностью придется переписывать ФВМ.

Хищник писал(а):
Чем также не нравится постфиксный ассемблер?

нравится, но привычнее инфиксный, а значит удобнее. Кроме того разница между ними с точки зрения сложности реализации не велика.

Хищник писал(а):
Написание еще одной прокладки между Фортом и ассемблером несколько отодвигает этот этап, но рано или поздно все равно придется.

какой этап?

Хищник писал(а):
Я уже постил тот постфиксный ассемблер, которым пользуюсь. Можно еще десяток вариантов сделать, я же не против. Но лозунги тут не работают - нельзя заставить всех взять что-то, и начать это что-то "развивать"

претензия понятна, но по-моему идет обсуждение как лучше сделать и почему.

Хищник писал(а):
Сделать самому - само по себе очень неплохо, но не надо вокруг этого желания водить хороводы и говорить "вот сейчас, погодите, я сделаю, и всем сразу будет хорошо". Можно предложить свою уже готовую разработку, это просто жест вежливости. Но не странно ли - Форт написать просто, ассемблер на Форте написать просто... даже форт-процессор сделать просто. Но тем не менее с завидной периодичностью возникают предложения "а давайте я сейчас сделаю форт/ассемблер/процессор, только вы уж все им пользуйтесь, и свое не пишите".

вероятно я что-то пропустил - разве такие призывы были?

Хищник писал(а):
Ну и DUP в 5 разных стилях - еще не Форт. Пока что тут тот же самый тупик, что и в других подобных проектах - пишутся только самые приятные примеры. А все остальное... ну, кто-то наверняка сделает. Только вот никто почему-то не хочет делать это "все остальное".

идею легче проиллюстрировать на DUP-е или даже DROPе 8) более сложные примеры тоже можно привести.

Хищник писал(а):
Чисто концептуально - Форт и есть промежуточный язык. К нему можно приводить разные процессоры. А тут получается еще один промежуточный язык, на котором можно написать промежуточный язык. Мало ли как еще можно? Обсуждение уже разрослось, а выхода нет, только копится общее недовольство тем, что идея пропадает.

лично я такого недовольства не заметил - это раз.
второе, создание промежуточных языков - это "конек" форта. Тут нету ничего нового, ничего необычного.


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2155
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Mihail писал(а):
Зачем?
http://devbiol.zoo.uwo.ca/~kvt/relf-0.2.zip и то можно сократить.

Да без разницы, можно и этот набор взять. Сокращать ничего не надо - мета-ассемблер должен работать на любом более-менее разумном наборе примитивов, пусть этот набор будет даже избыточным, не полностью ортогональным так сказать. Сложность-то написания мета-ассемблера от этого принципиально не изменится. А то тут опять можно до стрелки Пирса дойти. :)

_________________
С уважением, chess


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7519
Благодарил (а): 21 раз.
Поблагодарили: 142 раз.
mOleg писал(а):
есть оптимальный набор а полного быть и не должно.

С удовольствием посмотрю на критерии оптимальности универсального Форта :)

mOleg писал(а):
Это понятно, но в то же время писать для каждого нового процессора ассемблер достаточно неприятно, использовать же стиль: "0xC3 C

Ну а кто мешает написать по ассемблеру для каждого процессора? Включив в него именно те команды данного процессора, которые понадобятся для создания на нем Форта. И сделать это на порядки проще, чем думать "а реализуется ли вот эта универсальная команда на каждом из тех процессоров, которые планируется включитьв список поддерживаемых?".

mOleg писал(а):
Вообще речь идет о поиске компромисса, между наглядностью и удобством написания примитивов, сложностью реализации целевого ассемблера и простотой использования побайтного задания кодов команд. (как это я понимаю).

Да нет тут компромисса, поскольку нет такого фундаментального закона природы, чтобы процессоры обязательно совпадали по поведению. У них сейчас и команды-то похожи в основном из тех соображений, что сферы применения близки. Новая универсальность на деле оборачивается новыми ограничениями.

mOleg писал(а):
нравится, но привычнее инфиксный, а значит удобнее. Кроме того разница между ними с точки зрения сложности реализации не велика.


Привычка - дело наживное. И мне странно слышать о привычке к инфиксу от фортера.

mOleg писал(а):
Хищник писал(а):
Написание еще одной прокладки между Фортом и ассемблером несколько отодвигает этот этап, но рано или поздно все равно придется.

какой этап?

Да начнут вылезать неуниверсальности. И придется думать - игнорировать их (прощаясь с изюминками каких-то процессоров), или пытаться развесистыми конфигами накрыть все, что только можно. И тогда попытка настроить ассемблер под какую-то новую архитектуру будет настолько сложна, что плюнуть и написать с нуля будет много проще. Я уже молчу о том, что при попытке переписать движок Форта необходимо будет проверит - а для всех ли архитектур по-прежнему создается корректный код?

mOleg писал(а):
вероятно я что-то пропустил - разве такие призывы были?


Супер-форт, ОС, теперь ассемблер :) Про ВМ вообще молчу, сколько их уже на моей памяти предлагали, с одинаковым итогом.

mOleg писал(а):
второе, создание промежуточных языков - это "конек" форта. Тут нету ничего нового, ничего необычного.


Так языки-то для предметной области ! :) Не для еще одного "штрафного круга" по созданию инструмента для компиляции инструмента, который потом будет транслировать исходные текста. Во закручено-то! :)


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

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


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

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


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

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