Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 23:57

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Отличие FORTH-метода от FORTH-языка
Автор Сообщение
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
true-grue писал(а):
Ориентированность на личность, на кустаря-одиночку, независимого от чужого инструментария.


Одним из замечательных "дебилизмов" является: "Ориентированность [FORTH] на личность, на кустаря-одиночку, независимого от чужого инструментария". Очень удобно. Не "я не умею писать на FORTH", а "я давно перерос кустарный уровень".

Вспомним Мура - "у нас только голое железо". Что же теперь "классическому фортеру" при покупке нового компьютера сразу сносить операционную систему, стирать BIOS, выламывать процессоры, заменяя их "патентованными FORTH-кристаллами"? Какая такая злая сила запрещает фортеру пользоваться "чужим инструментарием"? Только одна - непонимание FORTH. Научили когда-то писать FORTH в кодах процессора Z80 - с этим знанием и помрут.

Начнем с другого конца. Возьмем обычную визуальную программу под Windows. Из чего она состоит? Окошко. В окошке кнопочки. Нажатие на кнопочки порождает какие-то действия, возможно появление новых окошек с новыми кнопочками... Т.е. мы имеем ПОТОК сообщений от пользователя, СЛОВАРЬ сообщений пользователя, на которые программа реагирует, СТЕК - сохраняющий данные окна родителя, пока пользователь что-то делает со ЗНАЧЕНИЕМ в дочернем окне...

Можно ли написать FORTH-процедуры - ОК-СИМВОЛ-ВЫПОЛНИТЬ-КОМПИЛИРОВАТЬ-СЛЕДУЮЩИЙ , чтобы это заработало как "настоящий FORTH"?

С процедурой СИМВОЛ никаких проблем - уж что-что, а "символы" Win-соообщений Win-программисты распознавать умеют (хотя и далеки от мысли, что те являются неким "языком").

Процедуры ВЫПОЛНИТЬ и СЛЕДУЮЩИЙ, вроде, тоже работают "сами по себе", разве что, все "слова" Win-программы кодовые, а не шитые.

Серьезнее проблема с КОМПИЛИРОВАТЬ - однако и ее Win-программисты решают успешно, причем даже, не на уровне Win-API-программирования, а даже в каком-нибудь Visual Basic (См. EXPRESSOR). Добавить в начало не-IMMEDIATE слов фразу "if(STATE) - добавь message в табличку" - не проблема.

Остается только ОК. Опять Мур. Чем сложнее "машина" на которой мы пишем FORTH, тем сложнее ОК - ведь он и должен, в конце концов, выводить эти самые "окошки". Теории FORTH-интерфейса пока не создано, поэтому задача решается строго ро месту. Главное - понимать, что весь вывод Win-Controls должен жить в ОК.

Что мы т.о. имеем? Псевдо-FORTH, который по мере "совершенствования" будет все ближе напоминать "обычный". Например, постепенным сведением ОК к обычной Win-консоли, придумыванием "словам" текстовых имен, формализацией СТЕКА... Как показывает мой опыт, задача, ради решения которой и писалась, программа будет решена гораздо раньше. FORTH полезен не только в виде вставки в программу всего этого обязательного балета "цикла управления", а, даже, в виде простого понимания "что за что отвечает". Куда ему расти дальше? Переходить с уровня на уровень.

И самое смешное. Многие фортеры любят поминать игры, в которых вставляются "программируемые на FORTH виртуальные компьютеры", но свой компьютер как подобную "машину" не воспринимают. Автор упомянутого вначале "дебилизма" - в том числе.

Настоящие фортеры часто даже не знают слова FORTH!

Оригинал - http://gudleifr.forum2x2.ru/t14-topic#28
Сообщение Добавлено: Вт апр 25, 2017 12:45
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
COMPLEXITY or SIMPLICITY?

FORTH!

Изображение
Сообщение Добавлено: Вт май 19, 2015 14:03
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
Тоже восторгаюсь постом true-grue! Написано будто Цвейгом! Так просто, красиво, легко...

