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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - обсуждение (нестандарта) со срывом во флуд
Автор Сообщение
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Заболтали тему .... Про стандарты забыли :)
Сообщение Добавлено: Пн июн 24, 2013 15:24
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Хищник писал(а):
Покажите в этой задаче НКА и ДКА.
В параграфе "ПОЛУЧЕНИЕ ДКА ИЗ НКА". Правда, неожиданно? Или Вы ссылку потеряли?
[url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\3.POLESNYE%20ALGORITMY\KONETNYE%20AWTOMATY[/url]
Хищник писал(а):
Откуда Вам известно, что я написал?
<Вычеркнул. По этому поводу мы уже ругались.>
Сообщение Добавлено: Вс июн 23, 2013 18:37
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
gudleifr писал(а):
Хищник писал(а):
Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА?
А чем Вам не понравился выложенный в процессе обсуждения "градусы-минуты-секунды"? Он именно "на пальцах" и, в силу простоты самой задачи, "простейший"...

Покажите в этой задаче НКА и ДКА. Особенно меня интересует НКА. Я пока не буду объяснять, чем мне не нравится этот пример, однако Ваш ответ, мягко говоря, весьма неаккуратен и ставит вопрос так: а способны ли Вы вообще реализовать те интерпретаторы, о которых так оптимистично говорите.

gudleifr писал(а):
Любой намек на то, чего нет в том, "что написал коллега Хищник", воспринимается как подрыв устоев.

Откуда Вам известно, что я написал? :) На форуме много тем. Стандарт лично мне не нужен, но я не буду против, если он появится для кого-то еще. Только стандарт должен быть качественным - как документ, а не с точки зрения "кто там был самый активный и предложил больше всех слов".
Сообщение Добавлено: Вс июн 23, 2013 18:31
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
KPG писал(а):
А мне, вообще, не понятен "cпор"
Как всегда: что составляет сущность Forth, а без чего можно обойтись? Нет, в начале, вопрос, конечно, ставился уже, но потом - все, как обычно. Любой намек на то, чего нет в том, "что написал коллега Хищник", воспринимается как подрыв устоев.
Сообщение Добавлено: Вс июн 23, 2013 12:52
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
gudleifr писал(а):
Ваша предыдущая позиция: "Что было раньше, курица или яйцо?" - была забавнее.

Сорри. А мне, вообще, не понятен "cпор" и по какому поводу "ломаются копья".
Сообщение Добавлено: Вс июн 23, 2013 12:46
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Хищник писал(а):
Аргументы тут еще и некуда применять, сплошной ликбез
Хорошо, идите готовьтесь.
Хищник писал(а):
Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА?
А чем Вам не понравился выложенный в процессе обсуждения "градусы-минуты-секунды"? Он именно "на пальцах" и, в силу простоты самой задачи, "простейший"...
Сообщение Добавлено: Вс июн 23, 2013 12:44
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
gudleifr писал(а):
Вот и я о том же. Когда у Вас кончаются аргументы по делу, начинается бесконечное google-цитирование.

Аргументы тут еще и некуда применять, сплошной ликбез :)

Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА? Можно гуглить, но главное - своими словами, и чтобы на мои последующие глупые вопросы были даны объяснения.
Сообщение Добавлено: Вс июн 23, 2013 12:39
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Хищник писал(а):
Увы, тут Вы просто неправильно представляете себе работу процессора как цифровой микросхемы.

Хищник писал(а):
return address
Вот и я о том же. Когда у Вас кончаются аргументы по делу, начинается бесконечное google-цитирование.
(Суть мысли уловил: процессор - туп, Forth-эмулятор - туп, значит и Forth - туп).

Ваша предыдущая позиция: "Что было раньше, курица или яйцо?" - была забавнее.
Сообщение Добавлено: Вс июн 23, 2013 12:27
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Mihail писал(а):
Не понял, где а приведенном примере c = a + b забота о существовании параметров и адреса?

Я понимаю, что "знания тебя обременяют", но почитай уже что-нибудь в рамках ликбеза, двигаясь в сторону Dragon Book. Тогда ты сможешь понять, что я хотел сказать этим примером и на что обращаю внимание. А то вдруг еще не поймешь, где тут забота о старте ОС, инициализации сети и подаче питания...
Сообщение Добавлено: Вс июн 23, 2013 12:22
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
gudleifr писал(а):
Как Вы правильно заметили в первой фразе, "эта последовательность" и составляет "работающую программу" Forth.
И как правильно сказали во второй, для этого нужен стек.

Увы, тут Вы просто неправильно представляете себе работу процессора как цифровой микросхемы. Процессору для выполнения последовательности call addr1 call addr2 call addr3 нужен такой стек, который будет хранить адреса для возврата из подпрограмм (см. ниже). Этот стек адресуется в x86 регистром (E)SP и для работы с ним используются отдельные команды. Кроме того, call и ret используют этот стек просто по факту своего упоминания в программе. Но это не тот стек, который:
1) Используется в Форте для передачи параметров между словами - для этого есть стек данных (aka "просто стек"), существование которого отдельно от стека возвратов и является отличительной чертой Форта.
2) Может быть в ассортименте создан как программный объект для самых разных алгоритмов. Например, для разбора контекстно-свободной грамматики.

