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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Вс май 17, 2015 19:06 
Hishnik писал(а):
gudleifr писал(а):
Рассматривать FORTH не как язык, а как метод.

Рассматривать можно сколько угодно. Делать-то что?
Как бы все тоже: берем A, пишем F, разрабатываем P, перекладывая дальнейшие заботы на пользователя...
Hishnik писал(а):
К тому же метод, разработанный 40-50 лет назад, явно нуждается в пересмотре, тем более в такой динамичной области, как программирование.
Ну, как бы, если учесть, что все работы по кибернетике были свернуты в конце 70-х (японские - в 92-м), не такой уж и срок. Тем более, никаких работ по дискредитации "Метода Мура" не видел. А Вы?
Hishnik писал(а):
А то, ссылаясь на Мура, можно и на блоках настаивать, и даже прецеденты на форуме были.
"Блоки Мура" не имеют почти никакого отношения к "стандартным реализациям, известным по Броуди". И устарели они ровно настолько, насколько сама идея о наличии среди устройств/файлов не только символьных, но и блоковых. Вы против файловых систем и баз данных?
Hishnik писал(а):
Полезного у Мура то, что он предъявил практическую работоспособность связки "стек + регулярная грамматика + словарь на связанном списке".
К этому Мур никакого отношения не имеет. Голимый Дейкстра.
Hishnik писал(а):
gudleifr писал(а):
Скорее, по мере роста сложности решаемых задач, программист, независимо от того, писал ли он на FORTH-языке, приходит к пониманию FORTH-метода.

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


Последний раз редактировалось gudleifr Вт апр 25, 2017 16:23, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Вс май 17, 2015 19:42 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Как бы все тоже: берем A, пишем F, разрабатываем P, перекладывая дальнейшие заботы на пользователя...

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

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

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

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

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

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

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


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


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


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Вс май 17, 2015 20:30 
Не в сети
Administrator
Administrator
Аватара пользователя

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

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

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

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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Вс май 17, 2015 20:43 
Hishnik писал(а):
Вы можете отойти в сторону и возмущаться "вырождением в быдлокодерство", а можно проанализировать, как в текущий процесс можно встроиться.
Именно! И именно этот застой позволяется пользоваться методом Мура, как новым. На замену-то ничего не появилось...
Hishnik писал(а):
POSIX что, заставляет обеспечить запись блоками по 512 байт?
Так и блоки Мура к блокам по 512 байт относились только как к возможному упрощению.
Hishnik писал(а):
Давайте уж сначала дело, а по мере появления вопросов ссылки на фундаментальные работы.
Вы сами просили "научную сторону". А кроме Дейкстры научной стороной FORTH никто не занимался.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Пн май 18, 2015 00:25 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
а где у Дайкстры про стек+словарь?


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

http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=%5C6.PERWOISTOTNIKI%5CE.W.DEJKSTRA%20-%201962


Последний раз редактировалось gudleifr Вт апр 25, 2017 16:25, всего редактировалось 1 раз.

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

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
т.е. https://www.cs.utexas.edu/users/EWD/MCReps/MR46.PDF

Спасибо!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Пн май 18, 2015 02:18 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Идея стекового языка, как модельного промежуточного представления для теории языков и компиляторов, предложенная Дейкстрой, сейчас, конечно, не выглядит чем-то особенным. Мы можем обнаружить стековый ассемблер в .net, продолжаются попытки создать функциональный стековый ассемблер для семейств функциональных языков. Но давайте попробуем вспомнить контекст заметки Дейкстры. Автор как раз закончил работу над компилятором Algol 60. В том самом году (а, возможно, и ранее), когда был написан обсуждаемый текст, Дейкстра имел возможность познакомиться с еще одним компилятором Алгола, для компьютера B5000. По отзывам очевидцев Дейкстра был потрясен этим знакомством, ведь его собственный компилятор был медленнее по крайней мере на два порядка! Тут же со стороны изобретателя стекового ассемблера последовал заказ на несколько машин для университета в Нидерландах... Удивительная архитектура и история B5000 -- среди важнейших явлений в мировой информатике. Для большинства фортеров это просто один из первых стековых компьютеров, но на самом деле талант Боба Бартона создал нечто весьма значительное и опередившее свое время. Даже сейчас архитектуру этой машины очень полезно изучить в деталях. Кстати, в B5000 можно было обнаружить тот самый стековый ассемблер в духе Дейкстры, только, разумеется, более продуманный и практичный. Увы, им никто не пользовался, даже системные программы для B5000 писали с удобством на ЯВУ.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Пн май 18, 2015 10:37 
true-grue писал(а):
Идея стекового языка, как модельного промежуточного представления для теории языков и компиляторов, предложенная Дейкстрой, сейчас, конечно, не выглядит чем-то особенным.
Там не только стековая машина предложена, но и, она же, машина с шитым кодом. И, самое, главное - "без всего остального". Т.е. рассмотрена "полная машина" из "минимума деталей".
Сравнивая с работой Мура 70-го, мы видим две вещи:
1. Мур обосновывает выбор реализации своего метода тем, что так "проще всего".
2. Для него стековая машина с шитым кодом настолько естественна, что он ее даже не особо описывает. Типа, сразу в лоб: для стека нам нужно ..., а для шитого кода - ...
Так что, вероятно, в кругах Мура, работа Дейкстры (и/или ее развития) были на слуху (и, возможно, реализовывались).
true-grue писал(а):
Но давайте попробуем вспомнить контекст заметки Дейкстры. Автор как раз закончил работу над компилятором Algol 60.
Это важно "с другой стороны". В работе Мура, грубо говоря, "привкус компилятора" превратился в "компилирующий язык".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Пн май 18, 2015 16:03 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Работа Дейкстры интересна тем, что полностью посвящена формализации стекового промежуточного представления. Однако, с практической точки зрения его исследования не сообщают нам чего-то нового. Например, он рассуждает о "словах" разных типов, помещающихся в ячейки памяти единого размера. Но такая аппаратная система на момент написания статьи уже существовала, только в B5000 "слова" назывались "слогами", а размер их был 12 бит. Да и в целом в архитектуре B5000 воплотилось многое из того, о чем Дейкстра лишь довольно туманно рассуждал.

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

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

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

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

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

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

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

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

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

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



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


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Пн май 18, 2015 19:25 
Не в сети

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 380
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
браво, true-grue, порадовали!


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

P. S.
Навеяно словами true-grue о технологиях в контексте форт-метода:
Изображение


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Отличие FORTH-метода от FORTH-языка
СообщениеДобавлено: Вт май 19, 2015 14:03 
COMPLEXITY or SIMPLICITY?

FORTH!

Изображение


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

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


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

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


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

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