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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - вопрос на засыпку: когда форт перестает быть фортом?
Автор Сообщение
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Из практических соображений - Форт остается Фортом до тех пор, пока для работы с ним требуется изучать книги по Форту (а не по, допустим, Си или Бейсику). Это если нестрого.

На ПК контроль памяти, входного потока, CREATE DOES> скорее нужны, чем нет. В форт-процессорах это все не особо приживается, потому что есть на хост-системе. В ПЛИС обычно нужны структуры управления, переменные и массивы.
Сообщение Добавлено: Пт авг 12, 2022 20:52
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Victor__v писал(а):
Эх, очередная тема по безсмысленным и безпощадным высказываниям)

Выскажусь и я)
Цитата:
когда форт перестает быть фортом?
Никогда :mrgreen:

"Есть только миг, между прошлым и будущим. Именно он, называется ФОРТ" :work;
Сообщение Добавлено: Чт авг 11, 2022 23:47
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Victor__v писал(а):
Никогда :mrgreen:

Все есть Форт &)

Или, как там, дао, путь по которому можно идти бесконечно...
Сообщение Добавлено: Чт авг 11, 2022 19:36
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Эх, очередная тема по безсмысленным и безпощадным высказываниям)

Выскажусь и я)
Цитата:
когда форт перестает быть фортом?


Никогда :mrgreen:
Сообщение Добавлено: Чт авг 11, 2022 18:07
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Мне кажется, что необходимость самокопания в своих потрохах и саммомодификации кода, а также требование всенепременно быть интерпретатором - это наследие древних времен, когда трава была зеленее, деревья выше, пиво вкуснее и т.д. В той ситуации просто нельзя было (наверное) реализовать те же управляющие конструкции как-то иначе, чем вмешиваясь в процесс трансляции при помощи immediate-слов. Тогда и бейсики интерпретировали, но сейчас почему-то компилируют... :)

И вообще, любой язык программирования, который хочет (а Форт хочет?) быть успешным и иметь свою часть пирога, допустим, при программировании микроконтроллеров (а это сейчас едва ли не единственная ниша, в которой Форт пока еще чувствует себя неплохо), просто обязан быть кросс-компилятором (пусть даже ценой упрощения и отказа от каких-то конструкций языка), но может быть (но только как опция) также и интерпретатором, зашиваемым в микроконтроллер. Для слабых микроконтроллеров так вообще единственный вариант - это кросс-компилятор. Превратить программу на языке программирования в исполняемый файл или прошивку в виде файла (а не в виде куска оперативной памяти, с которой потом еще что-то надо делать) - это нормальное человеческое желание. :) Нет, можно конечно и дальше считать Форт языком для когорты спустившихся с небес луноликих старцев и требовать везде интерпретатор, но тогда сразу исключается возможность использования форта для, например, однократно программируемых контроллеров, контроллеров без возможности самопрограммирования флеш, контроллеров с малым количеством flash/ram и т.д. Отпугивает потенциальных программистов от Форта такая его "элитарность" и заметно сужает круг возможных применений :) Поэтому, если не хотим остаться в прошлом тысячелетии, надо идти в ногу со временем и приспосабливаться к текущим реалиям :)
И другая ниша, где Форт достаточно хорош. Это скрипты. Вот здесь-то как раз и нужен интерпретатор, но опять же нельзя всех под одну гребенку. Надо реализовывать только те слова, которые нужны, и тем способом, который удобнее/короче/проще и т.д., а не так, как предписывается в ветхозаветных стандартах :)
Сообщение Добавлено: Чт авг 11, 2022 12:10
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
mOleg писал(а):
Total Vacuum писал(а):
Так вот словарь. Обязан ли словарь являть собой одну из разновидностей шитого кода?
ну, все же, ШК это не к словарю, а к методу адресной интерпретации (некоторыми нелюбимое название ФВМ)
Имел ввиду содержимое области памяти, куда в процессе работы обычно складываются заголовки словарных статей и их наполнение. Обязан ли Форт пережевывать тушу (исходник) до состояния фарша (смеси машинных кодов и адресов) или имеет право порубить тушу на крупные куски (какое-то промежуточное представление на языке высокого уровня, асм, ну или любое другое) и на этом успокоиться?

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

