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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 22, 2009 21:57 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4949
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Wlad писал(а):
Дедушка Вирт (которого я безгранично чту и уважаю и которому, кстати, 15 февраля исполнилось 75), писал, что язык ни в коей мере не должен опираться и всячески скрывать природу подлежащего исполнительного механизма...
Запись а = 2 механизм скрывает, 2 а ! - нет. (И "пакет хлеб искать DUP? IF @ хлебница ! THEN" - тоже.)
А в Форте это "протягивается" по всем уровням.
Пример с хлебом и ножом - как раз подходит, на самом деле, под мой вопрос про IF... Действительно, явно не понятно, после чего что проверяем...
Я - вЪ глубокихЪ размышленияхЪ...

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

Wlad писал(а):
ЗЫ ДОБАВКА:
...И - кстати... В связи с моим опытом ООП и по некоторому обмыслию, я бы переписал так:
"хлеб пакет искать DUP? IF @ хлебница ! THEN"

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

: взять ( откуда что --> предмет ) искать THROW ;
: определить ( --> ) пакет хлеб взять хлебница положить ;

вот и смотрите, что скрыто, что открыто, какой получается интерфейс :)

Wlad писал(а):
Но мне здесь не понятно: если "пакет" - некая контейнерная структура (объект, условно говоря), какой механизм вызова "метода" "искать"... Словари? Но тогда из - уймища нужна...
А - наследование/расширение?

идея в том, чтобы не усложнять себе жизнь, для этого необходимо каждый раз решать небольшие задачи, которые однозначно уменьшаются в голове, использовать минимально возможное количество переменных (за счет стека), работать всякий раз с минимальным(необходимым) количеством параметров.
"Пакет" может быть чем угодно: словарем, списком, портом В\В - он может искать в себе сам, а может просто "открываться" для поиска. Всегда можно найти удачный простой вариант, если не пытаться найти универсальное решение, приемлемое для всех возможных ситуаций :)

Wlad писал(а):
Не хочется мне из ООП-парадигменных языков и привычек уходить...

в Форт ООП стараются принести каждый раз (новички) как только приходят к Форту. За счет этого реализаций ООПов для форта много, но они особо не приживаются, так как у Форта более мощная абстракция имеется, чем объект - слово :)

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


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 276
Благодарил (а): 8 раз.
Поблагодарили: 10 раз.
mOleg писал(а):
в Форт ООП стараются принести каждый раз (новички) как только приходят к Форту. За счет этого реализаций ООПов для форта много, но они особо не приживаются, так как у Форта более мощная абстракция имеется, чем объект - слово :)

Немножко не ясно: если есть хлебница, есть сумка, есть что-то ещё, в чём можно хранить разнородные предметы и они, по логике того же ООП, имеют один и тот же интерфейс (вязть-из, положить-в, количество-внутри, например), то мне нужно с подходом Форта, просто для каждого экземпляра переписывать слова?
Ну хорошо, я начал переписывать слова, а как мне разгрести к какому типу, что относится? Ведь интерфейс-то один (набор слов), а реализация хранилища в структурах-контейнерах может быть разной (на основе списка, массива, очереди.....) - как?
Или реализовывать "интерфейс" через CREATE DOES>, а внутри них - через векторизацию?
Работы ручной - не слишком много? И, опять же (из своего "тёмного" ООП-прошлого :) ) - с повторной используемостью кода библиотек - как?
Вы говорите каждый раз - заново реализовывать... Хорошо, может быть для (и - до) определённого объёма и масштаба задач, это и подходит, а что делать, если проект достаточно велик или сложен (или - и то, и другое вместе?)...

_________________
У России - только четыре союзника: её Армия, Флот и Авиация с Космическими Войсками.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6407
Благодарил (а): 14 раз.
Поблагодарили: 100 раз.
Wlad писал(а):
В то же время, язык не должен быть одной лишь математической теорией. Он должен быть практическим инструментом. Это подразумевает определенные ограничения, накладываемые на краткость формализма. Несколько языковых средств Оберона, с чисто теоретической точки зрения, являются излишними. И, тем не менее, они присутствуют в языке из сугубо практических соображений, то ли для удобства самого программиста, то ли для достижения эффективной кодогенерации без использования в компиляторах сложных оптимизирующих алгоритмов сопоставления шаблонов.

