Forth
http://fforum.winglion.ru/

Ограничения FORTH
http://fforum.winglion.ru/viewtopic.php?f=4&t=3051
Страница 5 из 6

Автор:  gudleifr [ Чт июл 09, 2015 13:24 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  kzagradskiy [ Чт июл 09, 2015 22:20 ]
Заголовок сообщения:  Re: Ограничения FORTH

gudleifr писал(а):
А каков его уровень как интерпретатора? На этот вопрос ответ очевиден. Сверхнизкого! Он такой простой, что у него практически нет своего языка - только его заготовка.

Интересная мысль gudleifr, очень доходчиво обрисованная. Для меня это, практически, определение Форта.

Автор:  Hishnik [ Пт июл 10, 2015 23:55 ]
Заголовок сообщения:  Re: Ограничения FORTH

kzagradskiy писал(а):
Для меня это, практически, определение Форта.

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

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

Автор:  gudleifr [ Сб июл 11, 2015 00:04 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  Hishnik [ Сб июл 11, 2015 01:37 ]
Заголовок сообщения:  Re: Ограничения FORTH

gudleifr писал(а):
Скорее всего - да. За это говорит два факта: то, что Дейкстра привел логическое обоснование подобного вывода, а Мур счел его настолько очевидным, что просто не стал обосновывать. На основании своего опыта могу сказать, что приходил к подобной схеме неоднократно (начав с ввода простейших команд-параметров).

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

Автор:  gudleifr [ Сб июл 11, 2015 01:42 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  Hishnik [ Сб июл 11, 2015 23:59 ]
Заголовок сообщения:  Re: Ограничения FORTH

gudleifr писал(а):
А как это противоречит общепринятости примененных в нем механизмов?

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

Автор:  gudleifr [ Вс июл 12, 2015 11:17 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  Hishnik [ Вс июл 12, 2015 14:50 ]
Заголовок сообщения:  Re: Ограничения FORTH

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

Да-да, я помню. Он Вишну, Брахма, Гаруда, Арджуна, альфа и омега, а также основа основ всего программирования. Все есть Форт и Форт есть во всем. Упоминание его в мировых публикациях на уровне 0,1% - это или подтасовка, или признак священного трепета, не дающего всем произносить такие сакральные слова.

На деле ситуация проще. Практикующему программисту абсолютно все равно, кто и в каком году впервые сформулировал идею, которая впоследствии оформилась в том языке, на котором он сейчас пишет. Программист рассматривает язык в сочетании с той предметной областью, в которой он собирается работать ("берем тебя, чтобы ты писал банковский софт на Java" - и он пойдет читать про Java и про банковский софт). Следы освоенных ранее языков программирования и алгоритмов остаются у программиста так же, как остается акцент от родного языка и последующего изучения нескольких иностранных. Ему помог бы Форт в каком-то аспекте его деятельности? Да, вполне вероятно. Ему надо становиться апологетом Форта? Нет, не обязательно. Скорее он станет его противником, как и противником любого языка, фанаты которого начнут подминать его под себя, злорадно рассказывая, что в их-то языке все уже давно было, еще в надцатом году. Задачи интерпретации интересны практику разве что в аспекте чтения текстового файла с настройками. Если ему можно на пальцах рассказать, что постфиксный формат настроек позволит ему реализовать очень простой интерпретатор, он скажет спасибо. Если в комплекте будет идти требование "нет, ты сначала признай, что кругом неправ", он плюнет и продолжит делать так, как умеет.

gudleifr писал(а):
Т.е. в ту область, где FORTH востребован не как эрзац нормального языка, а как супервозможность суперпрограммирования (обход компиляционных методов)?

Да без проблем, только это не может идти в отрыве от практических задач.

gudleifr писал(а):
Нет, конечно, зарабатывать денежку на простых "аппаратно-программных продуктах" никто не запрещает, но рассматривать их как мейнстрим, по крайней мере, скучно.

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

gudleifr писал(а):
Еще раз повторю. То, что все эти попытки формализовать свойства "VFM и F-транслятора" уже который раз терпят крах, не чей-то злой умысел, а лишь невозможность определить свойства того, чего на самом деле нет. Отсюда и "слишком много вариантов".

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

Автор:  gudleifr [ Вс июл 12, 2015 15:07 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  KPG [ Вс июл 12, 2015 17:14 ]
Заголовок сообщения:  Re: Ограничения FORTH

gudleifr писал(а):
Однако, т.к. я в силу профессии занимаюсь обычно сложными задачами, то мне трудно Вам сочувствовать. То, что Вам кажется слишком теоретическим, у меня случается постоянно на практике.

И что же это за задачи, позволяющие сидеть днями на данном форуме и "ломать" голову над ограничениями Forth (Форт)?

Автор:  gudleifr [ Вс июл 12, 2015 17:30 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  Victor__v [ Ср апр 06, 2016 21:47 ]
Заголовок сообщения:  Re: Ограничения FORTH

Достоинство и недостаток форта, последнее, в некоторой степени, это стек.
В этом плане многое решает компилятор. Но и он не в состоянии порою оптимизировать форт-код.

N1 N2 N3
>R R@ 0! DROP R>
в маш коде разворачивается в десяток машкоманд
на асме в две команды.

Автор:  gudleifr [ Ср апр 06, 2016 22:11 ]
Заголовок сообщения:  Re: Ограничения FORTH

<Убрано во исполнение решения Hishnik>

Автор:  VoidVolker [ Ср апр 06, 2016 23:26 ]
Заголовок сообщения:  Re: Ограничения FORTH

Victor__v писал(а):
>R R@ 0! DROP R>
в маш коде разворачивается в десяток машкоманд

Код:
: t >R R@ 0! DROP R> ;
Ok
SEE t

572BA7 50               PUSH    EAX
572BA8 C70000000000     MOV     [EAX] , # 0
572BAE 58               POP     EAX
572BAF 8D6D04           LEA     EBP , 4 [EBP]
572BB2 C3               RET     NEAR
END-CODE   Ok

Страница 5 из 6 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/