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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 222 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 15  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 20, 2010 10:29 
Не в сети
Moderator
Moderator
Аватара пользователя

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

точнее, тема поднятого вопроса будет наиболее актуальной ;)

idem писал(а):
Реализовать стеки и простейшие операции(DUP, DROP…) с ним, а дальше необходимо решить, нужен ли ассемблер и, если да, то в каком виде.

нее. ассемблер тут совсем не нужен, это будет сильное усложнение.
понятно, что работа со стеками нужна, но не полностью, к примеру, без PICK и ROLL можно обойтись.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 20, 2010 12:25 
mOleg писал(а):
понятно, что работа со стеками нужна, но не полностью, к примеру, без PICK и ROLL можно обойтись.
Хотя у меня нет опыта по написанию Форта, позволю себе не согласиться. Полагаю, что нужно собрать все слова специфические для Форта, т.е. слова работы со стеком. По крайней мере, на первом этапе.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 20, 2010 19:21 
Вообще, если сравнить Форт с Ассемблером, где есть символический аналог маш. кодов, для каждого символического аналога(слова) Форт-системы нужно собирать соответствующую комбинацию маш. кодов для каждой архитектуры процессора и микроконтроллеров. Мне не известно сколько существует программных реализаций стека, но в любом случае нужно выбирать уже готовую реализацию или придумывать новую по каким-то критериям.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 20, 2010 19:44 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Думаю, нужно всё-таки сказть, что думаю. Разработка "минимального форта" - это на самом деле не есть что-то очень перспективное. К чему это приведёт? К освоению (офортению) старинного слабого процессора? Группы процессоров? Если это зачем-либо очень надо - нужно ставить более подробно требования и решать как задачу, общие рассуждения как раз в этом случае могут оказаться лишними. Если цель - урезать ЯЗЫК форт для более экономной реализации - это другой случай. А перспективным был бы путь - расширения и оптимизации форт-машины.


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Существуют задачи, для которых не нужен пентиум со всеми своими наворотами.
Для решения таких задач не нужен и навороченый форт, достаточно минимального.
А для минимального форта потребуется и минимальное железо, а это, в свою очередь,
даст возможность экономии, которая принципиально не потеряет своей актуальности никогда.
То что у каждого из нас сейчас на столе машина, способная работать в тысячи раз быстрее
первого ENIAC-а вовсе не означает, что слабые вычислительные средства навсегда сойдут со сцены.
Не сойдут, и быть может, завтра мелко-процессоры будут стоять в любой вещи.
Просто для того, чтоб було, но к ним по-прежнему будет нужен софт.
А минимальный софт с максимальной эффективностью при ограниченных ресурсах - это место для Форта.
Такова селяви.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
idem писал(а):
Мне не известно сколько существует программных реализаций стека, но в любом случае нужно выбирать уже готовую реализацию или придумывать новую по каким-то критериям.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 20, 2010 20:33 
вопрос писал(а):
Если это зачем-либо очень надо - нужно ставить более подробно требования и решать как задачу, общие рассуждения как раз в этом случае могут оказаться лишними. Если цель - урезать ЯЗЫК форт для более экономной реализации - это другой случай. А перспективным был бы путь - расширения и оптимизации форт-машины.
Мне кажется, что правильно спроектировать – это важная задача. Спроектировать так, чтобы не было ничего лишнего – это не просто общие рассуждения о расширении или урезании языка форт, а формирование критериев, которые являются достаточно подробными требованиями и их правильная реализация.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 21, 2010 07:38 
chess писал(а):
в Форте нет типов
С другой стороны, существует разрядность шин, которую можно принять за простейшую типизацию. Кроме того, каждое форт-слово, состоящее из предыдущих, имеет тип самого себя. Другое дело, что не существует проверки во время исполнения. Это я так веду к вопросу: что помешает унификации языка для разных «железок»(кроме значения регистров в маш. кодах)?
chess писал(а):
вместо стека данных может быть использована любая подходящая структура данных.
Т.е. вариантов возможных структур много, а критерии выбора не определены. Тогда, полагаю, что можно исходить из перспектив унификации на основе построения типов?


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

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

именно об этом и речь.

вообще, поднятие с нуля нового Форта не такая уж тривиальная задача(как об этом любят говорить, другое дело, что другие ЯП реализовать еще сложнее), особенно, если вы ее решаете впервые. И дело не только в знании основ языка и понимании их работы. А что касается минимального набора, да еще с возможностью его дальнейшего "выращивания" в более полную систему, то все еще сложнее оказывается.

chess писал(а):
Так как в Форте нет типов

ну может хватит это повторять. ведь не верно.
в Форте нет "контроля типов" в явном виде, не более того!
с другой стороны в явном виде типы очень даже есть, например C@ B@ W@ F@ D@ F@ D+ и так далее.
то есть тип операнда кодируется в операции!!! это и есть основа 0-операндной вычислительной модели.

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


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

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

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

И для каждого процесоора - свой минимум - пусть mOleg представит процессор


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
idem писал(а):
вопрос писал(а):
Если это зачем-либо очень надо - нужно ставить более подробно требования и решать как задачу, общие рассуждения как раз в этом случае могут оказаться лишними. Если цель - урезать ЯЗЫК форт для более экономной реализации - это другой случай. А перспективным был бы путь - расширения и оптимизации форт-машины.
Мне кажется, что правильно спроектировать – это важная задача. Спроектировать так, чтобы не было ничего лишнего – это не просто общие рассуждения о расширении или урезании языка форт, а формирование критериев, которые являются достаточно подробными требованиями и их правильная реализация.
И каковы, например, эти требования?

Цитата:
вообще, поднятие с нуля нового Форта не такая уж тривиальная задача

Да, и заманчивая... Но чем плох путь "минимизации" мне пока так и не понятно.

Можно. скажем так
3 (4) этапа
0 этап - создать минимум языка - т.е. убрать слова, которые ТОЧНО реализуются через другие
1 этап - оставшиеся слова - смотрим, как они реализуются одно через другое.
2 этап - смотрим, как слова реализуются в коде
3 этап - отбираем для реализации те слова, которые позволяют реализовать все остальные и проще других (вместе!) в коде


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
mOleg писал(а):
ну может хватит это повторять. ведь не верно.
в Форте нет "контроля типов" в явном виде, не более того!

Ну раз нет типов, то и их контроля тоже нет.
mOleg писал(а):
с другой стороны в явном виде типы очень даже есть, например C@ B@ W@ F@ D@ F@ D+ и так далее.
то есть тип операнда кодируется в операции!!! это и есть основа 0-операндной вычислительной модели.

Операции над данными не могут не быть нацеленными на определенный тип, но из этого не следует, что в Форте есть типы.
Основа 0-операндной вычислительной модели(точнее 0-адресной для операндов) состоит в том, что операнды не надо адресовать в операциях над ними. Для Форта это в реальности не выполняется, по простой причине - в нем нет канонического стека(вместо него массив ячеек с указателем).

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


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

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

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


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

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

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

и для каждой следующей аритектуры ВМ и для каждого след. процессора - заново


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

Зарегистрирован: Вт авг 12, 2008 03:18
Сообщения: 327
Откуда: Москва
Благодарил (а): 36 раз.
Поблагодарили: 7 раз.
Возможно более интересная задача. точнее определить, что делать FVM
например в случае деления на 0.
Или метод перевода FVM в спящий режим, чтобы экономить энергию.

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

_________________
Линукс решает, винда глотает.


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

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


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

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


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

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