Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср сен 18, 2019 11:05

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Чт авг 22, 2019 12:37 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 891
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Можно ещё сократить, добавив код архивации/разархивации :)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Чт авг 22, 2019 14:16 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 83
Откуда: Москва
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Victor__v писал(а):
Можно ещё сократить, добавив код архивации/разархивации :)


:) Тоже была такая мысль. Взять и переделать, например, lzss в исполнении Haruhiko Okumura. Алгоритм декомпрессии там совсем короткий, много лет назад его на asm под ARM переписывали, а потом использовали в тех разработках, где надо было графику утрамбовать. :) Но вот алгоритм сжатия там достаточно громоздок, весь положительный эффект от сжатия нейтрализуется большим размером самого алгоритма сжатия :) Ну а какие-то простые алгоритмы (типа RLE) существенного выигрыша не дадут.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Чт авг 22, 2019 14:31 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1107
Благодарил (а): 3 раз.
Поблагодарили: 41 раз.
Total Vacuum писал(а):
Victor__v писал(а):
Можно ещё сократить, добавив код архивации/разархивации :)


:) Тоже была такая мысль. Взять и переделать, например, lzss в исполнении Haruhiko Okumura. Алгоритм декомпрессии там совсем короткий, много лет назад его на asm под ARM переписывали, а потом использовали в тех разработках, где надо было графику утрамбовать. :) Но вот алгоритм сжатия там достаточно громоздок, весь положительный эффект от сжатия нейтрализуется большим размером самого алгоритма сжатия :) Ну а какие-то простые алгоритмы (типа RLE) существенного выигрыша не дадут.

А, смысл?
В KolibriOS, например, на уровне ядра используется алгоритм разжатия программ kpack, что позволяет уместить в размере 1.44 загрузочной дискеты много ПО (к слову SPF4 сжимается при этом до ~20Кб), но смысла сжатия кода для Windows совсем нет.
В рамках применения для контроллеров, ещё есть каккой то смысл.

P.S. Лучший способ использования сжатия в Windows, использовании штатной возможность сжатия папок и директорий.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Чт авг 29, 2019 15:24 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 83
Откуда: Москва
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
KPG писал(а):
В KolibriOS, например, на уровне ядра используется алгоритм разжатия программ kpack, что позволяет уместить в размере 1.44 загрузочной дискеты много ПО (к слову SPF4 сжимается при этом до ~20Кб), но смысла сжатия кода для Windows совсем нет.

Побродил по форуму Колибри. Неприятно удивил тот факт, что там на порядок больше зарегистрированных пользователей, чем на нашем форуме.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Чт авг 29, 2019 17:24 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 891
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Ну так давайте напишем свою ОС и форумчанам из Колибри будет стыдно :)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Чт авг 29, 2019 21:36 
Не в сети

Зарегистрирован: Пн июл 01, 2019 14:01
Сообщения: 46
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Так почти все писали же, в форт же входит понятие ОС ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Пт авг 30, 2019 09:10 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1107
Благодарил (а): 3 раз.
Поблагодарили: 41 раз.
Victor__v писал(а):
Ну так давайте напишем свою ОС и форумчанам из Колибри будет стыдно :)

Михаил уже встраивал в ядро КолибриОС SPF4, что уже достаточно близко к варианту ФортОС. :)
(а также он запускал код из проекта OpenFirmware и др. варианты)

P.S. Без возможности запуска широкого круга разнообразного ПО само ядро OC несколько бесполезно.
В этом плане даже проект ReactOS имеет больше возможностей.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Сб авг 31, 2019 19:54 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1107
Благодарил (а): 3 раз.
Поблагодарили: 41 раз.
Интересно, что в
Sx-Forth
добавлены расширенные слова для переменных I и J (разыменования и сохранения и др.)

P.S. Интересно, а вне циклов счётчики циклов слова I и J какие то есть варианты их использования?
А, слова определения ассемблерного кода возможно использовать для переключения на исполнение процессорного кодa внутри esoteric forth слова с байт кодом на нативный код?

