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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 8  След.

Куда цеплять "драйвера"?
Создавать лексиконы наподобие Си-библиотек 44%  44%  [ 4 ]
Прятать внутрь интерпретатора 0%  0%  [ 0 ]
Усложнять интерпретатор 0%  0%  [ 0 ]
Использовать более одного интерпретатора 22%  22%  [ 2 ]
FORTH устроен совсем не так 33%  33%  [ 3 ]
Всего голосов : 9
Автор Сообщение
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вт апр 15, 2014 11:03 
in4 писал(а):
почему использование сопрограмм означает двойной проход по тексту?

in4 писал(а):
Оптимизация хвостовой рекурсии

Рекурсия и сопрограммы - это вполне устойчивые способы написания процедур. Основная идея там - передача параметров. Если таковой нет, то проще говорить просто о передаче управления (обычном goto).

Я не говорю, о том, что "сращивание хвостов", это плохо. Или, что Вы сделали его неаккуратно. Но это частная оптимизация, которая не имеет практически никакого отношения к теме. Оптимизация не меняет языка. Разве что, повторю, обедняет его ("фиксируя синтаксис")...

in4 писал(а):
Пока вроде зафиксировалось описание одного из синтаксисов входного языка.
ОС может языки порождать, но не появляется в результате "фиксации синтаксиса"...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вт апр 15, 2014 20:38 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Передача параметров и передача управления процессами имеют отношение к теме.
Я вот не придумал красивую передачу более 3х параметров(пока думаю адрес блока данных передавать) и качественную вытеснительную многозадачность без обрамления многих участков запретом прерываний. Смотреть надо будет.

А возможность писАть в другом стиле может выглядеть и как запись на другом языке. А именно это определит возможность обмена кодом. Т.е. единицу совместимости по коду я б перенес с языков программирования на язык+стиль. И это необычный момент.

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

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

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 09:43 
in4 писал(а):
Я вот не придумал красивую передачу более 3х параметров(пока думаю адрес блока данных передавать)
Об чем и речь с самого начала тему. Допустим, Вам по условиям задачи не очень подходит передача данных через стек... Что делать? Просто "добавить слов" (1), включить виртуальное спец-АЛУ внутрь интерпретатора (2), попытаться описать свои вычисления на спец-языке (3), прицепить интерпретатор этого спец-языка к FORTH "параллельно" (4)...
in4 писал(а):
А возможность писАть в другом стиле может выглядеть и как запись на другом языке...
Я иду обратным путем. Если естественный язык для задачи "не FORTH", то какой стиль перевода является наиболее подходящим?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 10:33 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
gudleifr писал(а):
по условиям задачи не очень подходит передача данных через стек... Что делать? Просто "добавить слов" (1), включить виртуальное спец-АЛУ внутрь интерпретатора (2), попытаться описать свои вычисления на спец-языке (3), прицепить интерпретатор этого спец-языка к FORTH "параллельно" (4)...
В такой постановке - (4)+(1) в порядке значимости. (1) - слова добавлять все равно придется! А (4) - принципиальный момент реализации.
gudleifr писал(а):
Если естественный язык для задачи "не FORTH", то какой стиль перевода является наиболее подходящим?
Для задачи естественный язык, скорее всего, не FORTH. А дальше надо смотреть, на что больше похоже. Можем разобрать несколько примеров. Предложите варианты!

Вот пример, когда задача более красиво(IMHO) решается на colorForth, чем на традиционном.

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 11:58 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
in4 писал(а):
Я вот не придумал красивую передачу более 3х параметров(пока думаю адрес блока данных передавать) и качественную вытеснительную многозадачность без обрамления многих участков запретом прерываний. Смотреть надо будет.

Как же сделана красивая передача 1-3 параметров?

in4 писал(а):
Мне интересно попробовать систему со сверхбыстрой компиляцией, в которой можно хранить только исходники и ядро, получая при необходимости нужный функционал компилированием необходимых частей.

Сверхбыстрая компиляция = медленный код :roll:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 12:16 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
dynamic-wind писал(а):
Как же сделана красивая передача 1-3 параметров?
Да как обычно, через стек. А вот если параметров больше, с ними уже становится неудобно работать. Думаются или глобальные переменные для важных объектов, или блок памяти с параметрами. Второй вариант дает плюс - позволяет удобно делать предустановленные наборы параметров.
dynamic-wind писал(а):
Сверхбыстрая компиляция = медленный код
Код такой же, как при обычной компиляции. Выигрыш в скорости компиляции из-за хранения исходников в специальном(нетекстовом, "прекомпилированном") виде.

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 12:29 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
in4 писал(а):
Код такой же, как при обычной компиляции.

