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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - О компиляции литералов и новом виде слов
Автор Сообщение
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
KPG писал(а):
Может где и есть создание словом своей словарной статьи (может в SP-Fork?).
Вы запутались "в двух словах": слово является словом (обладает семантикой слова) независимо от того, создает ли оно другие слова.
KPG писал(а):
Предлагаю вместо "место" и "области" для сближения взаимопонимания слово маркёр или указатель
Зачем? И "место" и "область" в языке ассеблера - термины вполне устоявшиеся. А вот "переменной" там более привычно называть "переменную периода компиляции".
Сообщение Добавлено: Пн июл 14, 2014 17:06
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
С нетерпением жду когда начнётся раздача слонов :lol:
gudleifr писал(а):
Хищник писал(а):
Имя слова - это не семантика
Т.е. Вы не в курсе, что куски кода в FORTH могут быть не только словами? А, раз, так, то утверждение ""собака" есть слово/словарная статья" имеет смысл, значит, является семантическим. Кстати, заглянул в стандарт, оказывается, забыл упомянуть, что в семантику "собаки" входит еще чувствительность к выравниванию.

А каким боком в существующих Форт системах @ ("собака") создаёт СВОЮ словарную статью, чтобы это было включено в семантику (поведение) слова во время "трансляции-компиляции,исполнения"). Может где и есть создание словом своей словарной статьи (может в SP-Fork?). Поэтому попытка дополнить семантику данного слова ещё чем то не совсем корректны. Извлечение значения ячейки по адресу трудно понять ещё как то иначе.

P.S. Предлагаю вместо "место" и "области" для сближения взаимопонимания слово маркёр или указатель :D
@ "Маразм крепчал и косил наши ряды"
Сообщение Добавлено: Пн июл 14, 2014 16:56
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
Хищник писал(а):
Место в памяти - это языковой объект?
Правильнее "Область памяти". "Место" - это, скорее, размер, а не позиция.
Хищник писал(а):
Я вообще не оперирую понятиями "A-определение", "P-определение" и т.д.
Поэтому и не можете понять, о чем речь.
Хищник писал(а):
Имя слова - это не семантика
Т.е. Вы не в курсе, что куски кода в FORTH могут быть не только словами? А, раз, так, то утверждение ""собака" есть слово/словарная статья" имеет смысл, значит, является семантическим. Кстати, заглянул в стандарт, оказывается, забыл упомянуть, что в семантику "собаки" входит еще чувствительность к выравниванию.
Хищник писал(а):
Это определение по ГОСТ.
Это ГОСТ на FORTH? Повторяю, я прошу привести F-определение, а не определения "для языков высокого уровня". Да откройте хотя бы SF!
Сообщение Добавлено: Пн июл 14, 2014 15:53
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
gudleifr писал(а):
То есть Вы опять делаете ту же ошибку (как и автор книги "для чайников") - подменяете A-определение P-определением. Автор, разумеется, делает так намеренно - так "чайникам" понятнее. Ваша - тоже очевидна: зациклившись на втюханной Вам разработчиками паре A-F, Вы вынуждены подбирать P искусственно, "по месту", поэтому некоторая размытость понятий неизбежна.

Я вообще не оперирую понятиями "A-определение", "P-определение" и т.д. Переменная - это языковой объект, который может принимать различные значения. Место в памяти - это языковой объект?
gudleifr писал(а):
Пока Вы не объясните, почему считаете приведенные кодовые довески "несемантическими"

Да по определению :) Имя слова - это не семантика, поэтому апелляции к форме закорючки @ не к месту.
gudleifr писал(а):
Хищник писал(а):
Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке.
FORTH - язык высокого уровня? Вы привели P-определение.