P.P.S. Никогда не понимал наличие слова Tuck в Форт-системах, но встретив
Код:
: *! TUCK @ * SWAP ! ;
(и подобного использования) понял, что ошибался :)
Ну и использование 2 / (сдвиг значения вправо, при дальнейшем контроле на 0) для использования операции сдвига значения для ограничения диапазона цикла (но это уже локальная оптимизация времени выполнения цикла в небольшом диапазоне цикла, и "оптимизаторы" могут этого не понять)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Сб авг 31, 2019 22:39 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 83
Откуда: Москва
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
KPG писал(а):
Интересно, что в
Sx-Forth
добавлены расширенные слова для переменных I и J (разыменования и сохранения и др.)
P.S. Интересно, а вне циклов счётчики циклов слова I и J какие то есть варианты их использования?
Можно, наверное, использовать и вне цикла, если надо определить, при каком значении счетчика закончились итерации (т.е. если был выход из цикла по команде LEAVE). Но тут зависит от реализации. Если счетчики хранятся в стеке возвратов, то значения потеряются после завершения цикла. А если счетчики хранятся в регистрах, то вполне можно использовать.

KPG писал(а):
А, слова определения ассемблерного кода возможно использовать для переключения на исполнение процессорного кодa внутри esoteric forth слова с байт кодом на нативный код?
Не совсем понял вопрос. Обычный и ассемблерный код можно комбинировать внутри одного определения.
Например, определение
Код:
: a b c 1+ d 1- e ;
можно переписать так
Код:
: a b c `inc ax` d `dec ax` e ;
т.к. верхний элемент стека у нас в регистре ax

KPG писал(а):
P.P.S. Никогда не понимал наличие слова Tuck в Форт-системах, но встретив
Код:
: *! TUCK @ * SWAP ! ;
(и подобного использования) понял, что ошибался :)
Ну и использование 2 / (сдвиг значения вправо, при дальнейшем контроле на 0) для использования операции сдвига значения для ограничения диапазона цикла (но это уже локальная оптимизация времени выполнения цикла в небольшом диапазоне цикла, и "оптимизаторы" могут этого не понять)
Можно и без TUCK переписать:
Код:
: *! SWAP OVER @ * SWAP ! ;
проигрыш по скорости будет совсем незначительным, а можно и целиком на ассемблере слово *! реализовать. В Форте (лично для меня) есть много редко используемых слов (в т.ч. и TUCK), название которых ни о чем не говорит, приходится лезть в стандарт, чтобы посмотреть, что оно делает, какие параметры забирает из стека и что кладет обратно в качестве результата :) Это, повторюсь, мой личный ламерский опыт. Возможно, более профессиональные фортеры помнят все эти слова наизусть, поэтому у них таких проблем не возникает. :D

P.S. Заменил mov ax на mov al и "x" compile на 'x' compile, ну и несколько вещей по мелочи. Исполняемый файл весит меньше 1.5K: http://totalvacuum.ru/EF/00000004.zip


Последний раз редактировалось Total Vacuum Вс сен 01, 2019 00:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Сб авг 31, 2019 22:59 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 83
Откуда: Москва
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Victor__v писал(а):
Ну так давайте напишем свою ОС и форумчанам из Колибри будет стыдно :)
По поводу ОС соглашусь с KPG. ОС без приложений не имеет практической ценности. Она сразу либо должна уметь запускать "чужие" (от другой ОСи) приложения, либо иметь богатый набор инструментов (компиляторов), позволяющий перекомпилировать многочисленные проекты с открытым исходым кодом. А если ОС будет привязана только к FORTH, то в таком случае желательно иметь примитивный и простой API, позволяющий быстро штамповать программы, но даже в этом случае наполнение такой ОСи приложениями будет происходить достаточно медленно. Сама идея легковесной ОС Колибри мне очень понравилась, но, мне кажется, что зря они привязались к x86 и fasm, что не позволяет портировать ее на другие платформы. Да и с компиляторами на борту самой Колибри как-то печально дело обстоит. Я так понял, что в основном для Колибри компилируют на компьютерах с установленной Window/Linux.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Вс сен 01, 2019 02:51 
Не в сети

Зарегистрирован: Пн июл 01, 2019 14:01
Сообщения: 46
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Total Vacuum писал(а):
KPG писал(а):
P.P.S. Никогда не понимал наличие слова Tuck в Форт-системах, но встретив
Код:
: *! TUCK @ * SWAP ! ;
(и подобного использования) понял, что ошибался :)
Ну и использование 2 / (сдвиг значения вправо, при дальнейшем контроле на 0) для использования операции сдвига значения для ограничения диапазона цикла (но это уже локальная оптимизация времени выполнения цикла в небольшом диапазоне цикла, и "оптимизаторы" могут этого не понять)
Можно и без TUCK переписать:
Код:
: *! SWAP OVER @ * SWAP ! ;

