Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт фев 28, 2020 14:56

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 00:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6892
Благодарил (а): 17 раз.
Поблагодарили: 112 раз.
Флуд, флуд! :)
Только более или менее контролируемый. Итак, посмотрев на ссылки по микроконтроллерам, и припомнив аналогичные цепочки обсуждения на других форумах и под другим соусом, я как-то задался вопросом: а почему, "когда стреляет Азазелло, тарелочки сначала разбиваются, а потом падают, а когда стреляет Бегемот, тарелочки сначала падают, а потом разбиваются?" (с) КВН. Иными словами, почему у некоторых разговор о Форте заканчивается появлением новых фортеров, а у некоторых - флеймом и появлением новых людей, убежденных в том, что это еще один язык для гиков.
Отсюда вопросы: с какой целью мы ходим на тематические форумы и рассказываем о Форте? Подсказываю варианты, которыми ни в коей мере не исчерпываются ответы, и которые, более того, являются в некоторой степени провокационными. Просто если больше ничего не придумывается, то надо уже делать выводы...

1) Хочу денег, поэтому пытаюсь найти, кому бы продать свой Форт-продукт. Поэтому бросаю на форумы завлекалочки, чтобы Фортом заинтересовались, и тут я как раз и скажу, что умею на нем писать.
2) Хочу признания. Сам-то все знаю, поэтому рассказываю о Форте, вызывая людей на дискуссии. Форт - редкий язык, так что велика вероятность, что по существу мне не возразят, поэтому мне будет легко опровергнуть все аргументы оппонентов.
3) Хочу признания, но чтобы при этом меня признали ценным сотрудником. Для этого создаю впечатление о Форте как о языке с неисчерпаемыми возможностями, и о себе, как о специалисте, который эти тайны уже постиг. В итоге ко мне должны обратиться за помощью, и будет почти пункт 1, но на постоянной основе.
4) Хочу, чтобы мне в качестве протеста против Форта подсказали хороший вариант на Си (или Бейсике). Просто так ведь не подскажут, лень. А если я заявлю, что Форт - суперязык, то людей это заденет, и они начнут с энтузиазмом опровергать данное заявление, накидывая мне вкусных решений.
5) ... ?

Я бы, например, на такое ответил "ну извини, дорогой, это все твои проблемы". Поэтому начинаем аккуратно формулировать, что же можно сказать про Форт, чтобы человек задумался, и его итоговая реакция была такой, какая требуется сообществу. Явно есть "истории успеха", когда люди, ранее не знавшие Форт, находили в нем полезные качества (какие? как эти качества были преподнесены?). А флеймить на форумах на тему "Форт - суперязык" дело бесполезное, на такое заявление найдется 10 вида "нет, Форт - никому не нужный мусор".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 13:34 
Совсем по другому поводу, но похоже:
Цитата:
1. Мне плевать, кто и что написал до меня. Я пишу потому, что не могу не писать.
2. Я свободно ориентируюсь в том, что написали другие. И заведомо смогу не хуже. Почему бы не урвать свой кусочек славы, денег...
3. Я перерыл многое из написанного другими, но так и нашел того, что заставило "душу развернуться, а потом опять свернуться". И мне неважно, я напишу подобное или кто другой, главное, я хочу в это играть.
4. Другими написано много дельного и много ерунды. Я даже не хочу в это вникать. Но обсуждение этой вот конкретной темы (или рождение нового проекта) слишком похоже на игру само по себе и я хочу в нее поиграть.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 14:35 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6892
Благодарил (а): 17 раз.
Поблагодарили: 112 раз.
Это тоже варианты, когда человек решает какие-то свои проблемы. Окружающим это не особо помогает, скорее способствует формированию позиции "ах так, тогда у меня тоже есть любимый язык!". А потом люди удивляются, почему это их рассказы о Форте не вызывают всеобщего восхищения. Ну так и доколе будем вредить языку и себе? В конце концов, если человек не может объяснить пользу Форта на форуме, то вероятнее всего он не может объяснить ее и коллегам, и начальству. Отсюда сетования на отсутствие рынка Форт-программ, проистекающие в основном от неумения объяснить, почему за возню именно с этим языком должны платить зарплату.
На данный пост могут быть две основные реакции:
1) Обидеться, расфыркаться, объявить флудом, и дальше сидеть в гордом одиночестве, ругая изолированность фортеров и отсутствие поклонников.
2) Понять, что проблема объяснения в той или иной степени есть у всех, начать приводить примеры вида "вот там со мной спорили, а там согласились". В конечном итоге нащупать стратегию ведения разговора о преимуществах Форта, который бы в конечном итоге приводил к признанию этого языка, внедрению его на работе и получению заказов на разработку.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 15:08 
Мне кажется, ответ на большинство вопросов, действительно, в понимании сути Forth. Ведь это, никаким местом не язык, не виртуальная машина (кстати, этот термин применял и Мур), не система... Это - способ написания проблемно-ориентированных языков. На языке ассемблера, на C, Pascal, да даже на голом программаторе... Т.е. разговор должен вестись не о преимуществах польской записи или стековой нотации, а о способах наиболее легкого и мощного написания чего-то подобного "на коленке".
И сравнивать надо не на уровне готовых Forth-систем, а на уровне отдельных компонентов... Для этого надо разбить Forth на части и более-менее узаконить их интерфейсы. Это же, кстати, касается и Форума. "Forth в разрезе" послужил бы прекрасной картой для поиска интересующих новичка тем.
А как же хвастаться своими форками и кварками? А нафига они нужны? Как говорил коллега Хищник, каждый варит суп по-своему... От себя, памятуя, о том "на что должен быть способен Forth", добавлю, что и на более высоком уровне возможна интеграция. Но на пути философского переосмысления Forth-начал или изобретения Forth-ИИ, а не на добавлении механизмов компиляции сепулек.
Уровень же готовой Forth-системы с необходимыми библиотеками для обмена мыслями не пригоден совершенно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 16:14 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Хищник писал(а):
Явно есть "истории успеха", когда люди, ранее не знавшие Форт, находили в нем полезные качества (какие? как эти качества были преподнесены?).