Вы, уважаемый, когда бросаетесь спорить, хотя бы проверяйте, что Вам подсовывают :) Это определение по ГОСТ. Любой разработчик имеет полное право оставаться в его рамках в процессе диалога и свободного поиска, а уж в процессе работы он попросту обязан оставаться в этих рамках. Поэтому попробуйте показать, что Ваши изыскания, по крайней мере, не противоречат этому определению. А когда оно будет не противоречить, займемся выяснением вопроса, зачем такое надо, и почему, к примеру, не надо наряду с этим придумывать термин "транклюкация" и "Зю-определение".
Сообщение Добавлено: Пн июл 14, 2014 15:41
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
Хищник писал(а):
Вот одна из первых ссылок
Ох, уж эти сказочники. Первоисточник (Брэдли):
Цитата:
В программах на языке ассемблера оператор DB применяют для определения областей памяти. В предыдущих примерах мы размещали в памяти определенные значения. Это может быть поисковая таблица или информация для перекодировки чисел. Мы составим несколько примеров, в которых используется определенная подобным образом информация. Кроме того встречаются ситуации, когда программе требуется место в памяти для сохранения данных в процессе исполнения. Во время ассемблирования программы содержимое этого участка памяти неизвестно: собственно, это содержимое будет переменным во время исполнения программы.

То есть Вы опять делаете ту же ошибку (как и автор книги "для чайников") - подменяете A-определение P-определением. Автор, разумеется, делает так намеренно - так "чайникам" понятнее. Ваша - тоже очевидна: зациклившись на втюханной Вам разработчиками паре A-F, Вы вынуждены подбирать P искусственно, "по месту", поэтому некоторая размытость понятий неизбежна.
Хищник писал(а):
Придумайте что-то другое.
Зачем? Пока Вы не объясните, почему считаете приведенные кодовые довески "несемантическими" - я буду считать "детсадовским поведением" Ваше.
Хищник писал(а):
Бессмысленна же фраза "на Форте все можно сделать"
Я ее не употреблял.
Хищник писал(а):
Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке.
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-определениями.

Трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке.
Сообщение Добавлено: Пн июл 14, 2014 14:27
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
Хищник писал(а):
dd X ?
Все-таки "X dd ?". И к переменным само по себе никогда не относилось. Спросите ассемблерщиков.
Хищник писал(а):
Я не случайно подчеркнул, что семантически под этими словами ничего нет
Семантически: "во первых, они обернуты в "слово", во-вторых, используют достаточно высокоуровневую структуру "стек данных"".
Хищник писал(а):
Разница между командой и данными схемотехническая, она видна разработчику, явно выражена и не может быть проигнорирована исходя из здравого смысла (иначе не получится проектировать процессор).
Это опять смешивание терминологии A и F.
Хищник писал(а):
Любые разумные в Форте не рассмотрены, рассмотрены вполне определенные.
Это тоже бессмысленная фраза. Что значит "рассмотрены в Форте"? Описаны в стандарте? Упомянуты у классиков?
Хищник писал(а):
Пока у меня есть претензии к постановке задачи и формулируемых утверждениях.
...
У термина "компиляция" есть общепринятое определение.
В студию! Только не надо подменять 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).

У термина "компиляция" есть общепринятое определение. Замена этого определения - см. выше. Кому нужно, зачем, чем мешает и что станет лучше, если заменить. Определение компиляции никак не затрагивает алгоритмы, с помощью которых она выполняется. Из стека в словарь? Пожалуйста. Основное определение тут совершенно ни при чем.
Сообщение Добавлено: Пн июл 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).
Сообщение Добавлено: Пн июл 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?
Еще пример - читаем файл и выдаем его на аудиоЦАП. Содержимое файла не модифицируется. Можно вместо файла представить аудиовход - тут точно никаких "команд доступа к файлу". Данные приходят на шину с одного устройства и уходят в другое. Как тут понимать "отсутствие данных"?
Сообщение Добавлено: Пн июл 14, 2014 00:10
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
Хищник писал(а):
Переменная - это область памяти, где хранятся данные. Она соответствует базовым возможностям процессора
Для этого есть другие названия: регистры, ячейки, адресные пространства, те же стеки... Переменными области данных на этом уровне никто никогда не обзывает.