Это как раз пример комментария, который я имел в виду. Современные процессоры в приличной степени не являются строгими реализациями математических теорий, поскольку туда грубо вторгается технология. И вот на этот(эти) неидеальный процессор(ы) математики пытаются наложить некие языки. Просто неминуемо появятся низкоуровневые прослойки, которые сразу разделяют ЯП на ЯВУ и низко-средне-уровневые. Форт как раз идет "от железа", а не от грамматики. В разъяснении механизмов Форта много от ассемблера, а высокоуровневая часть языка... должна? может? быть выстроена. Минимализм - тоже не догма.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4949
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Wlad писал(а):
Немножко не ясно: если есть хлебница, есть сумка, есть что-то ещё, в чём можно хранить разнородные предметы и они, по логике того же ООП, имеют один и тот же интерфейс (вязть-из, положить-в, количество-внутри, например), то мне нужно с подходом Форта, просто для каждого экземпляра переписывать слова?

вобщем да, но вам в любом случае надо переписывать слова, ведь для каждого класса свои методы, и вы их будете каждый раз определять по-новой, не так ли? Кстати, по логике ООПа интерфейс тот же, а по логике Форта у каждого контейнера интерфейс свой.

Wlad писал(а):
Ну хорошо, я начал переписывать слова, а как мне разгрести к какому типу, что относится?

а типов нет. Собственно, есть у тебя какой-то контейнер, к примеру, у него есть свои методы, у каждого метода свои имена,
ну вот к примеру, у стека данных слова: DUP DROP а у стека контекста: ALSO PREVIOUS - по сути эти слова делают одно и то же, но с разным соедржимым и разными контейнерами. Это один из вариантов, другой - использовать одинаковые имена но в разных словарях, тогда нужно отслеживать контекст.

Wlad писал(а):
Или реализовывать "интерфейс" через CREATE DOES>, а внутри них - через векторизацию?

боюсь, тут нужны конкретные примеры. Без них уйдем в теоретизирование сплошное.

Wlad писал(а):
Работы ручной - не слишком много? И, опять же (из своего "тёмного" ООП-прошлого ) - с повторной используемостью кода библиотек - как?

на самом деле не больше, чем в ООПе.

Wlad писал(а):
Вы говорите каждый раз - заново реализовывать... Хорошо, может быть для (и - до) определённого объёма и масштаба задач, это и подходит, а что делать, если проект достаточно велик или сложен (или - и то, и другое вместе?)...

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

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


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 276
Благодарил (а): 8 раз.
Поблагодарили: 10 раз.
Хищник писал(а):
Это как раз пример комментария, который я имел в виду. Современные процессоры в приличной степени не являются строгими реализациями математических теорий, поскольку туда грубо вторгается технология. И вот на этот(эти) неидеальный процессор(ы) математики пытаются наложить некие языки. Просто неминуемо появятся низкоуровневые прослойки, которые сразу разделяют ЯП на ЯВУ и низко-средне-уровневые. Форт как раз идет "от железа", а не от грамматики. В разъяснении механизмов Форта много от ассемблера, а высокоуровневая часть языка... должна? может? быть выстроена. Минимализм - тоже не догма.

... Хмммм ....
Вы знаете, Хищник, какая-то недосказанность в Вашем сообщении...

Тогда - возникает вопрос: а какие пути выхода на высокий уровень?
Складывается впечатление, что общепризнанно лучший язык для формирования DSL всё никак некую планку не преодолеет... ЧТо само по себе удивительно, потому, что если бы не было прецедентов создания достаточно сложных систем, тогда можно было бы объяснить "оккупацией" языка "низкоуровнивиками"... Но, читаешь, тех же Фохта с Таунсендом - упоминаются в приложении очень серьёзные системы. И я не думаю, что работы там выполнялись одиночками-гениями, способными на чудеса "склейки семантического разрыва"!... Тем более, что раз Форт идёт от "сохи" :), а не от математики, то чем выше по уровню прикладная система, тем большие абстракции люди вынуждены вкладывать в те решения и средства, которые предоставляет Форт...

