Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 19, 2024 20:48

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 152 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10, 11  След.
Автор Сообщение
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Пн сен 19, 2016 16:51 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
true-grue писал(а):
Так то 2012 год. А вот сколько мудрости добавилось за 2016: http://www.forth200x.org/documents/forth16-1.pdf
Так у этой мудрости за 2016 год пометка Draft. Т.е. это черновик. На черновики следует плевать с высокой колокольни ибо их место в корзине. Я же приводил PDF-ку за 2012 в которой пометки "черновик" не было, т.е. она была как бы уже законченный стандарт.

На который я также пока плюю ибо надобности в нем пока не увидел. Почему объясню ниже.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Пн сен 19, 2016 17:10 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Hishnik писал(а):
Приводить существующие реализации к общему знаменателю - все равно что привести к общему знаменателю программы на Си таким образом, чтобы у всех прикладные функции назывались одинаково.
Объясняю для недогадливых, что я имею под приведением к общему знаменателю. Это вот такие цепочки рассуждений :

1.) Форты могут быть не только на 16-разрядных платформах, но и на 32-х и 64-х. В таких фортах ячейка имеет 32 или 64 разряда.

Отсюда :
Убираем из стандарта
2+
добавляем
CELL CELL+

Иначе программисты 16-разрядной платформы будут писать 2+ имея ввиду перейти к следующей ячейке, а на 32-х и 64-разрядных фортах их исходник, написанный даже с использованием одних только слов ядра, отработает не так.

2.) Форты могут генерировать не только прямой или косвенный шитый код, но и подпрограммнный шитый (и даже инлайн-машинный не шитый).

А на подпрограммном шитом коде
COMPILE
без флажка немедленного исполнения откомпилируется как адрес вместо call на адрес
А значит выкидываем из стандарта
COMPILE [COMPILE]
и вместо него втыкаем единое слово
POSTPONE
с флажком немедленного исполнения.

и т.д.

-----------------------------------------------------------------------

Это были КРАЙНЕ НУЖНЫЕ и ПРАВИЛЬНЫЕ изменения в стандарте. Поэтому я и защищаю ANSI-Forth и только ANSI-Forth. Тем более, что ты, даже лягая этот стандарт все равно мыслишь его категориями. Именно ими, а не, к примеру, FIG-Фортовскими. Например, для тебя CREATE DOES> естественно, а не <BUILDS DOES> (<BUILDS - это не синоним CREATE, он реализуется немного по другому). Так-что ANSI - итак уже стандарт де факто.

А вот что этот комитет начал делать дальше на мою голову не налазит. Я прикидываю реализацию того, что они добавляют в стандарт и мне все время приходит мысль, что это не нужно. Лишнее. Может в каких-то системах оно и нужно, но в моих embedded это только сожрет лишнюю память и ничего полезного не даст. Так и зачем тогда оное было добавлять в стандарт ?

P.S.
В ANSI-Форте меня бесит только слово
?ENVIRONMENT
Ну ведь ясно, что если такое слово было использовано, то обработка его результатов будет платформенно-зависимой и непереносимой. Зачем было втыкать в стандарт то, чего там не должно быть ? Пытаться сделать переносимым непереносимое ?
А это был первый звоночек, что разработчики стандарта мыслят только фортами поверх ОС. Ну а дальше они просто погрязли в процессе дальнейшей адаптации Форта к разным ОС, добавляя в него то, что в Форте на голое железо ну просто даром не нужно.
Правда у них верно есть отмаза - если вам не нравится то, что мы делаем, то бросайте в топку все расширения и реализуйте только ядро. Слишком уж тщательно они кассируют все по отдельным расширениям.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Пн сен 19, 2016 17:55 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
loztcatz писал(а):
А реализация содержащая более 300 определений может называться минималистичной? Или существует какой-то предел?
Нет конечно.300 определений это далеко не минимализм. Щас откопаю тебе минимализм в натуре. Если вспомню где же его видел.

Нашел. Минимализм ради минимализма и тот самый предел - это статья
FIRST & THIRD almost FORTH
http://www.ioccc.org/1992/buzzard.2.design