Хищник писал(а):
все остальное определяется особенностями языка программирования.
...
Другое дело, что он может быть чем-то обернут, но это уже не из области Форта.
Из этого следует, что Вы согласны с тем, что FORTH - не язык! Однако, боюсь и "вскл.знак" и "собака" - есть, все-таки, "оборачивание".

Хищник писал(а):
Данные не стали кодом.
Т.е. надо говорить не "шитый код", а "шитые данные"!?

Хищник писал(а):
Переопределим ! @ как SET и GET...
Об этом, как бы, речь не шла. Тем более у Броуди...
Сообщение Добавлено: Вс июл 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 как методы доступа к данным, все равно в базовых возможностях Форта будут торчать "потроха" в виде возможности доступа к памяти форт-системы. Если это запретить - получится "язык, на который оказал влияние Форт".
Сообщение Добавлено: Вс июл 13, 2014 14:45
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
mOleg писал(а):
Я не утверждаю, что в википедии хорошо написано 8) но определение необходимо.
Попробуйте, все-таки перечитать Мура. "Интерактивная среда" - это от бедности. Этакий игровой автомат для программистского самосовершенствования. Это на Спектруме или 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].
Сообщение Добавлено: Вс июл 13, 2014 11:47
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
gudleifr писал(а):
О языке мы не говорим. Мы говорим о FORTH. Почему FORTH не язык?

8) я раз 10 читал фразу, чуть не вошел в бесконечную рекурсию.
Последнее "Почему Форт не ЯЗЫК?" приводит меня к необходимости понимания, что такое язык.
Так что же такое язык? Вот, скажем, из википедии:
[url=http://ru.wikipedia.org/wiki/Язык]Язы?к — знаковая система, соотносящая понятийное содержание и типовое звучание (написание).[/url]
Я не утверждаю, что в википедии хорошо написано 8) но определение необходимо.
Считаю, что Форт - языковая среда программирования.

gudleifr писал(а):
Отказ от создания управляющих слов "по месту" в пользу расширения их типового набора.

очень наукообразно и непонятна суть. Вы о чем?

gudleifr писал(а):
Попытки управлять видимостью слов путем переключения контекстов и прочих алиасов.

это в ANSI94 появилось. Я лишь использую. Только, все же, это вполне естественный для Форта механизм, его нельзя считать неродным, в отличие, от, скажем, механизма работы с файлами.

gudleifr писал(а):
Использование ОО-словарей.

Ну, какие же они ОО? (хотя внутреннее устройство похоже).
Сообщение Добавлено: Вс июл 13, 2014 11:23
  Заголовок сообщения:  Re: О компиляции литералов и новом виде слов  Ответить с цитатой
mOleg писал(а):
по поводу Языка - дайте определение, о чем мы говорим
О языке мы не говорим. Мы говорим о FORTH. Почему FORTH не язык? Потому, что прекрасно работает "без FORTH": при реализации FORTH-подобных штук на ЯВУ; в виде огрызков, отлаженных в Debug или, даже, командных файлов; в схожих проектах - PostScript, Trac...
Ибо сказано Создателем (1971): главное - проблемно-ориентированный язык, FORTH - лишь простейшая (на тот момент реализация). Причем, ограниченная - если все начиналось (в 1958) с Языка Управления Заданиями, то к 70-м от этого полностью отказались в пользу одной программы, чем дальше, тем более изолированной от ОС.
Поэтому не "язык", а "метод".

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

Полностью поддерживаю.

mOleg писал(а):
В частности, поэтому, я исключил из INTERPRET распознавание чисел.
...
Или хотя бы привести пару примеров.

Это, как бы, "раз" (тут Вы даже Java переплюнули, там все-таки допускается атомарность литералов).
Еще:
Отказ от создания управляющих слов "по месту" в пользу расширения их типового набора.
Попытки управлять видимостью слов путем переключения контекстов и прочих алиасов.
Использование ОО-словарей.
Сообщение Добавлено: Вс июл 13, 2014 10:54

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


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