Тогда ПОЧЕМУ, ни та же Дженерал Электрик, ни НАСА не пронаблюдались в языковом комитете? Они что, пришли к выводу, что овчинка выделки не стоит? Или-таки были получены некие результаты, которые неспоримое рыночное преимущество двали и эти рещения страшно засекретили? :) По-моему, последнее - чушь.

Но, вообще-то странно. Столько лет языку, а никак дальше "явнополуассемблерного уровня" задач, так и не продвинулись...

...

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

У меня сейчас (печатном виде!):
- Таунсенд с Фохтом
- Семёнов
- Баранов с Ноздруновым
- Тоффоли с Марголусом (Машины клеточных автоматов! О-как!!!)
- Броуди (обе книги!)
(+ - великое сонмище статей на английском, как с сайта Мура, так и с каких-то слётов фортеров - еврофорт, фортжурнал и т.д. )

Расставьте в нужной мне последовательности для прочтения, пожалуйста! (С учётом, что Способ Мышления я уже проглотил...)

Я называю это всё "трамвайной литературой", потому, что имею возможность всё это читать или по дороге дом-работа, или немного в выходные...

_________________
У России - только четыре союзника: её Армия, Флот и Авиация с Космическими Войсками.


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 276
Благодарил (а): 8 раз.
Поблагодарили: 10 раз.
mOleg писал(а):
Это один из вариантов, другой - использовать одинаковые имена но в разных словарях, тогда нужно отслеживать контекст.

Воооот...
Вот в этом-то загвоздка! ООП в разных языках и средах как раз - наоборот - ИЗБАВЛЯЕТ от такой необходимости! (ссылки в экземплярах на таблицы виртуальных методов, например)...

Кстати, а ведь слова Форте - это ж те же самые экземпляры некоторых классов-наследников класса "слово" абстрактной Форт-машины. Ото самое cfa - это (с точностью до исключения одной степени косвенности ссылки на VMT) - указатель на виртуальный метод "исполни". :)

_________________
У России - только четыре союзника: её Армия, Флот и Авиация с Космическими Войсками.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6407
Благодарил (а): 14 раз.
Поблагодарили: 100 раз.
Wlad писал(а):
... Хмммм ....
Вы знаете, Хищник, какая-то недосказанность в Вашем сообщении...

Если честно, я не вполне чувствую себя способным вот так с ходу (да даже и с подготовкой) выдать универсальные рекомендации по эффективному использованию Форта. Это процесс интерактивный, к тому же тут огромную роль играет "вертикальное сегментирование рынка". В какие-то области Форт явно не пойдет, и узнать об этом можно будет, только попробовав.
Wlad писал(а):
Тогда - возникает вопрос: а какие пути выхода на высокий уровень?
Складывается впечатление, что общепризнанно лучший язык для формирования DSL всё никак некую планку не преодолеет... ЧТо само по себе удивительно, потому, что если бы не было прецедентов создания достаточно сложных систем, тогда можно было бы объяснить "оккупацией" языка "низкоуровнивиками"... Но, читаешь, тех же Фохта с Таунсендом - упоминаются в приложении очень серьёзные системы. И я не думаю, что работы там выполнялись одиночками-гениями, способными на чудеса "склейки семантического разрыва"!... Тем более, что раз Форт идёт от "сохи" , а не от математики, то чем выше по уровню прикладная система, тем большие абстракции люди вынуждены вкладывать в те решения и средства, которые предоставляет Форт...

Я скорее соглашусь, что конструированием грамматики проще заняться одному человеку... тем более что имею некий положительный опыт такого конструирования. С точки зрения потребительских свойств и сложности доводки конечной программы - разница с ЯВУ колоссальная. Не столько с точки зрения чистой теории, сколько с позиций "нам изменяют ТЗ... а мы обнаруживаем, что все сводится к правке небольших скриптов".
Wlad писал(а):
Тогда ПОЧЕМУ, ни та же Дженерал Электрик, ни НАСА не пронаблюдались в языковом комитете? Они что, пришли к выводу, что овчинка выделки не стоит? Или-таки были получены некие результаты, которые неспоримое рыночное преимущество двали и эти рещения страшно засекретили? По-моему, последнее - чушь.