Там в коде определяются слова (12 штук)
- * / ( binary integer operations on the stack )
<0 ( is top of stack less than 0? )
@ ! ( read from or write to memory )
EMIT KEY ( output or input one character )
_READ ( read a word from input and compile a pointer to it )
EXIT ( stop running the current function )
: ( compile the header of a definition )
IMMEDIATE ( modify the header to create an immediate word )
а дальше все пишется уже на самом Форте.

Если ты еще прочтешь вот эту статью
http://www.lowfatcomputing.org/23/
станет ясно как изящно реализовать метакомпиляцию на основе этого сурового минимализма.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Вт сен 20, 2016 00:15 
Не в сети

Зарегистрирован: Пн июл 04, 2016 13:28
Сообщения: 39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ethereal писал(а):
Нет конечно.300 определений это далеко не минимализм.
А что поделать, если для удобства программирования на моем конкатенативном лиспе требуется >300 определений.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Вт сен 20, 2016 12:42 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ethereal писал(а):
Иначе программисты 16-разрядной платформы будут писать 2+ имея ввиду перейти к следующей ячейке, а на 32-х и 64-разрядных фортах их исходник, написанный даже с использованием одних только слов ядра, отработает не так.

А вместо 1+ ввести CHAR+? :) Зачем гадать, что будут писать программисты, если, во-первых, 2+ означает "прибавить 2", а программисты должны бы соображать сами. Во-вторых, 16-разрядные системы довольно редки. В-третьих, при переносе на другие платформы может обнаружиться масса интересного, кроме размера ячейки.

Ethereal писал(а):
и вместо него втыкаем единое слово
POSTPONE с флажком немедленного исполнения.

Как-то живу без POSTPONE и на машинном коде, и на шитом. Постпонатора у меня нет, есть только компилятор :)

Ethereal писал(а):
Тем более, что ты, даже лягая этот стандарт все равно мыслишь его категориями.

А какой смысл мне "лягать" группку лузеров, разбросанных по всей Европе? Они что, что-то полезное пишут, или у них интересные проекты? Ну пусть уж сразу делают Галактический Стандарт, а если фортеры с Сириуса против, то это уже их проблемы, как подать proposals, чтобы до них снизошли :))
Ethereal писал(а):
Например, для тебя CREATE DOES> естественно, а не <BUILDS DOES> (<BUILDS - это не синоним CREATE, он реализуется немного по другому)

А тут мне совершенно без разницы, кто что думает про разницу в этих словах. CREATE создает слово, а <BUILDS мне ни разу не был нужен.
Ethereal писал(а):
Так-что ANSI - итак уже стандарт де факто.

Аа, да, конечно. С целыми двумя программистами на full-time в Forth Inc. и целыми двумя волонтерами в комитете конференции :wink: Боюсь даже представить, что будет, если они на RuFIG санкции наложат :aaa;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Вт сен 20, 2016 22:55 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Хищник, ты бы чо умное сказал, тогда можно было бы спорить. А то выдал одно брюзжание бессодержательное.

Черезовский SPF - это ANSI-Forth, так что программистов на нем отнюдь не два.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Вт сен 20, 2016 23:26 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Ethereal писал(а):
true-grue писал(а):
Так то 2012 год. А вот сколько мудрости добавилось за 2016: http://www.forth200x.org/documents/forth16-1.pdf
Так у этой мудрости за 2016 год пометка Draft. Т.е. это черновик. На черновики следует плевать с высокой колокольни ибо их место в корзине. Я же приводил PDF-ку за 2012 в которой пометки "черновик" не было, т.е. она была как бы уже законченный стандарт.

На который я также пока плюю ибо надобности в нем пока не увидел. Почему объясню ниже.


Нет никакого стандарта 2012 года. Есть черновики, которые выходят по сей день в рамках инициативы Forth 200x.

Вы не задумывались, почему разработчики на том же языке Lua прекрасно живут без стандарта? Я вот Вам советовал посмотреть cmFORTH, но совет явно оказался преждевременным. Начните с Броуди.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Вт сен 20, 2016 23:30 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Hishnik писал(а):
CREATE создает слово, а <BUILDS мне ни разу не был нужен.