То есть неоптимизированный, медленный.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 13:27 
in4 писал(а):
когда задача более красиво(IMHO) решается на colorForth, чем на традиционном.

Очень удачный пример. Ведь, что мы знаем о конечных автоматах? Они порождают языки... Да и FORTH-интерпретатор - сам конечный автомат, так, что для него понимание подобных языков естественно... Читаем поток символов (слов, сообщений или что там разбирает Ваш конечный автомат) и тупо запускаем FIND для нахождения текущего состояния. Возможны варианты: если события "что-то значит", то доходит и до EXECUTE, а если наша задача - достижение конечного состояния (распознание строки), то выполнение слова-состояния означает лишь фиксацию его в качестве текущего...
Более того, т.к. работа по регулярному выражению более естественна для NUMBER (а не FIND), то в нашем спец-FORTH мы можем заявить, что результатом NUMBER будет не литерал, а адрес слова...

Задача построения ОС "в общем смысле" оже близка. Очереди "сообщений" и/или "ожидания семафоров" порождают аналогичные языки.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 18:06 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
dynamic-wind писал(а):
То есть неоптимизированный, медленный.
Зависит от задачи. Вроде получается достаточно неплохой. Конечно, он не учитывает конвейеры, переупрорядочивания и векторные команды. Но зато универсальный и небольшой(нет лишних проверок возможностей процессора ;) ). И, если не очень большие циклы, еще неизвестно, что будет быстрее, загрузка+компиляция+исполнение такого кода или загрузка+исполнение результата С# или Lazarus(в одинаковых стартовых условиях). Внутри большого цикла, конечно, ставить не стОит. Но, по-хорошему, для этого код надо готовить специально под процессор и/или под систему(использование векторных команд и GPU).

gudleifr писал(а):
работа по регулярному выражению более естественна для NUMBER (а не FIND), то в нашем спец-FORTH мы можем заявить, что результатом NUMBER будет не литерал, а адрес слова...
можно подробнее? :shuffle;

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 18:15 
in4 писал(а):
можно подробнее?
В смысле? Что NUMBER по жизни распознает регулярные выражения (и наиболее эффективно реализуется конечным автоматом), это вроде, очевидно. Что в рамках FORTH-автомата словарной статье будет соответствовать состояние конечного автомата, вроде, тоже понятно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 19:40 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
gudleifr писал(а):
результатом NUMBER будет не литерал, а адрес слова...
Видел реализацию, где NUMBER читает число из входного потока и возвращает его на стеке. А если не литерал, адрес какого слова? Вот про это слово и его адрес поподробнее...

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Ср апр 16, 2014 20:00 
in4 писал(а):
Видел реализацию, где NUMBER читает число из входного потока и возвращает его на стеке.
Это в "нормальном" FORTH. А я говорю о построении специальной FORTH-системы (2) для чтения специфического ввода - регулярных выражений. Это будет, по определению, конечный автомат, схожий по функционалу (если не по устройству) с NUMBER. Состояния конечного автомата будут словами.

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

Можно попытаться посмотреть в теме
http://fforum.winglion.ru/viewtopic.php?f=25&t=2929, там, правда, много мусора, или сразу у меня [url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\3.POLESNYE%20ALGORITMY\KONETNYE%20AWTOMATY[/url].


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Пн апр 21, 2014 21:51 
Вот, еще одно возможное FORTH-применение, требующее подобного выбора подхода.

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

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

Если бы метод "Дракон" действительно бы работал, достаточно было бы переписать задачу на нем, а потом - автоматически породить код, но т.к. он, очевидно, не может работать по определению, то приходится каждый раз думать заново.
Я одно время занимался схожей проблемой по роду службы, но т.к. работа всегда происходила в условиях постоянного форс-мажора, то почти все делал на Perl...
А кто-нибудь пытался автоматизировать (или, хотя бы, инструментализировать) перевод на-FORTH? Конечно, подразумевается, что программа слишком сложна, чтобы держать алгоритм и переменные в голове, а фортер не болеет манией тупо создавать по слову на каждую C-функцию.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вт апр 22, 2014 02:33 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Такой перевод потребует пересмотра архитектуры программы. А почему простой перевод на Форт обязательно является "тупым"?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вт апр 22, 2014 09:51 
Хищник писал(а):
Такой перевод потребует пересмотра архитектуры программы.
Об этом и речь. О языках описания, пересмотра и переделки архитектуры.
Хищник писал(а):
А почему простой перевод на Форт обязательно является "тупым"?
Потому что не подразумевает рассматриваемых в данной теме интересностей.


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

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


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

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


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

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