Автор |
Сообщение |
|
|
Заголовок сообщения: |
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] Хищник писал(а): Откуда Вам известно, что я написал? <Вычеркнул. По этому поводу мы уже ругались.>
[quote="Хищник"]Покажите в этой задаче НКА и ДКА.[/quote]В параграфе "ПОЛУЧЕНИЕ ДКА ИЗ НКА". Правда, неожиданно? Или Вы ссылку потеряли? [url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\3.POLESNYE%20ALGORITMY\KONETNYE%20AWTOMATY[/url] [quote="Хищник"]Откуда Вам известно, что я написал?[/quote]<Вычеркнул. По этому поводу мы уже ругались.>
|
|
|
|
Добавлено: Вс июн 23, 2013 18:37 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
gudleifr писал(а): Хищник писал(а): Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА? А чем Вам не понравился выложенный в процессе обсуждения "градусы-минуты-секунды"? Он именно "на пальцах" и, в силу простоты самой задачи, "простейший"... Покажите в этой задаче НКА и ДКА. Особенно меня интересует НКА. Я пока не буду объяснять, чем мне не нравится этот пример, однако Ваш ответ, мягко говоря, весьма неаккуратен и ставит вопрос так: а способны ли Вы вообще реализовать те интерпретаторы, о которых так оптимистично говорите. gudleifr писал(а): Любой намек на то, чего нет в том, "что написал коллега Хищник", воспринимается как подрыв устоев. Откуда Вам известно, что я написал? На форуме много тем. Стандарт лично мне не нужен, но я не буду против, если он появится для кого-то еще. Только стандарт должен быть качественным - как документ, а не с точки зрения "кто там был самый активный и предложил больше всех слов".
[quote="gudleifr"]Хищник писал(а): Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА? А чем Вам не понравился выложенный в процессе обсуждения "градусы-минуты-секунды"? Он именно "на пальцах" и, в силу простоты самой задачи, "простейший"...[/quote] Покажите в этой задаче НКА и ДКА. Особенно меня интересует НКА. Я пока не буду объяснять, чем мне не нравится этот пример, однако Ваш ответ, мягко говоря, весьма неаккуратен и ставит вопрос так: а способны ли Вы вообще реализовать те интерпретаторы, о которых так оптимистично говорите.
[quote="gudleifr"]Любой намек на то, чего нет в том, "что написал коллега Хищник", воспринимается как подрыв устоев.[/quote] Откуда Вам известно, что я написал? :) На форуме много тем. Стандарт лично мне не нужен, но я не буду против, если он появится для кого-то еще. Только стандарт должен быть качественным - как документ, а не с точки зрения "кто там был самый активный и предложил больше всех слов".
|
|
|
|
Добавлено: Вс июн 23, 2013 18:31 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
KPG писал(а): А мне, вообще, не понятен "cпор" Как всегда: что составляет сущность Forth, а без чего можно обойтись? Нет, в начале, вопрос, конечно, ставился уже, но потом - все, как обычно. Любой намек на то, чего нет в том, "что написал коллега Хищник", воспринимается как подрыв устоев.
[quote="KPG"]А мне, вообще, не понятен "cпор"[/quote]Как всегда: что составляет сущность Forth, а без чего можно обойтись? Нет, в начале, вопрос, конечно, ставился уже, но потом - все, как обычно. Любой намек на то, чего нет в том, "что написал коллега [b]Хищник[/b]", воспринимается как подрыв устоев.
|
|
|
|
Добавлено: Вс июн 23, 2013 12:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
gudleifr писал(а): Ваша предыдущая позиция: "Что было раньше, курица или яйцо?" - была забавнее. Сорри. А мне, вообще, не понятен "cпор" и по какому поводу "ломаются копья".
[quote="gudleifr"] Ваша предыдущая позиция: "Что было раньше, курица или яйцо?" - была забавнее.[/quote] Сорри. А мне, вообще, не понятен "cпор" и по какому поводу "ломаются копья".
|
|
|
|
Добавлено: Вс июн 23, 2013 12:46 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
Хищник писал(а): Аргументы тут еще и некуда применять, сплошной ликбез Хорошо, идите готовьтесь. Хищник писал(а): Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА? А чем Вам не понравился выложенный в процессе обсуждения "градусы-минуты-секунды"? Он именно "на пальцах" и, в силу простоты самой задачи, "простейший"...
[quote="Хищник"]Аргументы тут еще и некуда применять, сплошной ликбез[/quote]Хорошо, идите готовьтесь. [quote="Хищник"]Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА?[/quote]А чем Вам не понравился выложенный в процессе обсуждения "градусы-минуты-секунды"? Он именно "на пальцах" и, в силу простоты самой задачи, "простейший"...
|
|
|
|
Добавлено: Вс июн 23, 2013 12:44 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
gudleifr писал(а): Вот и я о том же. Когда у Вас кончаются аргументы по делу, начинается бесконечное google-цитирование. Аргументы тут еще и некуда применять, сплошной ликбез Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА? Можно гуглить, но главное - своими словами, и чтобы на мои последующие глупые вопросы были даны объяснения.
[quote="gudleifr"]Вот и я о том же. Когда у Вас кончаются аргументы по делу, начинается бесконечное google-цитирование.[/quote] Аргументы тут еще и некуда применять, сплошной ликбез :)
Кстати, Вас не затруднит продемонстрировать на пальцах простейший пример преобразования НКА в ДКА? Можно гуглить, но главное - своими словами, и чтобы на мои последующие глупые вопросы были даны объяснения.
|
|
|
|
Добавлено: Вс июн 23, 2013 12:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
Хищник писал(а): Увы, тут Вы просто неправильно представляете себе работу процессора как цифровой микросхемы. Хищник писал(а): return address Вот и я о том же. Когда у Вас кончаются аргументы по делу, начинается бесконечное google-цитирование. (Суть мысли уловил: процессор - туп, Forth-эмулятор - туп, значит и Forth - туп). Ваша предыдущая позиция: "Что было раньше, курица или яйцо?" - была забавнее.
[quote="Хищник"]Увы, тут Вы просто неправильно представляете себе работу процессора как цифровой микросхемы.[/quote] [quote="Хищник"]return address[/quote]Вот и я о том же. Когда у Вас кончаются аргументы по делу, начинается бесконечное google-цитирование. (Суть мысли уловил: процессор - туп, Forth-эмулятор - туп, значит и Forth - туп).
Ваша предыдущая позиция: "Что было раньше, курица или яйцо?" - была забавнее.
|
|
|
|
Добавлено: Вс июн 23, 2013 12:27 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
Mihail писал(а): Не понял, где а приведенном примере c = a + b забота о существовании параметров и адреса? Я понимаю, что "знания тебя обременяют", но почитай уже что-нибудь в рамках ликбеза, двигаясь в сторону Dragon Book. Тогда ты сможешь понять, что я хотел сказать этим примером и на что обращаю внимание. А то вдруг еще не поймешь, где тут забота о старте ОС, инициализации сети и подаче питания...
[quote="Mihail"]Не понял, где а приведенном примере c = a + b забота о существовании параметров и адреса?[/quote] Я понимаю, что "знания тебя обременяют", но почитай уже что-нибудь в рамках ликбеза, двигаясь в сторону 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. Это такой адрес, который при нормальной работе процессора независимо от используемого языка хранится в стеке возвратов. Стек возвратов, повторю, существует в процессорах как таковых, даже при программировании в машинных кодах.
[quote="gudleifr"]Как Вы правильно заметили в первой фразе, "эта последовательность" и составляет "работающую программу" Forth. И как правильно сказали во второй, для этого нужен стек.[/quote] Увы, тут Вы просто неправильно представляете себе работу процессора как цифровой микросхемы. Процессору для выполнения последовательности call addr1 call addr2 call addr3 нужен такой стек, который будет хранить адреса для возврата из подпрограмм (см. ниже). Этот стек адресуется в x86 регистром (E)SP и для работы с ним используются отдельные команды. Кроме того, call и ret используют этот стек просто по факту своего упоминания в программе. Но это не тот стек, который: 1) Используется в Форте для передачи параметров между словами - для этого есть стек данных (aka "просто стек"), существование которого отдельно от стека возвратов и является отличительной чертой Форта. 2) Может быть в ассортименте создан как программный объект для самых разных алгоритмов. Например, для разбора контекстно-свободной грамматики.
[quote="gudleifr"]"Адрес возврата"[/quote] return address. Это такой адрес, который при нормальной работе процессора независимо от используемого языка хранится в стеке возвратов. Стек возвратов, повторю, существует в процессорах как таковых, даже при программировании в машинных кодах.
|
|
|
|
Добавлено: Вс июн 23, 2013 12:20 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
Mihail писал(а): Не понял... Не тревожьтесь. "Адрес возврата", как и многие другие термины, коллега здесь упомянул для придания наукообразности своим словам. Не правда ли, с первого раза производит впечатление весомости и, даже, академичности?
[quote="Mihail"]Не понял...[/quote]Не тревожьтесь. "Адрес возврата", как и многие другие термины, коллега здесь упомянул для придания наукообразности своим словам. Не правда ли, с первого раза производит впечатление весомости и, даже, академичности?
|
|
|
|
Добавлено: Вс июн 23, 2013 11:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
gudleifr писал(а): Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата Не понял, где а приведенном примере c = a + b забота о существовании параметров и адреса?
[quote="gudleifr"]Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата[/quote] Не понял, где а приведенном примере c = a + b забота о существовании параметров и адреса?
|
|
|
|
Добавлено: Вс июн 23, 2013 11:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
Хищник писал(а): ... После выкидывания слов, которые Вы использовали неправильно, остается: Хищник писал(а): Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста. Хищник писал(а): А у Форта стек относится как раз к уже работающей программе. Как Вы правильно заметили в первой фразе, "эта последовательность" и составляет "работающую программу" Forth. И как правильно сказали во второй, для этого нужен стек. С чем спорите?
[quote="Хищник"]...[/quote]После выкидывания слов, которые Вы использовали неправильно, остается: [quote="Хищник"]Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста.[/quote] [quote="Хищник"]А у Форта стек относится как раз к уже работающей программе.[/quote] Как Вы правильно заметили в первой фразе, "эта последовательность" и составляет "работающую программу" 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г. (в моём в бумажном варианте) Именно так, как и описал Хищник:)
[quote="Хищник"] Резюмируя: Вы открыли для себя процесс компиляции для грамматик, более сложных, чем регулярная. Этот компилятор может быть написан и на Форте, пользуясь его стеком как готовым инструментом. Да, стек для этого процесса нужен (хотя, afair, есть и альтернативные варианты, но это уже высший пилотаж и я не готов навскидку дать какой-то обзор). Но не отбирайте этот стек в эксклюзивное пользование :) Он нужен еще и для других вещей.[/quote] Из одного обсуждения в c.l.f. как Форт текст можно превратить в инфикс (но вроде есть вероятность сайд эффектов в "произвольном" случае) [code] 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)) [/code] Дальнейшая "агрессивная" оптимизация "стороннего" компилятора должна "вычистить" этот код.
P.S. Классический процесс компиляции неплохо проилюстрирован в книге "Язык Си для профессионалов" по материалам книги Г.Шилдта И.В.К. - СОФТ 1992г. (в моём в бумажном варианте) Именно так, как и описал Хищник:)
|
|
|
|
Добавлено: Вс июн 23, 2013 09:48 |
|
|
|
|
|
Заголовок сообщения: |
Re: обсуждение наброска стандарта |
|
|
Ффууух! А я-то думаю, где там скачут Ваши мысли! Вы же перепутали автомат с магазинной памятью (т.е стеком), который годится для разбора языков с контекстно-свободной грамматикой, и стековую машину, работающую в рантайме. Дейкстра не родил Форт, и стек был известен еще до Мура. Просто в процессе разбора выражений языка приходится запоминать какие-то части выражения для последующей компоновки. Для разбора c = a + b последовательность операций процессора не соответствует последовательности символов. Надо как раз по-фортовски: A @ B @ + C ! Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста. А компилятор Си вынужден, видя c, а после него =, уже начинать что-то компоновать, потому что лексемы-то идут, а код пока создать нельзя. Ну и получается, страшно сказать, СТЕК Только это стек компилятора, куда заталкиваются операнды и операции, которые пока еще не могут быть скомпилированы. Это не стек программы, которую этот компилятор создает (этот стек тоже есть, и через него передаются параметры). А у Форта стек относится как раз к уже работающей программе. И через него тоже передаются параметры. Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата, поскольку параметры лежат совершенно отдельно. Резюмируя: Вы открыли для себя процесс компиляции для грамматик, более сложных, чем регулярная. Этот компилятор может быть написан и на Форте, пользуясь его стеком как готовым инструментом. Да, стек для этого процесса нужен (хотя, afair, есть и альтернативные варианты, но это уже высший пилотаж и я не готов навскидку дать какой-то обзор). Но не отбирайте этот стек в эксклюзивное пользование Он нужен еще и для других вещей.
Ффууух! А я-то думаю, где там скачут Ваши мысли! Вы же перепутали автомат с магазинной памятью (т.е стеком), который годится для разбора языков с контекстно-свободной грамматикой, и стековую машину, работающую в рантайме. Дейкстра не родил Форт, и стек был известен еще до Мура. Просто в процессе разбора выражений языка приходится запоминать какие-то части выражения для последующей компоновки. Для разбора c = a + b последовательность операций процессора не соответствует последовательности символов. Надо как раз по-фортовски: A @ B @ + C ! Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста. А компилятор Си вынужден, видя c, а после него =, уже начинать что-то компоновать, потому что лексемы-то идут, а код пока создать нельзя. Ну и получается, страшно сказать, СТЕК :) Только это стек компилятора, куда заталкиваются операнды и операции, которые пока еще не могут быть скомпилированы. Это не стек программы, которую этот компилятор создает (этот стек тоже есть, и через него передаются параметры). А у Форта стек относится как раз к уже работающей программе. И через него тоже передаются параметры. Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата, поскольку параметры лежат совершенно отдельно.
Резюмируя: Вы открыли для себя процесс компиляции для грамматик, более сложных, чем регулярная. Этот компилятор может быть написан и на Форте, пользуясь его стеком как готовым инструментом. Да, стек для этого процесса нужен (хотя, afair, есть и альтернативные варианты, но это уже высший пилотаж и я не готов навскидку дать какой-то обзор). Но не отбирайте этот стек в эксклюзивное пользование :) Он нужен еще и для других вещей.
|
|
|
|
Добавлено: Вс июн 23, 2013 00:50 |
|
|
|
|