Я и говорю ANSI-шник. Хоть и не признается.
Когда-то давным давно CREATE действительно создавало слово, да только еще не видимое в словаре и у которого поле кода указывало на поле параметров. Т.е его ни найти в словаре, ни сразу запустить без краха системы было нельзя. Оно предназначалось для создания средствами Форта слов, определенных в машинном коде. Вот так :
CREATE SINUS
34 C, 65 C, 2C C, 78 C, BA C, 43 C, 4F C,
7E C, 36 C, A2 C, 4D C, 69 C, SMUDGE
где все эти числа суть опкоды процессора.
А для порождения понятий использовались <BUILDS DOES>

Привычный тебе CREATE вот не знаю откуда взялся. Факт, что были разные смыслы у CREATE.

З.Ы. Привычный тебе CREATE предполагает, что после его исполнения поле параметров вновь созданного слова ни разу не распределено по ALLOT. А <BUILDS там таки отхватывает одну ячейку, в которую кладет адрес шитого кода после DOES>. В остальном они друг от друга не отличаются. И в плане классичности <BUILDS как бы более тру, потому как с ним выходит косвенный шитый код без вкраплений маш.кода. Как бы шитый код отдельно, машинный отдельно.


Последний раз редактировалось Ethereal Ср сен 21, 2016 00:48, всего редактировалось 4 раз(а).

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

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
true-grue писал(а):
Я вот Вам советовал посмотреть cmFORTH, но совет явно оказался преждевременным.
Ethereal писал(а):
Если ты еще прочтешь вот эту статью
http://www.lowfatcomputing.org/23/
станет ясно как изящно реализовать метакомпиляцию на основе этого сурового минимализма.
А там по ссылке cmForth-style metacompilation, так-что я явно в сторону cmForth посмотрел.
true-grue писал(а):
Нет никакого стандарта 2012 года. Есть черновики, которые выходят по сей день в рамках инициативы Forth 200x.
На черновике 2012 года не стоит пометки "черновик", зато стоит слово STANDART. А оказывается следует понимать наоборот. Вот оно что. А вот тут http://www.forth200x.org/rfds.html
Forth-2012
The Forth-2012 document is now available. You can also look at HTML versions: at forth-standard.org (will become Web 2.0-capable in the future) and a simple HTML version.

его называют документом. Видать это какой-то тайный, залегендированный черновик.
true-grue писал(а):
Начните с Броуди.
Который сам держится за какой-то стандарт. То за FIG, то за -83.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Ср сен 21, 2016 02:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ethereal писал(а):
Черезовский SPF - это ANSI-Forth, так что программистов на нем отнюдь не два.

И что, Черезов продолжает писать на SPF? И эти "отнюдь не два" программиста настолько плотно вовлечены в программирование, что формируют объективные требования к Форту с целью обеспечить конкурентоспособность своих программ?

Ethereal писал(а):
Привычный тебе CREATE вот не знаю откуда взялся. Факт, что были разные смыслы у CREATE.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Ср сен 21, 2016 12:53 
Не в сети

Зарегистрирован: Пн июл 04, 2016 13:28
Сообщения: 39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ethereal писал(а):
Если ты еще прочтешь вот эту статью
http://www.lowfatcomputing.org/23/
станет ясно как изящно реализовать метакомпиляцию на основе этого сурового минимализма.
Спасибо, прочитал. Вот только у меня сложилось впечатление, что форт там только для красоты. Ведь можно было просто воспользоваться макроассемблером, по сути ничего бы не изменилась.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Ср сен 21, 2016 20:24 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Ethereal писал(а):
На черновике 2012 года не стоит пометки "черновик", зато стоит слово STANDART. А оказывается следует понимать наоборот.

Мелким шрифтом на титульной странице: "This is a draft".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Чт сен 22, 2016 00:51 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Не люблю я когда разговор становится ни о чем. Вообще ни о чем. Ни о чем конкретном.
Ну вот что это такое :
Hishnik писал(а):
И что, Черезов продолжает писать на SPF?

Смысл выражения "черезовский SPF" состоял в том, что SPF навсегда останется черезовским, а смысл всего предложения в том, что SPF используют больше, чем два человека.
Hishnik писал(а):
У Баранова уже был описан. Заниматься историей я оставляю историкам, и срочно удалять CREATE из всех программ точно не побегу.
А Баранов это Forth-83, после него уже ANSI был. И удалять CREATE никто не предлагал.

По поводу занятий историей. Без них даже Баранова не понять вполне. Увы это так.
Вот пример :

Наконец, слово ;CODE, имеющее признак немедленного исполнения, позволяет
задавать исполняющую часть определяющих слов непосредственно в машинном
коде:

: ;CODE ( ---> ) COMPILE (;CODE)
[COMPILE] [ ASSEMBLER ; IMMEDIATE

Оно используется внутри определения через двоеточие для определяющего слова
аналогично слову DOES>

: <имя> <создающая-часть>
;CODE <машинный-код> END-CODE

и отделяет высокоуровневую создающую часть от исполняющей части, заданной в
машинном коде. Во время исполнения скомпилированного словом ;CODE слова
(;CODE) адрес машинной программы, составляющей исполняющую часть, будет
заслан в поле кода определяемого слова, которое таким образом получит
интерпретатор, реализованный в машинном коде. На практике именно таким
способом задают стандартные определяющие слова :, CONSTANT и VARIABLE.


Я это когда-то понял так :
1.) Слова : CONSTANT VARIABLE обычно определяют с использованием ;CODE
Правда примера такого определения не приведено. И не ясно как обычно это
делают
2.) Определение слова ;CODE компилирует (;CODE) и явно содержит вызов словаря ASSEMBLER
3.) Отсюда, я заключил, что пункт 1.) имеет отношение только к тем Фортам,
что имеют встроенный ассемблер. А если в Форте встроенного ассемблера
нет, то никакие ;CODE и (;CODE) там не используются и все делается
как-то совсем по другому. Хотя с другой стороны Баранов пишет, что
DOES> компилирует (;CODE). Но почему тогда оно называется так, ведь DOES>
определяет исполняемую часть в шитом коде и ассемблер тут совершенно не при чем ?

В общем тут остался недопонят смысл и только разбор FIG позволил вполне
понять, на что Баранов ссылался своей фразой "обычно делается так".

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


Последний раз редактировалось Ethereal Чт сен 22, 2016 01:24, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Чт сен 22, 2016 01:00 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
true-grue писал(а):
Ethereal писал(а):
На черновике 2012 года не стоит пометки "черновик", зато стоит слово STANDART. А оказывается следует понимать наоборот.

Мелким шрифтом на титульной странице: "This is a draft".


Аргумент убойный. Согласен теперь, что это черновик.

Но и ты тогда согласись, что стандартизаторы этот черновик выделяют особо
среди всей массы черновиков. На других черновиках они пишут Draft крупно
и нумеруют их версии как версия 12.1, версия 12.2, версия 12.3. А с этого
крупное Draft убрали и обозвали его пафосно Forth-2012
Видимо они считают этот черновик неким законченным этапом в процессе
содания нового стандарта. Только как его корректно обозвать ?
Промежуточный стандарт ?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-2016 - какой он?
СообщениеДобавлено: Чт сен 22, 2016 01:09 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Смысл тут только в том, что из реальных продуктов на SPF только Eserv и nnCron. Черезов от SPF отошел и Eserv, как следует из информации с eserv.ru, с 2011 года разрабатывается в другой компании. Сообщество nnCron в целом самодостаточно, к тому же последняя новость об nnCron датируется 2012 годом. Отсюда следует, что ANS-совместимость SPF не обеспечила ему распространения. Количество хоббистов, гордящихся, что предмет их хобби соответствует американскому стандарту, практического значения не имеет. С тем же успехом они могут гордиться коллекцией вкладышей от американских жвачек.

Ethereal писал(а):
Наконец, слово ;CODE, имеющее признак немедленного исполнения, позволяет
задавать исполняющую часть определяющих слов непосредственно в машинном
коде:

Ни разу не использовал. Я не ограничиваю себя поисками только уже известного и реализованного (к примеру, в благословенной Стране Эльфов или Просвещенной Европе). Форт - это в большой степени методология программирования, а она развивается независимо от пожеланий отдельных лиц, сколько бы энтузиазма они не проявляли в попытках подмять под себя неподминаемое. Еще раз - мне не нужно слово ;CODE. Мне не нужен отдельный словарь ASSEMBLER для вставки машинного кода. Мне не нужно отдельных наборов слов, утвержденных комитетами, для реализации компилятора. Все эти задачи при необходимости реализуются самыми разными способами, и их решение зависит от объективных потребностей, а не от истории того, как эту проблему когда-то обходили гуру Форта, признанные таковыми другими гуру Форта.


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

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


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

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


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

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