P. S.
Навеяно словами true-grue о технологиях в контексте форт-метода:
Изображение
Сообщение Добавлено: Пн май 18, 2015 19:54
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
браво, true-grue, порадовали!
Сообщение Добавлено: Пн май 18, 2015 19:25
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
true-grue писал(а):
С точки зрения теории, работа Дейкстры явно не доведена до логического завершения.
Ну, как же?! Доведена:
Цитата:
Они показали как силу, так и слабость языка; силой языка является его гибкость и недвусмысленность; слабость заключается в том, что, как говорит разум, его использование лежит за пределами наших сил
.
true-grue писал(а):
Форт-метод это явление из области инженерного творчества и психологии.
Начиная с этого момента, Вы пошли куда-то не туда.
Во-первых, FORTH-метод не имеет никакого отношения к Дейкстре. Тот лишь очертил основные черты FORTH-языка. FORTH-метод - целиком на совести Мура. Родился из его неохоты перфорировать программы для каждой новой компиляции в 58-м. Работа Дейкстры (ее последователи) лишь дала простой способ реализации метода.
Во-вторых, зачем изобретать свое толкование и понимание FORTH-метода (хотя у Вас получилось красиво), если Мур это сделал от начала до конца в работе 70-го года? В отличие от FORTH-языка, который позже еще немного подрос.
true-grue писал(а):
К настоящему моменту должно быть уже очевидно, что форт-метод не ограничивается лишь одним Фортом.
Это было очевидно изначально. Броуди собрал кучу цитат приверженцев метода: вплоть до паяльщиков железа и поклонников ЯВУ.
true-grue писал(а):
Напоследок, пара слов об отрицательных моментах форт-метода.
Не надо рассматривать слишком узко. "Все есть стек"?! Если "стек" вдруг вырастет в "дерево грамматического разбора", FORTH-методу это не повредит. Как и уборка из стека большей части вычислений. FORTH-метод это всего лишь программирование путем написания нового языка простейшим способом. Других альтернатив преодоления барьера сложности всего две - честное масштабирование (структурное программирование) и ООП. Обе на данный момент выродились в средство обфускации.
Сообщение Добавлено: Пн май 18, 2015 16:32
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
Работа Дейкстры интересна тем, что полностью посвящена формализации стекового промежуточного представления. Однако, с практической точки зрения его исследования не сообщают нам чего-то нового. Например, он рассуждает о "словах" разных типов, помещающихся в ячейки памяти единого размера. Но такая аппаратная система на момент написания статьи уже существовала, только в B5000 "слова" назывались "слогами", а размер их был 12 бит. Да и в целом в архитектуре B5000 воплотилось многое из того, о чем Дейкстра лишь довольно туманно рассуждал.

С точки зрения теории, работа Дейкстры явно не доведена до логического завершения. Действительно, заманчиво использовать стековую машину (о дуализме языка и машины Дейкстра хорошо сказал в начале своего текста) для вывода операционной семантики формализуемого языка программирования. Вот пример формальной семантики для языка Scheme: http://schemers.org/Documents/Standards ... H-10.html# Думаю, если бы придуманный (и продуманный!) стековый язык использовался в таком же духе для описания формальной семантики подмножества Алгол, то работа Дейкстры от этого бы сильно выиграла.

Какое все это имеет отношение к форт-методу? Попробую разобрать ниже, что же я под ним понимаю.

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

Форт-метод -- метод создания инструментария для решения задач. Каковы же его отличительные стороны? Ориентированность на личность, на кустаря-одиночку, независимого от чужого инструментария. Использующему форт-метод разработчику требуются большие опыт и знания. Ведь он, подобно Родену, изучив "глыбу мрамора" знаний и технологий, отсекает от нее все лишнее для себя, путем тщательного отбора из большого числа возможностей. Аналогия с искусством тут неслучайна, ведь автор не просто создает полезный инструмент, а такой, которому он будет испытывать чувства. Отсюда стремление к элегантности, красоте конструкций, миниатюризации. Его инструмент -- средство индивидуального пользования для решения собственных задач. Поддержка в рабочем состоянии, независимость от чужих технологий -- все это накладывает отпечаток на структуру инструмента. Отсюда требования к простоте и регулярности конструкции. Минимализм и единообразие часто приводят к тому, что одни и те же элементы такого инструментария используются нетривиальным образом для различных целей. Это требует определенного мастерства в освоении, в духе процесса бритья топором или использования надфиля в качестве пилки для ногтей. В целом, форт-метод добавляет к результату яркий отпечаток индивидуальности создателя.

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

По схожим принципам был создан язык Смолток Алана Кэя, в котором понятия минимализма, элегантности, единообразия тоже играют ключевую роль. Неслучайно, что Смолток и Форт являются не просто языками, а системами, ведь это требует принцип независимости от чуждого инструментария. В относительно недавнем проекте STEPS Алан Кэй идет еще далее в использовании форт-метода.

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