Скорее выделка ничего не стоит :) А раз не стоит, то зачем что-то фиксировать в стандарте? Вот два знакомых фортера в Интеле работают... так им, насколько я понимаю, просто ни у кого не надо спрашивать разрешения на применения Форта в текущих разработках. Одну точно видел, несколько лет назад - форт-система для МК. Именно для текущей разработки, не "в общем и целом". Это как паяльник - везде рекламируют те или иные поточные линии монтажа, по ним и отмеряют технологический уровень. Но паяльники-то никуда не деваются.
Wlad писал(а):
У меня сейчас (печатном виде!):
- Таунсенд с Фохтом
- Семёнов
- Баранов с Ноздруновым
- Тоффоли с Марголусом (Машины клеточных автоматов! О-как!!!)
- Броуди (обе книги!)
(+ - великое сонмище статей на английском, как с сайта Мура, так и с каких-то слётов фортеров - еврофорт, фортжурнал и т.д. )

Расставьте в нужной мне последовательности для прочтения, пожалуйста! (С учётом, что Способ Мышления я уже проглотил...)

Ох... неблагодарное это занятие :shuffle;
Вобщем, после Starting Forth я бы прочитал Баранова и Семенова (в произвольном порядке). Дальше, возможно, с перерывом и за клавиатурой - Thinking Forth.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6407
Благодарил (а): 14 раз.
Поблагодарили: 100 раз.
Wlad писал(а):
Кстати, а ведь слова Форте - это ж те же самые экземпляры некоторых классов-наследников класса "слово" абстрактной Форт-машины. Ото самое cfa - это (с точностью до исключения одной степени косвенности ссылки на VMT) - указатель на виртуальный метод "исполни".

Я до сих пор придерживаюсь подхода F-83 по отношению к словарям, потому что в этом варианте они чрезвычайно похожи на объекты. А все, что внутри, оказывается методами. Инкапсуляция, наследование, полиморфизм - имеют место быть.


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

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

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4949
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Wlad писал(а):
mOleg писал(а):Это один из вариантов, другой - использовать одинаковые имена но в разных словарях, тогда нужно отслеживать контекст.

Воооот...
Вот в этом-то загвоздка! ООП в разных языках и средах как раз - наоборот - ИЗБАВЛЯЕТ от такой необходимости! (ссылки в экземплярах на таблицы виртуальных методов, например)...

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

Wlad писал(а):
Кстати, а ведь слова Форте - это ж те же самые экземпляры некоторых классов-наследников класса "слово" абстрактной Форт-машины. Ото самое cfa - это (с точностью до исключения одной степени косвенности ссылки на VMT) - указатель на виртуальный метод "исполни".

как бы да. В смысле близко очень, но все же не оно.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт фев 24, 2009 16:13 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Wlad писал(а):
...
- Тоффоли с Марголусом (Машины клеточных автоматов! О-как!!!)


Электронная версия есть здесь:
прямая ссылка:
proklondike.com/var/books/Other/Tofolli_Margolus_-_Mashini_kletochnih_avtomatov.rar (~5.7Mб)


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

Зарегистрирован: Пт фев 27, 2009 00:09
Сообщения: 12
Откуда: Russia, Saint-Petersburg
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
любую задачу по программированию можно решить на любомязыке, в том числе и на ФОРТе и проблемы со стеком и стековым мышлением кончаются после первых 30 кБт отлаженной ФОРТ программы.. недавно мне один человек присылал из штатов письмо, на тему того, что он подумывает какую то свою финансовую систему на ФОРТе писать, да сколько угодно, только кого он сажать писать то будет, сейчас шаг влево-шаг вправо от майнстрима - издержки взлетают до небес


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

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


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

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


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

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