gudleifr писал(а):
"Адрес возврата"

return address. Это такой адрес, который при нормальной работе процессора независимо от используемого языка хранится в стеке возвратов. Стек возвратов, повторю, существует в процессорах как таковых, даже при программировании в машинных кодах.
Сообщение Добавлено: Вс июн 23, 2013 12:20
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Mihail писал(а):
Не понял...
Не тревожьтесь. "Адрес возврата", как и многие другие термины, коллега здесь упомянул для придания наукообразности своим словам. Не правда ли, с первого раза производит впечатление весомости и, даже, академичности?
Сообщение Добавлено: Вс июн 23, 2013 11:39
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
gudleifr писал(а):
Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата

Не понял, где а приведенном примере c = a + b забота о существовании параметров и адреса?
Сообщение Добавлено: Вс июн 23, 2013 11:36
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Хищник писал(а):
...
После выкидывания слов, которые Вы использовали неправильно, остается:
Хищник писал(а):
Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста.

Хищник писал(а):
А у Форта стек относится как раз к уже работающей программе.

Как Вы правильно заметили в первой фразе, "эта последовательность" и составляет "работающую программу" Forth.
И как правильно сказали во второй, для этого нужен стек.
С чем спорите?
Сообщение Добавлено: Вс июн 23, 2013 10:39
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Хищник писал(а):
Резюмируя: Вы открыли для себя процесс компиляции для грамматик, более сложных, чем регулярная. Этот компилятор может быть написан и на Форте, пользуясь его стеком как готовым инструментом. Да, стек для этого процесса нужен (хотя, afair, есть и альтернативные варианты, но это уже высший пилотаж и я не готов навскидку дать какой-то обзор). Но не отбирайте этот стек в эксклюзивное пользование :) Он нужен еще и для других вещей.

Из одного обсуждения в c.l.f.
как Форт текст можно превратить в инфикс (но вроде есть вероятность сайд эффектов в "произвольном" случае)
Код:
x 0.5 - dup * y 0.5 - dup * + 0.25 / 1 swap -

The stack at each point would be:

x
x 0.5
(x-0.5)
(x-0.5) (x-0.5)
((x-0.5)*(x-0.5))
((x-0.5)*(x-0.5)) y
((x-0.5)*(x-0.5)) y 0.5
((x-0.5)*(x-0.5)) (y-0.5)
((x-0.5)*(x-0.5)) (y-0.5) (y-0.5)
((x-0.5)*(x-0.5)) ((y-0.5)*(y-0.5))
(((x-0.5)*(x-0.5))+((y-0.5)*(y-0.5)))
(((x-0.5)*(x-0.5))+((y-0.5)*(y-0.5))) 0.25
(((((x-0.5)*(x-0.5))+((y-0.5)*(y-0.5)))/0.25)
(((((x-0.5)*(x-0.5))+((y-0.5)*(y-0.5)))/0.25) 1
1 (((((x-0.5)*(x-0.5))+((y-0.5)*(y-0.5)))/0.25)
(1-(((((x-0.5)*(x-0.5))+((y-0.5)*(y-0.5)))/0.25))

Дальнейшая "агрессивная" оптимизация "стороннего" компилятора должна "вычистить" этот код.

P.S. Классический процесс компиляции неплохо проилюстрирован в книге
"Язык Си для профессионалов" по материалам книги Г.Шилдта И.В.К. - СОФТ 1992г. (в моём в бумажном варианте)
Именно так, как и описал Хищник:)
Сообщение Добавлено: Вс июн 23, 2013 09:48
  Заголовок сообщения:  Re: обсуждение наброска стандарта  Ответить с цитатой
Ффууух! А я-то думаю, где там скачут Ваши мысли! Вы же перепутали автомат с магазинной памятью (т.е стеком), который годится для разбора языков с контекстно-свободной грамматикой, и стековую машину, работающую в рантайме. Дейкстра не родил Форт, и стек был известен еще до Мура. Просто в процессе разбора выражений языка приходится запоминать какие-то части выражения для последующей компоновки. Для разбора c = a + b последовательность операций процессора не соответствует последовательности символов. Надо как раз по-фортовски:
A @
B @
+
C !
Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста. А компилятор Си вынужден, видя c, а после него =, уже начинать что-то компоновать, потому что лексемы-то идут, а код пока создать нельзя. Ну и получается, страшно сказать, СТЕК :) Только это стек компилятора, куда заталкиваются операнды и операции, которые пока еще не могут быть скомпилированы. Это не стек программы, которую этот компилятор создает (этот стек тоже есть, и через него передаются параметры). А у Форта стек относится как раз к уже работающей программе. И через него тоже передаются параметры. Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата, поскольку параметры лежат совершенно отдельно.

Резюмируя: Вы открыли для себя процесс компиляции для грамматик, более сложных, чем регулярная. Этот компилятор может быть написан и на Форте, пользуясь его стеком как готовым инструментом. Да, стек для этого процесса нужен (хотя, afair, есть и альтернативные варианты, но это уже высший пилотаж и я не готов навскидку дать какой-то обзор). Но не отбирайте этот стек в эксклюзивное пользование :) Он нужен еще и для других вещей.
Сообщение Добавлено: Вс июн 23, 2013 00:50

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


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