Язык K Артура Уитни в большей степени, чем ориентированные на обучение и большую аудиторию Оберон или Смолток, напоминает Форт в том, как личность создателя отражается в языке. Принцип Родена работает и тут: язык появился путем упрощения APL и J.

В каждом из представленных языков есть своя "философия". Например, в Форте это "все есть стек(и)", в Смолтоке -- "все есть объект", в Обероне -- однопроходный режим компиляции и отсутствие литералов массивов, в K -- однострочные определения.

Напоследок, пара слов об отрицательных моментах форт-метода. Персональный подход к созданию инструментария часто оказывает странное психологическое воздействие на сторонних его пользователей, вплоть до полурелигиозного почитания или личной ненависти. Второй момент более важен. Применение форт-метода требует недюжинных интеллектуальных усилий. Тем немногим, кто использовал его хотя бы раз, трудно заставить себя снова применить его, переступив через прошлые наработки.
Сообщение Добавлено: Пн май 18, 2015 16:03
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
true-grue писал(а):
Идея стекового языка, как модельного промежуточного представления для теории языков и компиляторов, предложенная Дейкстрой, сейчас, конечно, не выглядит чем-то особенным.
Там не только стековая машина предложена, но и, она же, машина с шитым кодом. И, самое, главное - "без всего остального". Т.е. рассмотрена "полная машина" из "минимума деталей".
Сравнивая с работой Мура 70-го, мы видим две вещи:
1. Мур обосновывает выбор реализации своего метода тем, что так "проще всего".
2. Для него стековая машина с шитым кодом настолько естественна, что он ее даже не особо описывает. Типа, сразу в лоб: для стека нам нужно ..., а для шитого кода - ...
Так что, вероятно, в кругах Мура, работа Дейкстры (и/или ее развития) были на слуху (и, возможно, реализовывались).
true-grue писал(а):
Но давайте попробуем вспомнить контекст заметки Дейкстры. Автор как раз закончил работу над компилятором Algol 60.
Это важно "с другой стороны". В работе Мура, грубо говоря, "привкус компилятора" превратился в "компилирующий язык".
Сообщение Добавлено: Пн май 18, 2015 10:37
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
Идея стекового языка, как модельного промежуточного представления для теории языков и компиляторов, предложенная Дейкстрой, сейчас, конечно, не выглядит чем-то особенным. Мы можем обнаружить стековый ассемблер в .net, продолжаются попытки создать функциональный стековый ассемблер для семейств функциональных языков. Но давайте попробуем вспомнить контекст заметки Дейкстры. Автор как раз закончил работу над компилятором Algol 60. В том самом году (а, возможно, и ранее), когда был написан обсуждаемый текст, Дейкстра имел возможность познакомиться с еще одним компилятором Алгола, для компьютера B5000. По отзывам очевидцев Дейкстра был потрясен этим знакомством, ведь его собственный компилятор был медленнее по крайней мере на два порядка! Тут же со стороны изобретателя стекового ассемблера последовал заказ на несколько машин для университета в Нидерландах... Удивительная архитектура и история B5000 -- среди важнейших явлений в мировой информатике. Для большинства фортеров это просто один из первых стековых компьютеров, но на самом деле талант Боба Бартона создал нечто весьма значительное и опередившее свое время. Даже сейчас архитектуру этой машины очень полезно изучить в деталях. Кстати, в B5000 можно было обнаружить тот самый стековый ассемблер в духе Дейкстры, только, разумеется, более продуманный и практичный. Увы, им никто не пользовался, даже системные программы для B5000 писали с удобством на ЯВУ.
Сообщение Добавлено: Пн май 18, 2015 02:18
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
т.е. https://www.cs.utexas.edu/users/EWD/MCReps/MR46.PDF

Спасибо!
Сообщение Добавлено: Пн май 18, 2015 00:34
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
forther писал(а):
а где у Дайкстры про стек+словарь?

http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=%5C6.PERWOISTOTNIKI%5CE.W.DEJKSTRA%20-%201962
Сообщение Добавлено: Пн май 18, 2015 00:28
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
а где у Дайкстры про стек+словарь?
Сообщение Добавлено: Пн май 18, 2015 00:25
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
Hishnik писал(а):
Вы можете отойти в сторону и возмущаться "вырождением в быдлокодерство", а можно проанализировать, как в текущий процесс можно встроиться.
Именно! И именно этот застой позволяется пользоваться методом Мура, как новым. На замену-то ничего не появилось...
Hishnik писал(а):
POSIX что, заставляет обеспечить запись блоками по 512 байт?
Так и блоки Мура к блокам по 512 байт относились только как к возможному упрощению.
Hishnik писал(а):
Давайте уж сначала дело, а по мере появления вопросов ссылки на фундаментальные работы.
Вы сами просили "научную сторону". А кроме Дейкстры научной стороной FORTH никто не занимался.
Сообщение Добавлено: Вс май 17, 2015 20:43
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
gudleifr писал(а):
Выродилось. В быдлокодерство. Кому нужно искусство управления думающими машинами, если думать не надо?

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