Дык, затем и нужен TUCK чтобы вместо 2-х мутаций стека была одна, восприниматся будет относительно легче. Хотя, конечно, при использовании локалсов было бы еще проще и нагляднее:
Код:
: *!  { n a-addr -- }  a-addr @ n * a-addr ! ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Пн сен 02, 2019 13:18 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 891
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Total Vacuum писал(а):

Сама идея легковесной ОС Колибри мне очень понравилась, но, мне кажется, что зря они привязались к x86 и fasm, что не позволяет портировать ее на другие платформы. Да и с компиляторами на борту самой Колибри как-то печально дело обстоит. Я так понял, что в основном для Колибри компилируют на компьютерах с установленной Window/Linux.

Ага, для ОС написанной на ассемблере портируемость ну прям вообще нужна.
<<Сарказм>>

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Пн сен 02, 2019 19:25 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 83
Откуда: Москва
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Victor__v писал(а):
Ага, для ОС написанной на ассемблере портируемость ну прям вообще нужна.
<<Сарказм>>

Я имел ввиду, что "легковесная ОС, не имеющая привязки к ассемблеру" лучше, чем "легковесная ОС с жесткой привязкой к конкретному ассемблеру". Первую можно попытаться портировать куда-нибудь, портировать вторую будет как минимум затруднительно.
А вообще, коль скоро разговор про ОС зашел... Есть некий набор программ, наличие которых в любой операционной системе позволяет более-менее комфортно существовать как обычному пользователю, так и программисту. Перечислю то, что приходит на ум:
- а-ля Проводник, но лучше файловый менеджер;
- Архиватор;
- Программы для проигрывания аудио/видео;
- Просмотрщики pdf, картинок и прочего;
- Пара-тройка офисных программ;
- Простенький графический редактор;
- Компилятор Си;
- PHP, MySQL и т.д. (для веб-разработчиков);
- Браузер (= интерпретатор HTML+интерпретатор JavaScript);
- и т.д. и т.п.;
Что-то может быть лишнее, что-то забыл. Не суть. Но раз уж зашел разговор про Форт ОС, закономерно появляется следующий вопрос. Было ли когда-нибудь реализовано на Форте хоть что-то из вышеперечисленного? Если да, то шансы на успех Форт ОС есть. Если нет, то можно пойти по пути наименьшего сопротивления, сделав транслятор Си=>Форт, а все остальное реализовать (позаимствовать) на Си... Но все же хотелось бы иметь на борту Форт ОС софт, написанный исключительно на Форте.
Кстати, раньше был тренд "планшеты скоро отовсюду вытеснят настольные компьютеры/ноутбуки", но предсказания не сбылись. Андроид-планшеты так и остались безделушками для убивания времени. Не в последнюю очередь благодаря отсутствию нормальных средств для разработки: почти весь софт под Андроид по прежнему пишется на компьютерах с установленной Windows/Linux.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Вт сен 03, 2019 12:51 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 891
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
М-да, воспринять шутку на серьёзных щах это надо уметь :))

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср сен 11, 2019 04:53 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1107
Благодарил (а): 3 раз.
Поблагодарили: 41 раз.
Кстати по поводу ОС на ассемблере.

Есть такой проект делающийся на средства краудфандингa ZX-Spectrum Next
(спектрум совместимый компьютер на FPGA с наличием разных плюшек, как HDMI, SD, частоты процессора + 7, 14, 28 МГц ...)
в нём много софта исторического на ассемблере, так вот они в дизайне компьютера ещё предусмотрели возможность добавить ускоритель команд, графики ... на внешней шине на Raspberry Pi Zero (1Ггц, Mali, 512Кб)

Вот уже в данной Raspberry Pi Zero можно было бы задействовать функционал на ассемблерном Форт ядре
и частично наличие какого то популярного софта на Форт не так важно в рамках базового использования платы расширения
RPi в рамках экосистемы данного компьютера, но, наверное, с таким же успехом могла быть использована плата с Intel процессором и например KolibriOS.


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

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


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

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


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

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