mOleg писал(а):
Никто, однако, не сказал о доступе (открытости) ко всему внутреннему устройству интерпретатора,
я так и не понял, важна ли возможность расширения самого языка (например добавление новых управляющих конструкций).
mOleg писал(а):
Или, вот, я взял и написал транслятор Форта (в ассемблерный код, например), и в нем нет ни immediate слов, ни привычного транслятора, а есть что-то вроде привычного Си - это еще Форт, или уже нет?
Мне кажется, что если хотя бы несколько базовых управляющих конструкций есть "из коробки", то механизм добавления новых совсем не обязателен. Но при этом даже без immediate вполне можно жить, имея возможность добавлять новые управляющие конструкции. :) Да и вообще, если, например, речь о микроконтроллере с небольшим количеством ram/flash, то там в любом случае не нужны какие-то хитровыдуманные управляющие конструкции и какое-нибудь ООП, вполне хватит и базовых управляющих конструкций, а также пары предопределенных типов данных (variable/array). И вообще, зачем в конкретной реализации Форта делать то, чем пользоваться никогда не будем? Надо от потребностей плясать: сложное изделие/проект - тогда реализуем всю внутреннюю кухню (immediate create does> и т.д.), но только если без нее никак не обойтись, а если изделие/проект простое, то зачем искусственно усложнять транслятор? Произвольно взятый Форт не обязан быть безгранично и бесконечно расширяемым, он должен быть расширяемым до каких-то необходимых, но при этом разумных пределов. Мне так кажется :)

Пара примеров, там исходный код можно в браузере посмотреть, если F12 нажать, ну или html скачать:
http://totalvacuum.ru/online3d.htm
http://totalvacuum.ru/256x176.htm
В первом случае управляющие конструкции реализуются при помощи immediate, а constant/variable/array и т.д через create does>. А во втором случае управляющие конструкции реализованы через inline, а create does> убрано за ненадобностью. И, кстати, в том и другом случае словарь реализован через ассоциативные массивы. И подпрограммный шитый код на javascript :)
Сообщение Добавлено: Чт авг 11, 2022 11:20
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Любой язык, у которого есть доступ к формированию произвольного машинного кода и передаче управления на этот сформированный код, по существу остается тем же самым языком до тех пор пока вышеописанный доступ будет сохраняться. В противном случае язык перестанет быть исходным. Для Форта это тоже справедливо.
Сообщение Добавлено: Чт авг 11, 2022 00:56
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Total Vacuum писал(а):
Так вот словарь. Обязан ли словарь являть собой одну из разновидностей шитого кода?

ну, все же, ШК это не к словарю, а к методу адресной интерпретации (некоторыми нелюбимое название ФВМ)

А, вот, словарь - это просто список, и как он устроен по сути не слишком важно (это особенности реализации)

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

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

Или, вот, я пишу так:
void BOUNDS(void) { OVER(); ADD(); SWAP(); }
это еще Форт?
Ну, передача данных через стек (данных) имеется.

?А вот такой трюк должен Форт поддерживать:
: Some ['] AAA >R BBB CCC ;
или это не обязательно для Форта?

Или, вот, типизация данных, если я ее возьму и введу в язык, например динамическую типизацию - это уже не Форт?
Сообщение Добавлено: Ср авг 10, 2022 22:24
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Если есть стек, подразумеваются и слова для оаботы с ним.
Сообщение Добавлено: Ср авг 10, 2022 14:48
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Предполагаю, что и удаление слов перестановки данных на стеке сделает Форт неполноценным по ряду свойств,
для его гибкого и эффективного использования.
Сообщение Добавлено: Ср авг 10, 2022 08:58
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Стек данных, словарь, интерпретатор/компилятор. Совсем уж строгие определения формулировать непросто, это надо сначала понять, что с таким определением впоследствии делать.
Сообщение Добавлено: Ср авг 10, 2022 00:02
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
Еще накину пару лопат на вентилятор :))

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

И еще. Форт пожирает текст из терминала/файла и т.д., а съеденный текст отправляет в словарь. Так вот словарь. Обязан ли словарь являть собой одну из разновидностей шитого кода? Или это может быть какое-то промежуточное представление, в т.ч. и на языке высокого уровня, которое на следующем этапе может быть (необязательно) скомпилировано/обработано каким-то сторонним инструментом для получения исполняемого файла/прошивки/html/midi/да чего угодно? :)
Сообщение Добавлено: Вт авг 09, 2022 20:20
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
forther писал(а):
Два стека, польская нотация и слова разделенные пробелами.
Вот согласен на 101%. Причем даже если нет доступ к стеку возвратов через r@ r> >r. И еще нотацию убрать, т.к. она подразумевается. :)
Сообщение Добавлено: Вт авг 09, 2022 20:07
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
mOleg писал(а):
forther писал(а):
Два стека

То есть, три стека уже будет не Форт?

Это был ответ на вопрос что нельзя убирать. Без того чтоб.
Сообщение Добавлено: Вт авг 09, 2022 20:06
  Заголовок сообщения:  Re: вопрос на засыпку: когда форт перестает быть фортом?  Ответить с цитатой
forther писал(а):
Два стека

То есть, три стека уже будет не Форт?
Сообщение Добавлено: Вт авг 09, 2022 19:55

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


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