Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср май 25, 2016 01:26

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - о термине компиляция применительно к Форту
Автор Сообщение
  Заголовок сообщения:  Re: о термине компиляция применительно к Форту  Ответить с цитатой
чтож, предлагаю продолжать обсуждение тут
gudleifr, если по-вашему в опросе некорректно отражен первый пункт, предложите свой вариант(поправлю)
Сообщение Добавлено: Вс авг 17, 2014 13:51
  Заголовок сообщения:  Re: о термине компиляция применительно к Форту  Ответить с цитатой
mOleg писал(а):
ок. Напишите собственное определение, что есть компиляция применительно к Форту.

gudleifr писал(а):
Компиляция - это связывание имени с действием (и всякие частности: изменение действия, связанного с именем, изменение параметров действия, связанного с именем...).

Имеет место в процедуре ВЫПОЛНИТЬ (в режиме компиляции) или в процедуре КОМПИЛИРОВАТЬ (явная компиляция). Думаю, удачной оптимизацией будет обращение ВЫПОЛНИТЬ не к СЛОВАРЮ напрямую, а вызов механизмов КОМПИЛИРОВАТЬ.
Компиляция не в СЛОВАРЬ? Физически это возможно, но логически речь идет просто о еще одном СЛОВАРЕ (либо временном сохранении определений в СТЕКЕ для последующего вызова КОМПИЛИРОВАТЬ). Как, впрочем, возможна физическая запись в область, где храниться СЛОВАРЬ, но не в него, а "рядом".
Изображение
Сообщение Добавлено: Вс авг 17, 2014 12:54
  Заголовок сообщения:  Re: о термине компиляция применительно к Форту  Ответить с цитатой
gudleifr писал(а):
Ну, если иметь в виду "классическую компиляцию"

ок. Напишите собственное определение, что есть компиляция применительно к Форту.

gudleifr писал(а):
P.S. Ибо СЛОВАРЬ - есть программная реализация отношения "имя-действие".

словарь - да. Только для компиляции словарь не обязателен.
Сообщение Добавлено: Вс авг 17, 2014 12:44
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
mOleg писал(а):
Да, согласен, но при этом имя создавать не обязательно. Т.е. имеется компиляция - наработка кода и данных, имеется сохранение указателя куда-то, при этом код и\или данные не обязаны быть связынными с каким либо именем.

mOleg писал(а):
Более того, если под компиляцией понимать еще и подготовку отдельного исполнимого файла, то имена могут еще и удаляться (все, или почти все).
Ну, если иметь в виду "классическую компиляцию", то там имена вырезаются искусственно: они все присутствуют на этапе компиляции, основные на этапе связывания и иногда доживают до отладки.
Аналогично, и в FORTH - использование псевдоимен - "параметров" (адресов) - только некоторая оптимизация, не избавляющая программиста "иметь имя в голове". (Можно говорить об использовании упрощенной версии FIND, не нуждающейся в честном поиске, или о включении безымянного кода в более крупное слово, или даже о псевдостатье, к которой обращаются по адресу точки входа, но "эта штука всегда имеет имя").
Полное удаление имен в исполняемом файле? Ну, одно-то имя остается - имя файла. Просто мы теряем возможность доступа к более мелким "словам".
mOleg писал(а):
Смысл содержит любое действие, которое нельзя опустить без ущерба для проекта, имхо, так.
Смысл-то есть, но к компиляции он имеет опосредованное отношение. Например, мне надо записать в память байт, а глупый процессор может адресовать только слова и дополняет мой байт нулями. Я же не приписываю эту заслугу себе. Я, наоборот, ругаю глупую железяку.

P.S. Ибо СЛОВАРЬ - есть программная реализация отношения "имя-действие". Возможность что-то там "доразместить" - лишь оптимизационное хранение в СЛОВАРЕ части ЗНАЧЕНИЯ (например хранение там прочтенного WORD слова). Потребность что-то там "выравнить" - лишь техническая подробность реализации.
Имя - есть прочтенное из ПОТОКА слово (например, "слово, завершающееся пробелом", или "wnd-msg-wpar-lpar", или константа, порождающая выбор CASE, или просто индекс)... Все зависит от вида ПОТОКА.
Действие - адрес передачи управления, или ссылка на сложный объект, или запись в БД... Зависит от того, что требуется процедуре ВЫПОЛНИТЬ.
В любом случае, т.к. FORTH не оперирует понятием данных, позволяет понимать "имя" и "действие" так, как требует задача.
Сообщение Добавлено: Вс авг 17, 2014 11:01
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
gudleifr писал(а):
но, чтобы иметь доступ к этому буферу, я должен где-то перед этим (или после) запомнить HERE или выполнить CREATE (или их аналоги).

Да, согласен, но при этом имя создавать не обязательно. Т.е. имеется компиляция - наработка кода и данных, имеется сохранение указателя куда-то, при этом код и\или данные не обязаны быть связынными с каким либо именем.

