Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт июн 27, 2017 23:20

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Ограничения FORTH
Автор Сообщение
  Заголовок сообщения:  Re: Ограничения FORTH а стоит ли?  Ответить с цитатой
У оптимизирующего компилятора СПФ есть одна примечательная особенность
При нахождении в коде нескольких идущих подряд мат.операций, он их собирает в несколько команд.
Однако, компонуются не все операции идущие подряд, операция деления прекращает сие чудо оптимизации
Код:
: test1 10 2 * 4 - ;
: test2 [ 10 2 * 4 - lit, ] ;
идентичны по маш.коду, а
: test3 10 2 * 4 - 5 / ;
: test4 [ 10 2 * 4 - 5 / lit, ] ;
нет


Внимание вопрос.
Стоит ли писать оптимизацию под это?
С одной стороны, меньше символов использовать ( на 6), с другой стороны, нет выделения "особенности" данного числа в исходном коде.
Сообщение Добавлено: Пт янв 06, 2017 12:39
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Цитата:
Это тоже уже было

Тогда фортерам надо перестать хотеть и начать делать.
Ну, как видно из моей приписки я таки пытаюсь приписать будущему форту завышенные возможности))
Сообщение Добавлено: Вт дек 27, 2016 21:56
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Victor__v писал(а):
Форту не хватает фортеров, которые всё это напишут.

Это тоже уже было. Замкнутый круг - нужны фортеры, а чтобы их привлечь, нужно приманить их библиотеками, оптимизаторами и IDE. Значит, нужно это написать, а для этого нужны фортеры. Разорвать круг можно, если фокусировать усилия на том, что не требует непомерных усилий, но при этом показывает "общественно-полезные" результаты (т.е. не очередная библиотека по исправлению проблем предыдущей, а программа для конечного пользователя).

Victor__v писал(а):
Цитата:
Главное, чтобы процесс аккуратно сходился к какой-то стабильности

Не понял. Чтобы программа не падала в самых неожиданных местах?

Нет, смотрим существенно шире. Вот мы придумали ТЗ, а то и целый стандарт. Реализовали форт-систему, а потом попытались на ней что-то написать. В благоприятном варианте все получится, и в процессе разработки программы наберется просто небольшой список дополнений. В неблагоприятном выяснится, что полученный транслятор Форта не имеет необходимых для программы возможностей, а те что есть, реализованы неэффективно или попросту неудобно. Поэтому надо все переделать. А пока переделывали, надобность в прикладной программе отпала, или же появились другие задачи. Ради них надо опять все пересматривать и т.д. В итоге рабочей и стабильно используемой версии просто нет, и попытки ее написать срываются из-за нехватки времени или неуверенности в успешном завершении. Косвенный признак намечающегося провала - попытки приписать будущему Форту завышенные возможности (чтобы уж точно на все хватило) - как раз те самые библиотеки, оптимизаторы, IDE и до кучи ФортОС.
Сообщение Добавлено: Вт дек 27, 2016 21:09
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Цитата:
Речь идет не о часах, а о годах :) Именно столько идут разговоры о том, что Форту не хватает хорошего инструментария - IDE, оптимизации, библиотек и до кучи ОС

Форту не хватает фортеров, которые всё это напишут.
Цитата:
Умозрительно трудно понять, что потребуется конкретной программе

Есть такое. Главное оставить задел под разширение :)
Цитата:
первые версии рабочего форта правятся часто и активно

Ну да. Помимо багов и прочих тараканов нужно ещё определить, что будет входить в ядро.
К примеру, нужна ли двойная арифметика?
В своей скромной практике применял для получения 64-битных хешей на 32-х разрядном форте.
Вот и думай над этим.
Цитата:
Главное, чтобы процесс аккуратно сходился к какой-то стабильности

Не понял. Чтобы программа не падала в самых неожиданных местах?
Сообщение Добавлено: Вт дек 27, 2016 20:07
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Victor__v писал(а):
Спорное утверждение. Если б я не написал свою библиотеку для работы со строками в стеке возвратов, то до программы было б тяжелей дойти. Два часа программирования, два для отладки

Речь идет не о часах, а о годах :) Именно столько идут разговоры о том, что Форту не хватает хорошего инструментария - IDE, оптимизации, библиотек и до кучи ОС. И если бы это появилось, то Форт бы сразу ого-го (и, видимо, миллионы программистов по всему миру внезапно прозрели бы и пришли вкусить от мудрости фортеров). Принципиальный вопрос заключается в том, для какого конкретно проекта требуется та или иная возможность. Если проекта нет, то ситуация как у Алисы в Стране Чудес - если все равно куда попадать, то какая разница, куда идти.

На ранних стадиях, понятное дело, объем доработок существенно больше. Умозрительно трудно понять, что потребуется конкретной программе, поэтому первые версии рабочего форта правятся часто и активно. Зато потом уже и задачи подбираются с учетом возможностей инструмента. Главное, чтобы процесс аккуратно сходился к какой-то стабильности.
Сообщение Добавлено: Вт дек 27, 2016 18:07
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Цитата:
В форт-системах есть компилятор

А-а. вы правы. Это я не так выразился. Ну оптимизирующий компилятор, имелся ввиду.
Короче, дабы быстрее и объёмом меньше.
Цитата:
Форт можно дополнить многими вещами

Мой оптимизирующий парсер нарастает "мясом".
Цитата:
Однако возникает вопрос

Вопрос не возникает, если уже делаешь
Цитата:
А если тратить усилия на инструменты, рабочей программы не появится