gudleifr писал(а):
Т.е. против POSIX понятия "блоковые файлы": файловых систем, баз данных, оверлеев...

POSIX что, заставляет обеспечить запись блоками по 512 байт?

gudleifr писал(а):
И реализовал это, как язык программирования ЭВМ, получил основные формализмы, очертил границы применимости?

Ну откуда ж я знаю, может он на пещере углем нарисовал? :)) Вот только оно до нас не дошло, и это главное. Аналогично, идеи Дейкстры вместе с Фортом как-то не ходили. И лично я не собираюсь стыдить кого-то тем, что они не законспектировали ту или иную статью, если есть более простой способ ввести их в технологию практического использования Форта. А то получается примерно как на уроке информатики, когда к компьютерам учащихся не пускают, зато они записывают, в каком году какая дискета появилась. Давайте уж сначала дело, а по мере появления вопросов ссылки на фундаментальные работы.
Сообщение Добавлено: Вс май 17, 2015 20:30
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
Hishnik писал(а):
А без Форта так можно сделать? Если нет, то почему, а если да, то почему это называется форт-методом, если можно сделать и без Форта?
Сделать можно, есть же, например awk, lex, yacc... даже работы некоторых классиков OOП. Почему называется FORTH-методом? Мур его так назвал.
Hishnik писал(а):
А кибернетика-то тут при чем? Программирование никуда не делось.
Выродилось. В быдлокодерство. Кому нужно искусство управления думающими машинами, если думать не надо?
Hishnik писал(а):
Я ясно выразился - я против сохранения блоков...
Т.е. против POSIX понятия "блоковые файлы": файловых систем, баз данных, оверлеев...
Hishnik писал(а):
А вдруг до Дейкстры какой-нибудь шаман кроманьонской эпохи представлял себе стопку кусков мяса?
И реализовал это, как язык программирования ЭВМ, получил основные формализмы, очертил границы применимости?
Сообщение Добавлено: Вс май 17, 2015 19:56
  Заголовок сообщения:  Re: Отличие FORTH-метода от FORTH-языка  Ответить с цитатой
gudleifr писал(а):
Как бы все тоже: берем A, пишем F, разрабатываем P, перекладывая дальнейшие заботы на пользователя...

А без Форта так можно сделать? Если нет, то почему, а если да, то почему это называется форт-методом, если можно сделать и без Форта?
gudleifr писал(а):
Ну, как бы, если учесть, что все работы по кибернетике были свернуты в конце 70-х (японские - в 92-м), не такой уж и срок. Тем более, никаких работ по дискредитации "Метода Мура" не видел. А Вы?

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

gudleifr писал(а):
Вы против файловых систем и баз данных?

Я ясно выразился - я против сохранения блоков, если повсеместно к файлам обращаются через POSIX. Аргумент "у Мура были блоки, поэтому они нужны, чтобы Форт стал настоящим" несостоятелен. Аналогично по другим пунктам.

gudleifr писал(а):
К этому Мур никакого отношения не имеет. Голимый Дейкстра.

А вдруг до Дейкстры какой-нибудь шаман кроманьонской эпохи представлял себе стопку кусков мяса? :) Форт в массовом представлении связан с Муром, поэтому что именно Дейкстра делал, интересно скорее в историческом смысле.

gudleifr писал(а):
Мы говорим о методе, а не о языке. Программист, пользующийся FORTH-методом, может ничего не знать, о FORTH-языке.


Это который завершается написанием P? Пожалуйста, yacc и ему подобные. Это отдельное направление. Можно выйти на некие теоретические построения, рассматривая способ построения грамматики в Форте как частный случай некоего общего подхода. Тоже интересно, но от этого не становится больше программистов, которые будут писать : SQR DUP * ;
А сейчас есть некий дефицит людей, которые способны при взгляде на задачу сказать "да, мы можем быстро сделать инструменты, может быть, не такие красивые, зато хоть что-то".
Сообщение Добавлено: Вс май 17, 2015 19:42

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


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