По мне, так достаточно чтобы кто нибудь сказал
спасибо.
[url=http://www.fforum.winglion.ru/viewtopic.php?t=2153]
Код:
Добрый день.
Я в форте пока что чайник, чуть больше месяца назад вообще о нём узнал (спасибо Кора )
Хотя припоминаю, на спектруме развлекался немного, но быстро надоело.
А теперь, поработав несколько лет в эмбеддед индустрии, вижу для себя преимущества, которые даёт форт


P.S. Одна из проблем Форт язык в том, что у разработчиков даже нет знания о его наличии, даже не упоминаю о свойствах.
P.S. electronix.ru - это достаточно серьёзный форум по электронике. На нём "даже" или "вопреки" было объявление о работе на Форт языке (в Перми).
P.S. В своей программерской практике по работе использовался C и Asm, но был период и Форта,
когда набор инструментария решения задачи не ограничивался и программерская часть решалась только мной. (2-а разработчика, не связанных со мной, отнеслись положительно к использованию Форт инструментария в своей деятельности, а один выступил в роли "тестера" и заинтересованного пользователя библиотечных функций) В тех условиях, оптимизационные возможности в Форте не были бы лишними т.к. задача управления решалась в "жестких" временых ограничениях при ограниченности средств и поэтому использовалась смесь Форта и ассемблера (высокоуровнего).


Последний раз редактировалось Kopa Пн мар 19, 2012 17:59, всего редактировалось 9 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 16:27 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
gudleifr писал(а):
"Forth в разрезе" послужил бы прекрасной картой для поиска интересующих новичка тем..


Отдельной темой ("Избранные темы")?
Но будут и "белые" пятна, которые придётся
заполнять или давать рекомендации по возможным путям решения.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 16:40 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Хищник писал(а):
В конце концов, если человек не может объяснить пользу Форта на форуме, то вероятнее всего он не может объяснить ее и коллегам, и начальству.

По моему, даже на местном форуме, с этим проблемы:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 16:41 
Для меня главное преимущество Форта в его абсолютной управляемости.
И пусть кому-то нравится, когда "шаг влево, шаг вправо, расстрел на месте".
А кому-то нравится принцип "что хочу, то и ворочу" (в хорошем смысле этого дела).


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 16:58 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
gudleifr писал(а):
Совсем по другому поводу, но

Теперь "сыграем" в угадайку у кого какой вариант?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 21:04 
О чем "на самом деле" говорил Мур?

Сначала, о словах-паразитах.
Можно заметить, что, если в первой части книги Мур употреблял термин "проблемно-ориентированный язык", то во второй он обсуждает больше "виртуальную машину". В принципе, отличие только в том, что "язык" связан с выполнением слов из входного потока, а "машина" - с выполнением слов шитого кода. Т.е. в терминах самого Мура - вся разница в замене подпрограммы NEXTW на NEXTI. Причем, большинство полезных идей Мура связано именно с "языком", а "машина" лишь позволила ему более "программистски" обсуждать некоторые частные проблемы. Поэтому термин "виртуальная машина" предлагаю более не употреблять, тем более, что его всяк понимает по-своему.
Второй паразит - слово "контекст". Сам Мур его не употребляет, но искушение при помощи этого слова объяснить то, что сам плохо понимаешь, очень велико: контекст исполнения против контекста компиляции, контекст цикла, контекст порождаемый словарем... Бесполезность этого слова явно следует из того простого факта, что сам Forth ни о чем подобном не догадывается. "Контекст", влияющий на выполнение подпрограммы, это отражение того факта, что подпрограмма может быть вызвана из разных мест и/или некоторая переменная-флаг имеет разные значения. Сам же термин, подобно "машине" слишком уж многозначен, поэтому его тоже предлагаю избегать.

Так, что же изобрел Мур? Главная идея - написать простую программу, которая будет сложно работать, т.к. оператор сможет вводить сколь угодно сложные последовательности команд. Как калькулятор. Какими качествами должна обладать такая программа?
1. Язык команд оператора должен быть ориентирован на проблемную область, чтобы оператор мог, действительно, сделать что-то полезное. Мур назвал такой язык языком управления.
2. Чтобы оператор не повторял ввод длинных команд, язык команд должен содержать команды, при помощи которых он мог бы расширяться новыми командами, составленными из уже имеющихся. Такой язык Мур и назвал проблемно-ориентированным.
3. Очевидные программистские порадигмы: операторы присваивания, переменные, параметры подпрограмм совершенно не нужны ни оператору, ни интерпретатору. И гораздо проще оставить их лишь в потенции, разрешив оператору создавать их самому.
Вот, собственно и все. Всякие стеки и шитые коды - это лишь частное решение проблемы. Общего решения Мур так и не представил, начав радостно экспериментировать с моделью, как только она заработала.
Нерешенными Муром остались, по крайней мере, две проблемы.
1. Насколько принципы построения пользовательских программ-макросов могут быть расширены "внутрь" для построения внутренних Forth структур.
2. Насколько Forth может быть самодостаточным? Например, Мур рассматривал создание слов в кодах компьютера как крайнее средство ублажить оператора-извращенца. Гораздо легче, по его мнению было расширить нужными машинными кодами изначальный язык управления и перекомпилировать программу.

Откуда взялись стек и шитый код, предложенные Муром в качестве "самого простого решения", совершенно непонятно. Очевидно, эти идеи витали в воздухе. Более того, Мур так и "не заметил", что эти структуры очень схожи, хотя пару раз этим сходством и воспользовался.

Сравним с другими системами программирования:
1. BASIC. Здесь явный перекос в сторону языка управления. Реализован набор операций, практически полностью удовлетворяющий потребности пользователя по управлению компьютером. Язык же определения новых подпрограмм очень убогий. Вложение одних подпрограмм в другие реализовать практически невозможно.
2. C. Язык создания подпрограмм прекрасно сбалансирован с элементарным языком управления. Все нужные расширения языка сгруппированы в библиотеки. Но возможность оператора писать свои программы и развивать язык отсутствует. Все поведение программы определяется программистом.
3. LISP. Язык является саморасширяющимся в гораздо большей степени, чем Forth. Он сам на себе и написан. Но его атомарные команды очень сложны и ресурсоемки. Доступ к возможностям машины практически исключен: ограничен возможностями виртуальной машины (вот здесь этот термин применим в полной мере).

Реалии сегодняшнего дня.
1. Во многом устарели выводы Мура, основанные на возможностях тогдашних компьютеров. Сейчас желание вместить ядро системы в 4k слов может посетить только редкого ПЛИС-оведа. Тоже можно сказать о желании сэкономить пару-другую инструкций в основном цикле программы. Поэтому так и надеются фортеры на свою востребованность в мире маленьких электронных фигулек, вместо того, чтобы развивать Forth-принципы, применимые в большом мире.
2. Отвращение современных программистов к машинам с хранимой программой еще больше, чем у Мура. Если тогда это было трудно технически, то теперь - психологически.
3. Самой страшный удар по концепции проблемно-ориентированного языка нанес переход к оконным приложениям. Если в те времена консоль была естественным средством общения оператора с машиной, и наличие языка управления считалось облегчением операторского труда, то теперь консоль надо эмулировать, а оператора приучать набивать слова вместо нажимания на красивые кнопочки. Расширение входного потока до управляемого событиями асинхронного монстра никем из фортеров серьезно не рассматривается.
4. Появление "новых" парадигм программирования - ООП, процессов, управляемых данными, многопоточных, генетически модифицируемых... время от времени подвигает фортеров на какие-то телодвижения, но, вместо новых Forth-решений, мы видим написанные на Forth эмуляторы чужеродных механизмов.
Впрочем, пусть меня поправит тот, кто читал свежие статьи Мура.

Выводы. Если сравнить описанную Муром систему с моим определением Forth, можно видеть:
1а. Возможность построения языка сколь угодно высокого уровня имеет место и там, и там.
1б. Возможность прямого доступа к железу Муром допускается только в случае крайней необходимости.
1в. Простота и там, и там во главе угла.
2. Окончательность какой-либо версии Forth Муром тоже отрицается, но до целевой компиляции он, вроде бы, не дошел.
3. Ни о каком стандартном наборе слов Мур не говорил, считая, что все, что не нужно в процессе функционирования ядра, должно добавляться только по желанию оператора.

Т.о. Общее устройство Forth можно представить следующими блоками:
1. Интерпретатор
1.1. Цикл управления
1.1.1. Получение слова
1.1.1.1. Организация входного потока
1.1.1.2. Парсирование входного потока
1.1.1.3. Ввод слова из шитого кода
1.1.1.4. Другие источники
1.1.2. Поиск кода
1.1.2.1. Алгоритм поиска
1.1.2.2. Распознавание литералов.
1.1.3. Обработка кода
1.1.3.1. Исполнение
1.1.3.2. Компиляция
1.1.3.3. Другое
1.1.4. Другие контрольные точки цикла управления
1.2. Слова необходимые для интерпретатора, вызываемые не им, но на общих основаниях.
1.2.1. Управление словарными статьями
1.2.2. Компилирующие слова
1.2.3. Обмен данными
1.3. Интерфейс с ОС
2. Стандартный набор слов
2.1. ANSI94
2.2. Ассемблер
2.3. Консоль
2.4. Элементы ОС
3. Полезные алгоритмы
4. Полезные концепции


Последний раз редактировалось gudleifr Пн мар 19, 2012 22:48, всего редактировалось 2 раз(а).

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 22:40 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6892
Благодарил (а): 17 раз.
Поблагодарили: 112 раз.
Теперь вопрос: а как из всего этого выделить удобное объяснение постороннему человеку, зачем бы ему понадобился Форт?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 22:47 
Хищник писал(а):
Теперь вопрос: а как из всего этого выделить удобное объяснение постороннему человеку, зачем бы ему понадобился Форт?
Форт - лучший способ взаимодействия тупого программиста с продвинутым пользователем. Т.к. программисту надо написать только работоспособное ядро, а пользователю придется научиться его развивать в нужном направлении.
Возможны варианты:
1) оба этих господина - одно лицо
2) задача Форума - привлечь тупого программиста, разложив Forth по полочкам
3) задача Форума - так усложнить Forth, чтобы он сам смог писать программы вместо пользователя