Более того, если под компиляцией понимать еще и подготовку отдельного исполнимого файла, то имена могут еще и удаляться (все, или почти все).

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

Смысл содержит любое действие, которое нельзя опустить без ущерба для проекта, имхо, так.
Сообщение Добавлено: Вс авг 17, 2014 10:24
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
mOleg писал(а):
охохох, ну почему же? Вот я могу привести пример, когда пустой ALLOT имеет смысл
Выравнивание? Это не смысл, а чисто техническая подробность. Нельзя же считать имеющим литературный смысл правило начинать главу с новой страницы.
Сообщение Добавлено: Вс авг 17, 2014 00:49
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
gudleifr писал(а):
Она не отсутствует. Она просто осталась "за кадром"

я о том, что компиляция имеется, а связывания кода с именем нет (с темы не съезжал)

gudleifr писал(а):
Иначе мой ALLOT просто не будет иметь смысла.

охохох, ну почему же? Вот я могу привести пример, когда пустой ALLOT имеет смысл 8) более того, в этом плане используется регулярно, как минимум в СПФе
Сообщение Добавлено: Вс авг 17, 2014 00:41
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
mOleg писал(а):
да нет же! (см примеры выше)
Она не отсутствует. Она просто осталась "за кадром".
Пусть я пишу просто
Код:
100 ALLOT

но, чтобы иметь доступ к этому буферу, я должен где-то перед этим (или после) запомнить HERE или выполнить CREATE (или их аналоги).
Иначе мой ALLOT просто не будет иметь смысла.
Сообщение Добавлено: Вс авг 17, 2014 00:36
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
Ну, хотите, создайте опрос на тему, что такое компиляция 8)
может поймем, кто из нас неправей
Сообщение Добавлено: Вс авг 17, 2014 00:34
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
gudleifr писал(а):
Любое создание кода/данных требует их "именования".

ну приводил же примеры:

CREATE Array 0x100 0 DO I @ , LOOP
NONAME: bla bla bla ; EXECUTE
и это я еще фантазию не включал 8)

gudleifr писал(а):
но в любом случае "эта штука, обратившись к которой, мы получим ее содержимое" присутствует.

да нет же! (см примеры выше)
Сообщение Добавлено: Вс авг 17, 2014 00:30
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
mOleg писал(а):
Поэтому и не хочется под компиляцией понимать все, а лишь некий процесс создания исполнимого кода или данных. А для других действий использовать другие названия.
Любое создание кода/данных требует их "именования". Конечно, можно рассматривать целую линейку способов "именования": "имя - имя и параметр - параметр", но в любом случае "эта штука, обратившись к которой, мы получим ее содержимое" присутствует.
Сообщение Добавлено: Вс авг 17, 2014 00:26
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
Хищник писал(а):
Я вот только единственное хочу сказать - если "втихаря" пропихнуть определение в стандарт, это только развалит стандарт, но не сделает определение рабочим.

А где сказано о "втихаря"? Определение должно быть, и оно должно быть находибельно 8)
Я не предлагал свое определение включить в стандарт 8)

Да, по поводу "зафлуживания темы", я потом отделю.
Сообщение Добавлено: Вс авг 17, 2014 00:25
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
mOleg писал(а):
Вот именно поэтому я за создание стандарта 8) чтобы можно было туда ткнуться и сказать:"о, оказывается, компиляция - это ...", и т.д.

Я вот только единственное хочу сказать - если "втихаря" пропихнуть определение в стандарт, это только развалит стандарт, но не сделает определение рабочим.
Сообщение Добавлено: Вс авг 17, 2014 00:21
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
gudleifr писал(а):
Об этом я и говорю: "имя - действие" - первично, а конкретная реализация может отличаться.

может, причем имени может не быть, а может не быть действия.

Поэтому и не хочется под компиляцией понимать все, а лишь некий процесс создания исполнимого кода или данных. А для других действий использовать другие названия.

gudleifr писал(а):
Я, раз за раз, поднимаю вопрос: имеет ли смысл искать границу между "именем" и "параметром"?

Вот именно поэтому я за создание стандарта 8) чтобы можно было туда ткнуться и сказать:"о, оказывается, компиляция - это ...", и т.д.
Сообщение Добавлено: Вс авг 17, 2014 00:14
  Заголовок сообщения:  Re: Требуются контрпримеры  Ответить с цитатой
mOleg писал(а):
Если код ээ собирается не в пространстве кода и данных, т.е. не под HERE (DP) есть компиляция?
Об этом я и говорю: "имя - действие" - первично, а конкретная реализация может отличаться. Причем, не только в реализации, но и в интерпретации. Например, можно считать Ваше MESSAGES атомарным, а можно считать "именем" пару "MESSAGES u". Я, раз за раз, поднимаю вопрос: имеет ли смысл искать границу между "именем" и "параметром"?
Сообщение Добавлено: Вс авг 17, 2014 00:02

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


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