Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
KPG писал(а): Может где и есть создание словом своей словарной статьи (может в SP-Fork?). Вы запутались "в двух словах": слово является словом (обладает семантикой слова) независимо от того, создает ли оно другие слова. KPG писал(а): Предлагаю вместо "место" и "области" для сближения взаимопонимания слово маркёр или указатель Зачем? И "место" и "область" в языке ассеблера - термины вполне устоявшиеся. А вот "переменной" там более привычно называть "переменную периода компиляции".
[quote="KPG"]Может где и есть создание словом своей словарной статьи (может в SP-Fork?).[/quote]Вы запутались "в двух словах": слово является словом (обладает семантикой слова) независимо от того, создает ли оно другие слова. [quote="KPG"]Предлагаю вместо "место" и "области" для сближения взаимопонимания слово маркёр или указатель[/quote]Зачем? И "место" и "область" в языке ассеблера - термины вполне устоявшиеся. А вот "переменной" там более привычно называть "переменную периода компиляции".
|
|
|
|
Добавлено: Пн июл 14, 2014 17:06 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
С нетерпением жду когда начнётся раздача слонов gudleifr писал(а): Хищник писал(а): Имя слова - это не семантика Т.е. Вы не в курсе, что куски кода в FORTH могут быть не только словами? А, раз, так, то утверждение ""собака" есть слово/словарная статья" имеет смысл, значит, является семантическим. Кстати, заглянул в стандарт, оказывается, забыл упомянуть, что в семантику "собаки" входит еще чувствительность к выравниванию. А каким боком в существующих Форт системах @ ("собака") создаёт СВОЮ словарную статью, чтобы это было включено в семантику (поведение) слова во время "трансляции-компиляции,исполнения"). Может где и есть создание словом своей словарной статьи (может в SP-Fork?). Поэтому попытка дополнить семантику данного слова ещё чем то не совсем корректны. Извлечение значения ячейки по адресу трудно понять ещё как то иначе. P.S. Предлагаю вместо "место" и "области" для сближения взаимопонимания слово маркёр или указатель @ "Маразм крепчал и косил наши ряды"
С нетерпением жду когда начнётся раздача слонов :lol: [quote="gudleifr"] [quote="Хищник"]Имя слова - это не семантика[/quote]Т.е. Вы не в курсе, что куски кода в FORTH могут быть не только словами? А, раз, так, то утверждение ""собака" есть слово/словарная статья" имеет смысл, значит, является семантическим. Кстати, заглянул в стандарт, оказывается, забыл упомянуть, что в семантику "собаки" входит еще чувствительность к выравниванию. [/quote] А каким боком в существующих Форт системах @ ("собака") создаёт СВОЮ словарную статью, чтобы это было включено в семантику (поведение) слова во время "трансляции-компиляции,исполнения"). Может где и есть создание словом своей словарной статьи (может в SP-Fork?). Поэтому попытка дополнить семантику данного слова ещё чем то не совсем корректны. Извлечение значения ячейки по адресу трудно понять ещё как то иначе.
P.S. Предлагаю вместо "место" и "области" для сближения взаимопонимания слово маркёр или указатель :D @ "Маразм крепчал и косил наши ряды"
|
|
|
|
Добавлено: Пн июл 14, 2014 16:56 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
Хищник писал(а): Место в памяти - это языковой объект? Правильнее "Область памяти". "Место" - это, скорее, размер, а не позиция. Хищник писал(а): Я вообще не оперирую понятиями "A-определение", "P-определение" и т.д. Поэтому и не можете понять, о чем речь. Хищник писал(а): Имя слова - это не семантика Т.е. Вы не в курсе, что куски кода в FORTH могут быть не только словами? А, раз, так, то утверждение ""собака" есть слово/словарная статья" имеет смысл, значит, является семантическим. Кстати, заглянул в стандарт, оказывается, забыл упомянуть, что в семантику "собаки" входит еще чувствительность к выравниванию. Хищник писал(а): Это определение по ГОСТ. Это ГОСТ на FORTH? Повторяю, я прошу привести F-определение, а не определения "для языков высокого уровня". Да откройте хотя бы SF!
[quote="Хищник"]Место в памяти - это языковой объект?[/quote]Правильнее "Область памяти". "Место" - это, скорее, размер, а не позиция. [quote="Хищник"]Я вообще не оперирую понятиями "A-определение", "P-определение" и т.д.[/quote]Поэтому и не можете понять, о чем речь. [quote="Хищник"]Имя слова - это не семантика[/quote]Т.е. Вы не в курсе, что куски кода в FORTH могут быть не только словами? А, раз, так, то утверждение ""собака" есть слово/словарная статья" имеет смысл, значит, является семантическим. Кстати, заглянул в стандарт, оказывается, забыл упомянуть, что в семантику "собаки" входит еще чувствительность к выравниванию. [quote="Хищник"]Это определение по ГОСТ. [/quote]Это ГОСТ на FORTH? Повторяю, я прошу привести F-определение, а не определения "для языков высокого уровня". Да откройте хотя бы SF!
|
|
|
|
Добавлено: Пн июл 14, 2014 15:53 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
gudleifr писал(а): То есть Вы опять делаете ту же ошибку (как и автор книги "для чайников") - подменяете A-определение P-определением. Автор, разумеется, делает так намеренно - так "чайникам" понятнее. Ваша - тоже очевидна: зациклившись на втюханной Вам разработчиками паре A-F, Вы вынуждены подбирать P искусственно, "по месту", поэтому некоторая размытость понятий неизбежна. Я вообще не оперирую понятиями "A-определение", "P-определение" и т.д. Переменная - это языковой объект, который может принимать различные значения. Место в памяти - это языковой объект? gudleifr писал(а): Пока Вы не объясните, почему считаете приведенные кодовые довески "несемантическими" Да по определению Имя слова - это не семантика, поэтому апелляции к форме закорючки @ не к месту. gudleifr писал(а): Хищник писал(а): Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке. FORTH - язык высокого уровня? Вы привели P-определение. Вы, уважаемый, когда бросаетесь спорить, хотя бы проверяйте, что Вам подсовывают Это определение по ГОСТ. Любой разработчик имеет полное право оставаться в его рамках в процессе диалога и свободного поиска, а уж в процессе работы он попросту обязан оставаться в этих рамках. Поэтому попробуйте показать, что Ваши изыскания, по крайней мере, не противоречат этому определению. А когда оно будет не противоречить, займемся выяснением вопроса, зачем такое надо, и почему, к примеру, не надо наряду с этим придумывать термин "транклюкация" и "Зю-определение".
[quote="gudleifr"]То есть Вы опять делаете ту же ошибку (как и автор книги "для чайников") - подменяете A-определение P-определением. Автор, разумеется, делает так намеренно - так "чайникам" понятнее. Ваша - тоже очевидна: зациклившись на втюханной Вам разработчиками паре A-F, Вы вынуждены подбирать P искусственно, "по месту", поэтому некоторая размытость понятий неизбежна.[/quote] Я вообще не оперирую понятиями "A-определение", "P-определение" и т.д. Переменная - это языковой объект, который может принимать различные значения. Место в памяти - это языковой объект? [quote="gudleifr"]Пока Вы не объясните, почему считаете приведенные кодовые довески "несемантическими"[/quote] Да по определению :) Имя слова - это не семантика, поэтому апелляции к форме закорючки @ не к месту. [quote="gudleifr"]Хищник писал(а): Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке. FORTH - язык высокого уровня? Вы привели P-определение.[/quote] Вы, уважаемый, когда бросаетесь спорить, хотя бы проверяйте, что Вам подсовывают :) Это определение по ГОСТ. Любой разработчик имеет полное право оставаться в его рамках в процессе диалога и свободного поиска, а уж в процессе работы он попросту обязан оставаться в этих рамках. Поэтому попробуйте показать, что Ваши изыскания, по крайней мере, не противоречат этому определению. А когда оно будет не противоречить, займемся выяснением вопроса, зачем такое надо, и почему, к примеру, не надо наряду с этим придумывать термин "транклюкация" и "Зю-определение".
|
|
|
|
Добавлено: Пн июл 14, 2014 15:41 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
Хищник писал(а): Вот одна из первых ссылок Ох, уж эти сказочники. Первоисточник (Брэдли): Цитата: В программах на языке ассемблера оператор DB применяют для определения областей памяти. В предыдущих примерах мы размещали в памяти определенные значения. Это может быть поисковая таблица или информация для перекодировки чисел. Мы составим несколько примеров, в которых используется определенная подобным образом информация. Кроме того встречаются ситуации, когда программе требуется место в памяти для сохранения данных в процессе исполнения. Во время ассемблирования программы содержимое этого участка памяти неизвестно: собственно, это содержимое будет переменным во время исполнения программы. То есть Вы опять делаете ту же ошибку (как и автор книги "для чайников") - подменяете A-определение P-определением. Автор, разумеется, делает так намеренно - так "чайникам" понятнее. Ваша - тоже очевидна: зациклившись на втюханной Вам разработчиками паре A-F, Вы вынуждены подбирать P искусственно, "по месту", поэтому некоторая размытость понятий неизбежна. Хищник писал(а): Придумайте что-то другое. Зачем? Пока Вы не объясните, почему считаете приведенные кодовые довески "несемантическими" - я буду считать "детсадовским поведением" Ваше. Хищник писал(а): Бессмысленна же фраза "на Форте все можно сделать" Я ее не употреблял. Хищник писал(а): Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке. FORTH - язык высокого уровня? Вы привели P-определение.
[quote="Хищник"]Вот одна из первых ссылок[/quote]Ох, уж эти сказочники. Первоисточник (Брэдли): [quote]В программах на языке ассемблера оператор DB применяют для определения областей памяти. В предыдущих примерах мы размещали в памяти определенные значения. Это может быть поисковая таблица или информация для перекодировки чисел. Мы составим несколько примеров, в которых используется определенная подобным образом информация. Кроме того встречаются ситуации, когда программе требуется место в памяти для сохранения данных в процессе исполнения. Во время ассемблирования программы содержимое этого участка памяти неизвестно: собственно, это содержимое будет переменным во время исполнения программы.[/quote] То есть Вы опять делаете ту же ошибку (как и автор книги "для чайников") - подменяете A-определение P-определением. Автор, разумеется, делает так намеренно - так "чайникам" понятнее. Ваша - тоже очевидна: зациклившись на втюханной Вам разработчиками паре A-F, Вы вынуждены подбирать P искусственно, "по месту", поэтому некоторая размытость понятий неизбежна. [quote="Хищник"]Придумайте что-то другое.[/quote]Зачем? Пока Вы не объясните, почему считаете приведенные кодовые довески "несемантическими" - я буду считать "детсадовским поведением" Ваше. [quote="Хищник"]Бессмысленна же фраза "на Форте все можно сделать"[/quote]Я ее не употреблял. [quote="Хищник"]Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке.[/quote]FORTH - язык высокого уровня? Вы привели P-определение.
|
|
|
|
Добавлено: Пн июл 14, 2014 14:49 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
gudleifr писал(а): Все-таки "X dd ?". И к переменным само по себе никогда не относилось. Спросите ассемблерщиков. А, ну да, в *asm это X dd ? Я по инерции написал сначала "создающее" dd. Я, правда, не знаю, каких "ассемблерщиков" надо спрашивать, если и так есть масса примеров, которые разъясняют, как объявить переменную в ассемблере. Вот одна из первых ссылок http://sadda.ru/pages/assembler-masm32/data/data.htm Пример объявления переменных в программе для MASM32 - сегмент .data: Код: .data
; --------------------------------------------------------------------------------- ; объявление и инициализация переменных типа byte (db) ; ---------------------------------------------------------------------------------
a byte ? ; переменная a без начального значения (неинициализированная) b byte 0 ; переменная b с начальным значением 0
abc byte 35 ; переменная abc с начальным значением 35 a1b2 db "#" ; переменная a1b2 с начальным значением 35 Я пока не вижу смысла в устранении этого термина, пусть даже и наличествуют какие-то соображения, заставляющие это сделать. Переменная - настолько фундаментальное понятие, что выбивать такую основу из-под программиста означает практически гарантированно похоронить весь рабочий процесс. gudleifr писал(а): Семантически: "во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных"". Если Вы собираетесь вести себя на уровне детского сада, то это не ко мне. Придумайте что-то другое. Я Вам уточнил, что имею в виду, будьте любезны и Вы уточнить, как и почему "оборачивание в слово" влияет на факт наличия в Форте команды "доступ к памяти по ее адресу". gudleifr писал(а): Это тоже бессмысленная фраза. Что значит "рассмотрены в Форте"? Описаны в стандарте? Упомянуты у классиков? А понимайте как нравится. Согласно тем правилам из области нечетких множеств, которые вызывают желание их соблюдать. Хоть стандарт, хоть классики, хоть авангардисты. Раз у Форта конечное (мало того, еще и небольшое) множество опубликованных материалов, то и рассмотреть там все подряд попросту невозможно. Бессмысленна же фраза "на Форте все можно сделать", поскольку никакой новой информации она не несет. Уже давно избитым ответом является отсылка к Тьюринг-полноте. Продемонстрируйте программу, которая делает ВСЕ! Не можете? Ну тогда спокойненько возвращаемся на рабочее место и начинаем решать конкретную текущую задачу. Она может подходить под Форт плохо, хорошо, не очень хорошо, и вообще как угодно. gudleifr писал(а): В студию! Только не надо подменять F-определение A- или P-определениями. Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке.
[quote="gudleifr"]Все-таки "X dd ?". И к переменным само по себе никогда не относилось. Спросите ассемблерщиков.[/quote] А, ну да, в *asm это X dd ? Я по инерции написал сначала "создающее" dd. Я, правда, не знаю, каких "ассемблерщиков" надо спрашивать, если и так есть масса примеров, которые разъясняют, как объявить переменную в ассемблере.
Вот одна из первых ссылок [url]http://sadda.ru/pages/assembler-masm32/data/data.htm[/url]
Пример объявления переменных в программе для MASM32 - сегмент .data:
[code] .data
; --------------------------------------------------------------------------------- ; объявление и инициализация переменных типа byte (db) ; ---------------------------------------------------------------------------------
a byte ? ; переменная a без начального значения (неинициализированная) b byte 0 ; переменная b с начальным значением 0
abc byte 35 ; переменная abc с начальным значением 35 a1b2 db "#" ; переменная a1b2 с начальным значением 35[/code]
Я пока не вижу смысла в устранении этого термина, пусть даже и наличествуют какие-то соображения, заставляющие это сделать. Переменная - настолько фундаментальное понятие, что выбивать такую основу из-под программиста означает практически гарантированно похоронить весь рабочий процесс. [quote="gudleifr"]Семантически: "во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных"".[/quote] Если Вы собираетесь вести себя на уровне детского сада, то это не ко мне. Придумайте что-то другое. Я Вам уточнил, что имею в виду, будьте любезны и Вы уточнить, как и почему "оборачивание в слово" влияет на факт наличия в Форте команды "доступ к памяти по ее адресу". [quote="gudleifr"]Это тоже бессмысленная фраза. Что значит "рассмотрены в Форте"? Описаны в стандарте? Упомянуты у классиков?[/quote] А понимайте как нравится. Согласно тем правилам из области нечетких множеств, которые вызывают желание их соблюдать. Хоть стандарт, хоть классики, хоть авангардисты. Раз у Форта конечное (мало того, еще и небольшое) множество опубликованных материалов, то и рассмотреть там все подряд попросту невозможно. Бессмысленна же фраза "на Форте все можно сделать", поскольку никакой новой информации она не несет. Уже давно избитым ответом является отсылка к Тьюринг-полноте. Продемонстрируйте программу, которая делает ВСЕ! Не можете? Ну тогда спокойненько возвращаемся на рабочее место и начинаем решать конкретную текущую задачу. Она может подходить под Форт плохо, хорошо, не очень хорошо, и вообще как угодно. [quote="gudleifr"]В студию! Только не надо подменять F-определение A- или P-определениями.[/quote] Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке.
|
|
|
|
Добавлено: Пн июл 14, 2014 14:27 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
Хищник писал(а): dd X ? Все-таки "X dd ?". И к переменным само по себе никогда не относилось. Спросите ассемблерщиков. Хищник писал(а): Я не случайно подчеркнул, что семантически под этими словами ничего нет Семантически: "во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных"". Хищник писал(а): Разница между командой и данными схемотехническая, она видна разработчику, явно выражена и не может быть проигнорирована исходя из здравого смысла (иначе не получится проектировать процессор). Это опять смешивание терминологии A и F. Хищник писал(а): Любые разумные в Форте не рассмотрены, рассмотрены вполне определенные. Это тоже бессмысленная фраза. Что значит "рассмотрены в Форте"? Описаны в стандарте? Упомянуты у классиков? Хищник писал(а): Пока у меня есть претензии к постановке задачи и формулируемых утверждениях. ... У термина "компиляция" есть общепринятое определение. В студию! Только не надо подменять F-определение A- или P-определениями.
[quote="Хищник"]dd X ?[/quote]Все-таки "X dd ?". И к переменным само по себе никогда не относилось. Спросите ассемблерщиков. [quote="Хищник"]Я не случайно подчеркнул, что семантически под этими словами ничего нет[/quote]Семантически: "во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных"". [quote="Хищник"]Разница между командой и данными схемотехническая, она видна разработчику, явно выражена и не может быть проигнорирована исходя из здравого смысла (иначе не получится проектировать процессор).[/quote]Это опять смешивание терминологии A и F. [quote="Хищник"]Любые разумные в Форте не рассмотрены, рассмотрены вполне определенные.[/quote]Это тоже бессмысленная фраза. Что значит "рассмотрены в Форте"? Описаны в стандарте? Упомянуты у классиков? [quote="Хищник"]Пока у меня есть претензии к постановке задачи и формулируемых утверждениях. ... У термина "компиляция" есть общепринятое определение.[/quote]В студию! Только не надо подменять F-определение A- или P-определениями.
|
|
|
|
Добавлено: Пн июл 14, 2014 13:22 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
gudleifr писал(а): На уровне языка ассемблера и никто из пишущих на языке ассемблера. Далее Вас, пардон, понесло. Фраза "переменная Х хранится в ячейке 5" сродни "хандлер окна хранится в ячейке 7" и "количество розовых слонов - в ячейке CRAZY". По сути, подобные слова относятся к "компиляции" на язык ассемблера с языка постановки задачи. К языку ассемблера и, тем более, процессора ни "переменные", ни "розовые слоны" никакого отношения иметь не могут. dd X ? Теперь переменная X хранится в ячейке 5 (хотя кто ж знает, какой там адрес будет выделен, но это и неважно). dd хандлер окна ? dd количество розовых слонов ? Тут явно ошибки. В существующих реализациях ассемблера широко используется резервирование памяти с присвоением этому куску какого-то имени. Это переменная. Обращаемся к любой поисковой системе и смотрим выдачу на запрос "переменная ассемблер". Масса материалов, причем очень много из руководств, учебников и примеров. В чем смысл переиначивания имеющегося? gudleifr писал(а): Это фраза (как и следующие за ней) не имеющая смысла в контексте темы. Тем более, что методы построения проблемно-ориентированного языка и/или полного доступа к железу позволяют эффективно работать с ЛЮБЫМИ разумными, а не только с перечисленными, технологиями. Был вопрос про Форт - я ответил. Любые разумные в Форте не рассмотрены, рассмотрены вполне определенные. Адреналиновая накачка мантрой "Форт может все" не приводит к каким-то практическим результатам, под адреналином человек не пишет код, а фантазирует, а когда адреналин кончается, ему уже неинтересно писать код. gudleifr писал(а): Это неправда: во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных". Вам знакомо понятие "семантика"? Я не случайно подчеркнул, что семантически под этими словами ничего нет, потому что они соответствуют базовым командам процессора. Имя операции - это ее синтаксис, выполняемое действие - семантика. Действие "доступ к памяти по адресу" невозможно выразить на более низком уровне, его просто нет. gudleifr писал(а): Хищник писал(а): Есть термин threaded code... Значит, все-таки, предлагаете "шитые данные"?! Или, даже просто отказываетесь от слова "код"? Ведь "команда" просто подается на шину процессора (как данные) и тупо дешифрируется в последовательность микрокодов (как адрес) или даже просто идет на вход логике (опять как данные)... Не фантазируйте, микроэлектроника все равно не пойдет у Вас на поводу ради мелкой коррекции терминологии Разница между командой и данными схемотехническая, она видна разработчику, явно выражена и не может быть проигнорирована исходя из здравого смысла (иначе не получится проектировать процессор). gudleifr писал(а): Я понял Ваши претензии так: Я рассматриваю FORTH, как звено в цепочке А (язык машины) - F (FORTH)- P (проблемно-орентированный язык). Вы ограничиваетесь подцепочкой A - F, пытаясь создать какую-то с одной стороны "общепринятую", с другой - "эффективную" пару (FORTH-машину). Поэтому, Вы очевидно заинтересованы во взаимопроникновении терминологии A и F. Я же (ратуя за универсальность F) принимаю как данность, что терминологии A, F и P могут не пересекаться. Вообще. Я еще ни слова не сказал о своем понимании вопроса. Пока у меня есть претензии к постановке задачи и формулируемых утверждениях. Есть универсальные вопросы, которыми предваряется любое исследование. Какие проблемы сейчас имеются? Кому и чем они мешают? Что улучшится, если их решить? Только потом начинается изложение своего решения. Иначе получается чайник Рассела, который где-то летает, но никому не интересен. Его можно сколько угодно изучать, но практических следствий от этого изучения никаких. gudleifr писал(а): Если для Вас "компиляция" - процесс перевода с F на A, то для меня "компиляция" - перенос информации со СТЕКА в СЛОВАРЬ (т.е. внутренне дело F). У термина "компиляция" есть общепринятое определение. Замена этого определения - см. выше. Кому нужно, зачем, чем мешает и что станет лучше, если заменить. Определение компиляции никак не затрагивает алгоритмы, с помощью которых она выполняется. Из стека в словарь? Пожалуйста. Основное определение тут совершенно ни при чем.
[quote="gudleifr"]На уровне языка ассемблера и никто из пишущих на языке ассемблера. Далее Вас, пардон, понесло. Фраза "переменная Х хранится в ячейке 5" сродни "хандлер окна хранится в ячейке 7" и "количество розовых слонов - в ячейке CRAZY". По сути, подобные слова относятся к "компиляции" на язык ассемблера с языка постановки задачи. К языку ассемблера и, тем более, процессора ни "переменные", ни "розовые слоны" никакого отношения иметь не могут.[/quote]
dd X ?
Теперь переменная X хранится в ячейке 5 (хотя кто ж знает, какой там адрес будет выделен, но это и неважно).
dd хандлер окна ? dd количество розовых слонов ?
Тут явно ошибки.
В существующих реализациях ассемблера широко используется резервирование памяти с присвоением этому куску какого-то имени. Это переменная. Обращаемся к любой поисковой системе и смотрим выдачу на запрос "переменная ассемблер". Масса материалов, причем очень много из руководств, учебников и примеров. В чем смысл переиначивания имеющегося?
[quote="gudleifr"]Это фраза (как и следующие за ней) не имеющая смысла в контексте темы. Тем более, что методы построения проблемно-ориентированного языка и/или полного доступа к железу позволяют эффективно работать с ЛЮБЫМИ разумными, а не только с перечисленными, технологиями.[/quote]
Был вопрос про Форт - я ответил. Любые разумные в Форте не рассмотрены, рассмотрены вполне определенные. Адреналиновая накачка мантрой "Форт может все" не приводит к каким-то практическим результатам, под адреналином человек не пишет код, а фантазирует, а когда адреналин кончается, ему уже неинтересно писать код. [quote="gudleifr"]Это неправда: во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных".[/quote] Вам знакомо понятие "семантика"? Я не случайно подчеркнул, что [b]семантически[/b] под этими словами ничего нет, потому что они соответствуют базовым командам процессора. Имя операции - это ее синтаксис, выполняемое действие - семантика. Действие "доступ к памяти по адресу" невозможно выразить на более низком уровне, его просто нет. [quote="gudleifr"]Хищник писал(а): Есть термин threaded code... Значит, все-таки, предлагаете "шитые данные"?! Или, даже просто отказываетесь от слова "код"? Ведь "команда" просто подается на шину процессора (как данные) и тупо дешифрируется в последовательность микрокодов (как адрес) или даже просто идет на вход логике (опять как данные)...[/quote] Не фантазируйте, микроэлектроника все равно не пойдет у Вас на поводу ради мелкой коррекции терминологии :) Разница между командой и данными схемотехническая, она видна разработчику, явно выражена и не может быть проигнорирована исходя из здравого смысла (иначе не получится проектировать процессор). [quote="gudleifr"]Я понял Ваши претензии так: Я рассматриваю FORTH, как звено в цепочке А (язык машины) - F (FORTH)- P (проблемно-орентированный язык). Вы ограничиваетесь подцепочкой A - F, пытаясь создать какую-то с одной стороны "общепринятую", с другой - "эффективную" пару (FORTH-машину). Поэтому, Вы очевидно заинтересованы во взаимопроникновении терминологии A и F. Я же (ратуя за универсальность F) принимаю как данность, что терминологии A, F и P могут не пересекаться. Вообще.[/quote] Я еще ни слова не сказал о своем понимании вопроса. Пока у меня есть претензии к постановке задачи и формулируемых утверждениях. Есть универсальные вопросы, которыми предваряется любое исследование. Какие проблемы сейчас имеются? Кому и чем они мешают? Что улучшится, если их решить? Только потом начинается изложение своего решения. Иначе получается чайник Рассела, который где-то летает, но никому не интересен. Его можно сколько угодно изучать, но практических следствий от этого изучения никаких. [quote="gudleifr"]Если для Вас "компиляция" - процесс перевода с F на A, то для меня "компиляция" - перенос информации со СТЕКА в СЛОВАРЬ (т.е. внутренне дело F).[/quote] У термина "компиляция" есть общепринятое определение. Замена этого определения - см. выше. Кому нужно, зачем, чем мешает и что станет лучше, если заменить. Определение компиляции никак не затрагивает алгоритмы, с помощью которых она выполняется. Из стека в словарь? Пожалуйста. Основное определение тут совершенно ни при чем.
|
|
|
|
Добавлено: Пн июл 14, 2014 13:08 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
Хищник писал(а): На каком "этом" и кто эти "никто"? На уровне языка ассемблера и никто из пишущих на языке ассемблера. Далее Вас, пардон, понесло. Фраза "переменная Х хранится в ячейке 5" сродни "хандлер окна хранится в ячейке 7" и "количество розовых слонов - в ячейке CRAZY". По сути, подобные слова относятся к "компиляции" на язык ассемблера с языка постановки задачи. К языку ассемблера и, тем более, процессора ни "переменные", ни "розовые слоны" никакого отношения иметь не могут. Хищник писал(а): Форт - и язык, и не язык. Существует язык Форт, но он настолько тесно переплетается с такими понятиями, как стековая машина, 0-операндные команды, регулярная грамматика, что именно методические подходы Форта могут быть эффективно использованы при работе с этими технологиями... Это фраза (как и следующие за ней) не имеющая смысла в контексте темы. Тем более, что методы построения проблемно-ориентированного языка и/или полного доступа к железу позволяют эффективно работать с ЛЮБЫМИ разумными, а не только с перечисленными, технологиями. Хищник писал(а): А вот семантически ниже, чем ! @ уже ничего нет. Это неправда: во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных". Хищник писал(а): Есть термин threaded code... Значит, все-таки, предлагаете "шитые данные"?! Или, даже просто отказываетесь от слова "код"? Ведь "команда" просто подается на шину процессора (как данные) и тупо дешифрируется в последовательность микрокодов (как адрес) или даже просто идет на вход логике (опять как данные)... Давайте заканчивать этот базар. К теме он никакого отношения не имеет. Хотите спорить об этом дальше - давайте перенесем в "Юмор". Я понял Ваши претензии так: Я рассматриваю FORTH, как звено в цепочке А (язык машины) - F (FORTH)- P (проблемно-орентированный язык). Вы ограничиваетесь подцепочкой A - F, пытаясь создать какую-то с одной стороны "общепринятую", с другой - "эффективную" пару (FORTH-машину). Поэтому, Вы очевидно заинтересованы во взаимопроникновении терминологии A и F. Я же (ратуя за универсальность F) принимаю как данность, что терминологии A, F и P могут не пересекаться. Вообще. Отсюда и непонимание. Если для Вас "компиляция" - процесс перевода с F на A, то для меня "компиляция" - перенос информации со СТЕКА в СЛОВАРЬ (т.е. внутренне дело F).
[quote="Хищник"]На каком "этом" и кто эти "никто"?[/quote]На уровне языка ассемблера и никто из пишущих на языке ассемблера. Далее Вас, пардон, понесло. Фраза "переменная Х хранится в ячейке 5" сродни "хандлер окна хранится в ячейке 7" и "количество розовых слонов - в ячейке CRAZY". По сути, подобные слова относятся к "компиляции" на язык ассемблера с языка постановки задачи. К языку ассемблера и, тем более, процессора ни "переменные", ни "розовые слоны" никакого отношения иметь не могут. [quote="Хищник"]Форт - и язык, и не язык. Существует язык Форт, но он настолько тесно переплетается с такими понятиями, как стековая машина, 0-операндные команды, регулярная грамматика, что именно методические подходы Форта могут быть эффективно использованы при работе с этими технологиями...[/quote]Это фраза (как и следующие за ней) не имеющая смысла в контексте темы. Тем более, что методы построения проблемно-ориентированного языка и/или полного доступа к железу позволяют эффективно работать с ЛЮБЫМИ разумными, а не только с перечисленными, технологиями. [quote="Хищник"]А вот семантически ниже, чем ! @ уже ничего нет.[/quote]Это неправда: во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных". [quote="Хищник"]Есть термин threaded code...[/quote]Значит, все-таки, предлагаете "шитые данные"?! Или, даже просто отказываетесь от слова "код"? Ведь "команда" просто подается на шину процессора (как данные) и тупо дешифрируется в последовательность микрокодов (как адрес) или даже просто идет на вход логике (опять как данные)...
Давайте заканчивать этот базар. К теме он никакого отношения не имеет. Хотите спорить об этом дальше - давайте перенесем в "Юмор".
Я понял Ваши претензии так: Я рассматриваю FORTH, как звено в цепочке А (язык машины) - F (FORTH)- P (проблемно-орентированный язык). Вы ограничиваетесь подцепочкой A - F, пытаясь создать какую-то с одной стороны "общепринятую", с другой - "эффективную" пару (FORTH-машину). Поэтому, Вы очевидно заинтересованы во взаимопроникновении терминологии A и F. Я же (ратуя за универсальность F) принимаю как данность, что терминологии A, F и P могут не пересекаться. Вообще.
Отсюда и непонимание. Если для Вас "компиляция" - процесс перевода с F на A, то для меня "компиляция" - перенос информации со СТЕКА в СЛОВАРЬ (т.е. внутренне дело F).
|
|
|
|
Добавлено: Пн июл 14, 2014 00:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
gudleifr писал(а): Для этого есть другие названия: регистры, ячейки, адресные пространства, те же стеки... Переменными области данных на этом уровне никто никогда не обзывает. На каком "этом" и кто эти "никто"? Перечисленные понятия относятся к различным признакам классификации, и ни одно из них не предназначено для хранения данных. Кроме разве что "ячеек", но тогда надо уточнять, что речь идет о ячейках памяти. Регистры и стеки - это временные хранилища значений из памяти. Если переменной X выделена ячейка с адресом 5, то в процессе обработки данных в регистрах процессора с этой связью ничего не происходит. Прочитано число в регистр или нет, с точки зрения программы X по-прежнему связан с ячейкой номер 5. Необходимость копирования данных в регистры проистекает из отсутствия операций "память-память", а она в свою очередь связана с конечным числом интерфейсом доступа к основному массиву ячеек. Если бы была массово распространена трехпортовая память, можно было бы для операции X = Y + Z просто поставить сумматор на пути данных из ячеек, выделенных для Y и Z. Хранение данных в регистрах процессора является исключением и техническим приемом сокращения трафика процессор-память с целью использования более производительного процессорного регистра. С точки зрения программиста переменные лежат в памяти, доступной процессору, и от этого программист и отталкивается в качестве отправной точки. gudleifr писал(а): Из этого следует, что Вы согласны с тем, что FORTH - не язык! Однако, боюсь и "вскл.знак" и "собака" - есть, все-таки, "оборачивание". Форт - и язык, и не язык. Существует язык Форт, но он настолько тесно переплетается с такими понятиями, как стековая машина, 0-операндные команды, регулярная грамматика, что именно методические подходы Форта могут быть эффективно использованы при работе с этими технологиями. Можно играть с Фортом в игру "удаляй привычные вещи, пока он не перестанет работать". Можно удалить стек данных - реализовать виртуальную регистровую машину. Останется ПОЛИЗ, останется интерпретатор, только числа придется сразу распределять по фиксированным регистрам. Можно удалить словарь как связанный список - заменить, к примеру, на деревья, массив слов или вообще произвольную разновидность БД. Пропадут некоторые приемы программирования, но 2 2 + все равно даст 4. А вот семантически ниже, чем ! @ уже ничего нет. Это базовые действия процессорной системы. gudleifr писал(а): Т.е. надо говорить не "шитый код", а "шитые данные"!? Есть термин threaded code, под ним понимается определенная организация кода. Вычисляемые адреса - это с точки зрения процессора данные, а не код. Даже если по результатам вычислений управление будет передано на вычисленный адрес. Простой вопрос: управление передано на адрес 10. Какая команда выполнится - сложение, вычитание, умножение...? Вы полагаете, что число 10 каким-то образом превращается в код и выполнится команда с кодом 10? Еще пример - читаем файл и выдаем его на аудиоЦАП. Содержимое файла не модифицируется. Можно вместо файла представить аудиовход - тут точно никаких "команд доступа к файлу". Данные приходят на шину с одного устройства и уходят в другое. Как тут понимать "отсутствие данных"?
[quote="gudleifr"]Для этого есть другие названия: регистры, ячейки, адресные пространства, те же стеки... Переменными области данных на этом уровне никто никогда не обзывает.[/quote] На каком "этом" и кто эти "никто"? Перечисленные понятия относятся к различным признакам классификации, и ни одно из них не предназначено для хранения данных. Кроме разве что "ячеек", но тогда надо уточнять, что речь идет о ячейках памяти. Регистры и стеки - это временные хранилища значений из памяти. Если переменной X выделена ячейка с адресом 5, то в процессе обработки данных в регистрах процессора с этой связью ничего не происходит. Прочитано число в регистр или нет, с точки зрения программы X по-прежнему связан с ячейкой номер 5. Необходимость копирования данных в регистры проистекает из отсутствия операций "память-память", а она в свою очередь связана с конечным числом интерфейсом доступа к основному массиву ячеек. Если бы была массово распространена трехпортовая память, можно было бы для операции X = Y + Z просто поставить сумматор на пути данных из ячеек, выделенных для Y и Z. Хранение данных в регистрах процессора является исключением и техническим приемом сокращения трафика процессор-память с целью использования более производительного процессорного регистра. С точки зрения программиста переменные лежат в памяти, доступной процессору, и от этого программист и отталкивается в качестве отправной точки. [quote="gudleifr"]Из этого следует, что Вы согласны с тем, что FORTH - не язык! Однако, боюсь и "вскл.знак" и "собака" - есть, все-таки, "оборачивание".[/quote] Форт - и язык, и не язык. Существует язык Форт, но он настолько тесно переплетается с такими понятиями, как стековая машина, 0-операндные команды, регулярная грамматика, что именно методические подходы Форта могут быть эффективно использованы при работе с этими технологиями. Можно играть с Фортом в игру "удаляй привычные вещи, пока он не перестанет работать". Можно удалить стек данных - реализовать виртуальную регистровую машину. Останется ПОЛИЗ, останется интерпретатор, только числа придется сразу распределять по фиксированным регистрам. Можно удалить словарь как связанный список - заменить, к примеру, на деревья, массив слов или вообще произвольную разновидность БД. Пропадут некоторые приемы программирования, но 2 2 + все равно даст 4.
А вот семантически ниже, чем ! @ уже ничего нет. Это базовые действия процессорной системы.
[quote="gudleifr"]Т.е. надо говорить не "шитый код", а "шитые данные"!?[/quote] Есть термин threaded code, под ним понимается определенная организация кода. Вычисляемые адреса - это с точки зрения процессора данные, а не код. Даже если по результатам вычислений управление будет передано на вычисленный адрес. Простой вопрос: управление передано на адрес 10. Какая команда выполнится - сложение, вычитание, умножение...? Вы полагаете, что число 10 каким-то образом превращается в код и выполнится команда с кодом 10? Еще пример - читаем файл и выдаем его на аудиоЦАП. Содержимое файла не модифицируется. Можно вместо файла представить аудиовход - тут точно никаких "команд доступа к файлу". Данные приходят на шину с одного устройства и уходят в другое. Как тут понимать "отсутствие данных"?
|
|
|
|
Добавлено: Пн июл 14, 2014 00:10 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
Хищник писал(а): Переменная - это область памяти, где хранятся данные. Она соответствует базовым возможностям процессора Для этого есть другие названия: регистры, ячейки, адресные пространства, те же стеки... Переменными области данных на этом уровне никто никогда не обзывает. Хищник писал(а): все остальное определяется особенностями языка программирования. ... Другое дело, что он может быть чем-то обернут, но это уже не из области Форта. Из этого следует, что Вы согласны с тем, что FORTH - не язык! Однако, боюсь и "вскл.знак" и "собака" - есть, все-таки, "оборачивание". Хищник писал(а): Данные не стали кодом. Т.е. надо говорить не "шитый код", а "шитые данные"!? Хищник писал(а): Переопределим ! @ как SET и GET... Об этом, как бы, речь не шла. Тем более у Броуди...
[quote="Хищник"]Переменная - это область памяти, где хранятся данные. Она соответствует базовым возможностям процессора[/quote]Для этого есть другие названия: регистры, ячейки, адресные пространства, те же стеки... Переменными области данных на этом уровне никто никогда не обзывает.
[quote="Хищник"]все остальное определяется особенностями языка программирования. ... Другое дело, что он может быть чем-то обернут, но это уже не из области Форта.[/quote]Из этого следует, что Вы согласны с тем, что FORTH - не язык! Однако, боюсь и "вскл.знак" и "собака" - есть, все-таки, "оборачивание".
[quote="Хищник"]Данные не стали кодом.[/quote]Т.е. надо говорить не "шитый код", а "шитые данные"!?
[quote="Хищник"]Переопределим ! @ как SET и GET...[/quote]Об этом, как бы, речь не шла. Тем более у Броуди...
|
|
|
|
Добавлено: Вс июл 13, 2014 17:50 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
gudleifr писал(а): Я так думаю. Если кому-то нужны переменные, то они должны работать как переменные. Типизация, область видимости, значение по умолчанию не являются обязательными свойствами переменных. Переменная - это область памяти, где хранятся данные. Она соответствует базовым возможностям процессора, поэтому все остальное определяется особенностями языка программирования. gudleifr писал(а): Реализовать можно. Но, вот, конкретным способом? Сомневаюсь. Половина фортеров предпочитает VALUE, а не VARIABLE. От этого VARIABLE никуда не делась. gudleifr писал(а): Не надо из похожести реализаций делать вывод о схожести программ. В конце концов, в силу ограниченности процессорных решений, все решения на нижнем уровне подобны. Именно потому, что процессоры работают с памятью одинаковым образом (это не ограниченность процессорных решений, это унифицированность доступа ко всем типам памяти: указали адрес - получили данные). Поэтому низкий уровень будет одинаковым. Другое дело, что он может быть чем-то обернут, но это уже не из области Форта. gudleifr писал(а): А потом пишем JMP EAX и - вуаля! - данные становятся кодом... Краеугольное свойство FORTH - "в ячейку влезает как число, так и адрес команды", а набор команд, это уже, как бы, код. Данные не стали кодом. Они превратились в указатель на код. Команда JMP EAX не выполняет команду, код которой загружен в EAX, а передает управление по этому адресу. gudleifr писал(а): Говоря высоким слогом, что есть переменная? Значение ассоциированное с именем. А слово? Действие ассоциированное с именем. Второе заведомо шире первого. Поэтому не надо радоваться тому, что оно легко эмулирует простейший случай. См. пример про ЯБЛОКИ у Броуди. Раз есть уже, но эффективнее (по причине специализации), то Forth-way - дать доступ к такой возможности. Собственно, переменные и так не используются в отрыве от действий с ними. Переопределим ! @ как SET и GET, и получим нечто, мимикрирующее под инкапсуляцию данных, хотя в действительности это как было прямым доступом, так и осталось. И даже если определять SET/GET как методы доступа к данным, все равно в базовых возможностях Форта будут торчать "потроха" в виде возможности доступа к памяти форт-системы. Если это запретить - получится "язык, на который оказал влияние Форт".
[quote="gudleifr"]Я так думаю. Если кому-то нужны переменные, то они должны работать как переменные.[/quote] Типизация, область видимости, значение по умолчанию не являются обязательными свойствами переменных. Переменная - это область памяти, где хранятся данные. Она соответствует базовым возможностям процессора, поэтому все остальное определяется особенностями языка программирования. [quote="gudleifr"]Реализовать можно. Но, вот, конкретным способом? Сомневаюсь. Половина фортеров предпочитает VALUE, а не VARIABLE.[/quote] От этого VARIABLE никуда не делась. [quote="gudleifr"]Не надо из похожести реализаций делать вывод о схожести программ. В конце концов, в силу ограниченности процессорных решений, все решения на нижнем уровне подобны.[/quote] Именно потому, что процессоры работают с памятью одинаковым образом (это не ограниченность процессорных решений, это унифицированность доступа ко всем типам памяти: указали адрес - получили данные). Поэтому низкий уровень будет одинаковым. Другое дело, что он может быть чем-то обернут, но это уже не из области Форта. [quote="gudleifr"]А потом пишем JMP EAX и - вуаля! - данные становятся кодом... Краеугольное свойство FORTH - "в ячейку влезает как число, так и адрес команды", а набор команд, это уже, как бы, код.[/quote] Данные не стали кодом. Они превратились в указатель на код. Команда JMP EAX не выполняет команду, код которой загружен в EAX, а передает управление по этому адресу. [quote="gudleifr"]Говоря высоким слогом, что есть переменная? Значение ассоциированное с именем. А слово? Действие ассоциированное с именем. Второе заведомо шире первого. Поэтому не надо радоваться тому, что оно легко эмулирует простейший случай. См. пример про ЯБЛОКИ у Броуди.[/quote] Раз есть [b]у[/b]же, но эффективнее (по причине специализации), то Forth-way - дать доступ к такой возможности. Собственно, переменные и так не используются в отрыве от действий с ними. Переопределим ! @ как SET и GET, и получим нечто, мимикрирующее под инкапсуляцию данных, хотя в действительности это как было прямым доступом, так и осталось. И даже если определять SET/GET как методы доступа к данным, все равно в базовых возможностях Форта будут торчать "потроха" в виде возможности доступа к памяти форт-системы. Если это запретить - получится "язык, на который оказал влияние Форт".
|
|
|
|
Добавлено: Вс июл 13, 2014 14:45 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
mOleg писал(а): Я не утверждаю, что в википедии хорошо написано но определение необходимо. Попробуйте, все-таки перечитать Мура. "Интерактивная среда" - это от бедности. Этакий игровой автомат для программистского самосовершенствования. Это на Спектруме или PC-XT я сидел в Бейсике и видел, что управляю машиной, сейчас мне под это выделяют виртуальный угол, откуда я ни на что повлиять не могу. mOleg писал(а): Вы о чем? Ну, как бы, видели программы на языке ассемблера или чистом C? Много Вы там видели чистых структурных конструкций? Даже без учета оптимизации? Адресная арифметика, заглушки для перепрыгивания по сегментам, нетривиальные циклы... Я, например, не стесняюсь в создании подобных фич на FORTH, ибо проще. У Вас же набор xxxIF и ТHENxxx на все случаи жизни. Если Вы и создаете что-то нетривиально компилирующее, то пытаетесь привязать к словарям. mOleg писал(а): это в ANSI94 появилось. Как и структурная обработка исключений. Выкинуть и забыть. Я тоже думал, что стандарт это хорошо, пока его не прочитал. Поэтому, вместо выкладывания в базе, ограничился матюгами: [url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\2.STANDARTNYJ%20NABOR%20SLOW\1.ANSI-94[/url].
[quote="mOleg"]Я не утверждаю, что в википедии хорошо написано 8) но определение необходимо.[/quote]Попробуйте, все-таки перечитать Мура. "Интерактивная среда" - это от бедности. Этакий игровой автомат для программистского самосовершенствования. Это на Спектруме или PC-XT я сидел в Бейсике и видел, что управляю машиной, сейчас мне под это выделяют виртуальный угол, откуда я ни на что повлиять не могу.
[quote="mOleg"]Вы о чем?[/quote]Ну, как бы, видели программы на языке ассемблера или чистом C? Много Вы там видели чистых структурных конструкций? Даже без учета оптимизации? Адресная арифметика, заглушки для перепрыгивания по сегментам, нетривиальные циклы... Я, например, не стесняюсь в создании подобных фич на FORTH, ибо проще. У Вас же набор xxxIF и ТHENxxx на все случаи жизни. Если Вы и создаете что-то нетривиально компилирующее, то пытаетесь привязать к словарям.
[quote="mOleg"]это в ANSI94 появилось.[/quote]Как и структурная обработка исключений. Выкинуть и забыть. Я тоже думал, что стандарт это хорошо, пока его не прочитал. Поэтому, вместо выкладывания в базе, ограничился матюгами: [url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\2.STANDARTNYJ%20NABOR%20SLOW\1.ANSI-94[/url].
|
|
|
|
Добавлено: Вс июл 13, 2014 11:47 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
gudleifr писал(а): О языке мы не говорим. Мы говорим о FORTH. Почему FORTH не язык? я раз 10 читал фразу, чуть не вошел в бесконечную рекурсию. Последнее "Почему Форт не ЯЗЫК?" приводит меня к необходимости понимания, что такое язык. Так что же такое язык? Вот, скажем, из википедии: [url=http://ru.wikipedia.org/wiki/Язык]Язы?к — знаковая система, соотносящая понятийное содержание и типовое звучание (написание).[/url] Я не утверждаю, что в википедии хорошо написано но определение необходимо. Считаю, что Форт - языковая среда программирования. gudleifr писал(а): Отказ от создания управляющих слов "по месту" в пользу расширения их типового набора. очень наукообразно и непонятна суть. Вы о чем? gudleifr писал(а): Попытки управлять видимостью слов путем переключения контекстов и прочих алиасов. это в ANSI94 появилось. Я лишь использую. Только, все же, это вполне естественный для Форта механизм, его нельзя считать неродным, в отличие, от, скажем, механизма работы с файлами. gudleifr писал(а): Использование ОО-словарей. Ну, какие же они ОО? (хотя внутреннее устройство похоже).
[quote="gudleifr"]О языке мы не говорим. Мы говорим о FORTH. Почему FORTH не язык?[/quote] 8) я раз 10 читал фразу, чуть не вошел в бесконечную рекурсию. Последнее "Почему Форт не ЯЗЫК?" приводит меня к необходимости понимания, что такое язык. Так что же такое язык? Вот, скажем, из википедии: [url=http://ru.wikipedia.org/wiki/Язык]Язы?к — знаковая система, соотносящая понятийное содержание и типовое звучание (написание).[/url] Я не утверждаю, что в википедии хорошо написано 8) но определение необходимо. Считаю, что Форт - [url=http://fforum.winglion.ru/viewtopic.php?f=34&t=2089]языковая среда программирования[/url].
[quote="gudleifr"]Отказ от создания управляющих слов "по месту" в пользу расширения их типового набора.[/quote] очень наукообразно и непонятна суть. Вы о чем?
[quote="gudleifr"]Попытки управлять видимостью слов путем переключения контекстов и прочих алиасов.[/quote] это в ANSI94 появилось. Я лишь использую. Только, все же, это вполне естественный для Форта механизм, его нельзя считать неродным, в отличие, от, скажем, механизма работы с файлами.
[quote="gudleifr"]Использование ОО-словарей.[/quote] Ну, какие же они ОО? (хотя внутреннее устройство похоже).
|
|
|
|
Добавлено: Вс июл 13, 2014 11:23 |
|
|
|
|
|
Заголовок сообщения: |
Re: О компиляции литералов и новом виде слов |
|
|
mOleg писал(а): по поводу Языка - дайте определение, о чем мы говорим О языке мы не говорим. Мы говорим о FORTH. Почему FORTH не язык? Потому, что прекрасно работает "без FORTH": при реализации FORTH-подобных штук на ЯВУ; в виде огрызков, отлаженных в Debug или, даже, командных файлов; в схожих проектах - PostScript, Trac... Ибо сказано Создателем (1971): главное - проблемно-ориентированный язык, FORTH - лишь простейшая (на тот момент реализация). Причем, ограниченная - если все начиналось (в 1958) с Языка Управления Заданиями, то к 70-м от этого полностью отказались в пользу одной программы, чем дальше, тем более изолированной от ОС. Поэтому не "язык", а "метод". mOleg писал(а): Все есть слова! ... А что до адресов и данных на стеках, коих, то это лишь привычный и удобный механизм взаимодействия слов между собой. Полностью поддерживаю. mOleg писал(а): В частности, поэтому, я исключил из INTERPRET распознавание чисел. ... Или хотя бы привести пару примеров. Это, как бы, "раз" (тут Вы даже Java переплюнули, там все-таки допускается атомарность литералов). Еще: Отказ от создания управляющих слов "по месту" в пользу расширения их типового набора. Попытки управлять видимостью слов путем переключения контекстов и прочих алиасов. Использование ОО-словарей.
[quote="mOleg"]по поводу Языка - дайте определение, о чем мы говорим[/quote]О языке мы не говорим. Мы говорим о FORTH. Почему FORTH не язык? Потому, что прекрасно работает "без FORTH": при реализации FORTH-подобных штук на ЯВУ; в виде огрызков, отлаженных в Debug или, даже, командных файлов; в схожих проектах - PostScript, Trac... Ибо сказано Создателем (1971): главное - проблемно-ориентированный язык, FORTH - лишь простейшая (на тот момент реализация). Причем, ограниченная - если все начиналось (в 1958) с Языка Управления Заданиями, то к 70-м от этого полностью отказались в пользу одной программы, чем дальше, тем более изолированной от ОС. Поэтому не "язык", а "метод".
[quote="mOleg"]Все есть слова! ... А что до адресов и данных на стеках, коих, то это лишь привычный и удобный механизм взаимодействия слов между собой. [/quote] Полностью поддерживаю.
[quote="mOleg"]В частности, поэтому, я исключил из INTERPRET распознавание чисел. ... Или хотя бы привести пару примеров.[/quote] Это, как бы, "раз" (тут Вы даже Java переплюнули, там все-таки допускается атомарность литералов). Еще: Отказ от создания управляющих слов "по месту" в пользу расширения их типового набора. Попытки управлять видимостью слов путем переключения контекстов и прочих алиасов. Использование ОО-словарей.
|
|
|
|
Добавлено: Вс июл 13, 2014 10:54 |
|
|
|
|