Спорное утверждение. Если б я не написал свою библиотеку для работы со строками в стеке возвратов, то до программы было б тяжелей дойти. Два часа программирования, два для отладки :)
"Строки в стеке" , знаю хак.
Сообщение Добавлено: Вт дек 27, 2016 17:24
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Victor__v писал(а):
По сравнению с форт-системой, где нет компилятора. Недоработки у СПФ-компилятора есть, но он работает, временами.

В форт-системах есть компилятор. То, о чем идет речь, является макроподстановщиком, заменяющим одни фрагменты кода на другие по заранее перечисляемым правилам.
Victor__v писал(а):
Цитата:
Форт дает результаты гораздо раньше

объясните это утверждение, как-то не понял

Форт можно дополнить многими вещами - оптимизирующим компилятором, IDE, набором библиотек и еще многими полезными вещами. Однако возникает вопрос, что именно стоит сделать в первую очередь, а с чем можно подождать? Гораздо продуктивнее завершить работающую версию хоть в каком-то виде, и только потом смотреть, как ее можно улучшить. А если тратить усилия на инструменты, рабочей программы не появится.
Сообщение Добавлено: Вт дек 27, 2016 04:27
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Цитата:
Хороший по сравнению с чем?

По сравнению с форт-системой, где нет компилятора. Недоработки у СПФ-компилятора есть, но он работает, временами.
Цитата:
Можно лучше, но с большей трудоемкостью разработки

Согласен. Но всё зависит от подхода к конкретной подзадаче.
Если где-то можно оптимизировать текст программы ( превращение в асм.код), то в другом месте это не пройдёт.
Так, проблематично распознать константу, переменную и их подобия через текстовый оптимизатор. Легче их скомпилировать. Пусть они укладываются в слова. А уже следующее слово будет над ними "колдовать" или пусть будет подвызов из компилятора
Код:
0x10 constant А
: test А * ;


Здесь же у нас лишнее действие - положить A на стек. Можно обойтись и без него

Цитата:
Форт дает результаты гораздо раньше

:?: объясните это утверждение, как-то не понял
Сообщение Добавлено: Вс дек 25, 2016 11:23
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Интересная статья об сложившемся положении "вещей"
Some Thoughts on Forth vis-a-vis Oracle and Java SE
18 Dec 2016

P.S. Источник https://www.reddit.com/r/Forth/new/
P.P.S. Здесь тоже интересное обсуждение на форуме 6502 процессора What is Forth?
Сообщение Добавлено: Сб дек 24, 2016 23:24
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Victor__v писал(а):
В СПФ хороший компилятор

Хороший по сравнению с чем? Есть некие мелкие тактические преобразования, однако стековая машина по своей сути не является экстремально производительной. В СПФ реализована макроподстановка на основе вручную найденных фрагментов кода. Это что-то ускоряет, но
1. Можно лучше, но с большей трудоемкостью разработки
2. Форт дает результаты гораздо раньше

gudleifr писал(а):
Прошу не флудить.

Прошу не распоряжаться на моем форуме. "Прошу" в данном случае не более чем фигура речи - я просто принимаю решение, что подписчики могут свободно высказывать свое мнение в любой этичной форме. Технический флуд разрешен мной, и другие мнения не рассматриваются.
Сообщение Добавлено: Чт апр 14, 2016 03:36
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
<Убрано во исполнение решения Hishnik>
Сообщение Добавлено: Ср апр 13, 2016 22:30
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Hishnik писал(а):
Victor__v писал(а):
Достоинство и недостаток форта, последнее, в некоторой степени, это стек.
В этом плане многое решает компилятор. Но и он не в состоянии порою оптимизировать форт-код.

Стек - скорее неизбежное зло. Это простой способ обеспечить простой разбор исходного текста без необходимости написания разбора выражений. В постфиксной записи определение порядка действий выполняет программист в голове, а в "математической" (инфиксной) записи этим занимается компилятор. За простоту компилятора получаем неоптимальную производительность. Ну, собственно, и ладно, зачем же требовать всего и сразу?


В СПФ хороший компилятор
Сообщение Добавлено: Ср апр 13, 2016 22:17
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Victor__v писал(а):
Достоинство и недостаток форта, последнее, в некоторой степени, это стек.
В этом плане многое решает компилятор. Но и он не в состоянии порою оптимизировать форт-код.

Стек - скорее неизбежное зло. Это простой способ обеспечить простой разбор исходного текста без необходимости написания разбора выражений. В постфиксной записи определение порядка действий выполняет программист в голове, а в "математической" (инфиксной) записи этим занимается компилятор. За простоту компилятора получаем неоптимальную производительность. Ну, собственно, и ладно, зачем же требовать всего и сразу?
Сообщение Добавлено: Чт апр 07, 2016 00:39
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
Victor__v писал(а):
>R R@ 0! DROP R>
в маш коде разворачивается в десяток машкоманд

Код:
: t >R R@ 0! DROP R> ;
Ok
SEE t

572BA7 50               PUSH    EAX
572BA8 C70000000000     MOV     [EAX] , # 0
572BAE 58               POP     EAX
572BAF 8D6D04           LEA     EBP , 4 [EBP]
572BB2 C3               RET     NEAR
END-CODE   Ok
Сообщение Добавлено: Ср апр 06, 2016 23:26
  Заголовок сообщения:  Re: Ограничения FORTH  Ответить с цитатой
<Убрано во исполнение решения Hishnik>
Сообщение Добавлено: Ср апр 06, 2016 22:11

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


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