Последний раз редактировалось gudleifr Пн мар 19, 2012 23:14, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 23:13 
gudleifr писал(а):
Форт - лучший способ взаимодействия тупого программиста с продвинутым пользователем.

Только небольшая "неувязочка". Зачастую тупой программист выполняет и функцию продвинутого или ленивого пользователя:).


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 23:19 
`Kopa писал(а):
Только небольшая "неувязочка". Зачастую тупой программист выполняет и функцию продвинутого или ленивого пользователя:).
"И я нашел этот выход. Я его нашел! Но несколько раньше Вас".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Флудим (?) о целях распространения Форта
СообщениеДобавлено: Пн мар 19, 2012 23:29 
gudleifr писал(а):
`Kopa писал(а):
Только небольшая "неувязочка". Зачастую тупой программист выполняет и функцию продвинутого или ленивого пользователя:).
"И я нашел этот выход. Я его нашел! Но несколько раньше Вас".


У продвинутых пользователей выбор не оканчивается Фортом среди существующих возможностей. Так же, как и тупого программиста!....

P.S. И в чём выход? Хотя хорошую карту сайта неплохо бы иметь, но для этого необходимо перелопатить кучу
информации на данном форуме. При том, что ещё придётся сначала получить локально на свой компьютер.


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

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


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

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


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

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