Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 11:42

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Что такое компиляция?
связывание имени с действием 25%  25%  [ 2 ]
процесс формирования кода и данных 75%  75%  [ 6 ]
другое (опишите ваше понимание) 0%  0%  [ 0 ]
Всего голосов : 8
Автор Сообщение
 Заголовок сообщения: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Вс авг 17, 2014 13:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Всвязи с обсуждением понимания, что же стоит за термином компиляция
проводится данный опрос. Обсуждение началось тут. Очень желательны коментарии и замечания проголосовавших.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Изображение

"Формирование кода"?- Это лишь часть процедуры компиляции.
"Формирование данных"?- В FORTH нет концепции данных.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 00:03 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Компиляция - трансляция программы с языка высокого уровня в форму, близкую к программе на машинном языке [из п. 51 Таблицы 1 ГОСТ 19781-90]

Трансляция программы - преобразование программы, представленной на одном языке программирования, в программу на другом языке и в определенном смысле равносильную первой [из п. 50 Таблицы 1 ГОСТ 19781-90]


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 00:05 
Хищник писал(а):
Компиляция - трансляция программы
В FORTH это называется целевой компиляцией.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 00:09 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
В FORTH это называется целевой компиляцией.

Это к тому, что некоторые термины уже имеют свои значения....


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 00:12 
Хищник писал(а):
некоторые термины уже имеют свои значения....
Кого и когда это останавливало? Взять те же векторные слова...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 00:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Кого и когда это останавливало? Взять те же векторные слова...

"Вектор прерывания - одна или несколько ячеек памяти, содержащих адрес программы реакции на прерывание и/или параметры вызова этой программы."

Векторное слово - слово, имеющее одну или несколько ячеек памяти, содержащих адрес программы реакции на вызов этого слова.

Что не так?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 01:15 
Хищник писал(а):
"Вектор прерывания - одна или несколько ячеек памяти, содержащих адрес программы реакции на прерывание и/или параметры вызова этой программы."
Изначально "вектор" - одномерный массив. Т.е. векторное слово - слово содержащее не одно действие, а несколько - массив (вектор) действий (очевидно прописанных заранее). См. Баранов&Ноздрунов [url]http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\S.N.BARANOW%20I%20N.R.NOSDRUNOW%20ASYK%20FORT%20I%20EGO%20REALISAZII\3.PRIMERY%20PROGRAMMNYH%20RASRABOTOK\04.WEKTORNOE%20POLE%20KODA[/url].

С прерываниями вышла та же путаница - изначально таблице (вектору) прерываний противопоставлялось одно прерывание с последующим опросом источника (vectored interrupt vs. polled interrupt).

Вектор в значении "указатель на что-то" это следствие математической безграмотности.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 01:45 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Вектор в значении "указатель" это следствие математической безграмотности.

Вектор - это стрелочка, она указывает :))

А вообще, эволюция терминологии идет разными путями. "Вектор прерывания" имеет под собой понимаемую основу и ассоциируется с фиксированной точкой входа, которая в свою очередь перенаправит выполнение на нужный адрес. Пусть даже такое название явилось результатом эволюции "таблицы прерываний". Ксерокс ведь тоже не название устройства, а название компании, но где разве широко распространены объявления "услуги светокопировального аппарата"? Даже "унитаз" - это тоже название фирмы :) Вопрос в другом - зачем изменять смысл термина компиляция или подгонять его под какие-то идеи? mOleg уже задал вопрос - что делать с noname-словами? Это пример фальсификации положения, что правильно с точки зрения методологии. Предположение нужно стараться сломать контрпримерами и атаками на отдельные термины и связи. "Связывание имени с действием"? Отлично. Придумываем примеры без имени, без действия и без их связывания.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 01:59 
Хищник писал(а):
Вектор - это стрелочка, она указывает
Вектор - это набор координат. Указывать "на что-то" он не может по очевидной причине - начальная точка вектора не определена. Вектор может указывать только направление.
Хищник писал(а):
"Вектор прерывания" имеет под собой понимаемую основу и ассоциируется с фиксированной точкой входа, которая в свою очередь перенаправит выполнение на нужный адрес.
"Неправильно понимаемую" и "ошибочно ассоциируется".
Хищник писал(а):
Вопрос в другом - зачем изменять смысл термина компиляция или подгонять его под какие-то идеи?
Затем, что в FORTH данное определение, понимаемое "в лоб", не работает. Как с "вектором" - выдираем термин из контекста и объясняем в силу "очевидного" понимания определяющих его терминов (не читая их определений). Получается фигня.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 02:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Вектор - это набор координат. Указывать "на что-то" он не может по очевидной причине - начальная точка вектора не определена. Вектор может указывать только направление.

Да и пусть ему будет с этого таки хорошо :)
gudleifr писал(а):
"Неправильно понимаемую" и "ошибочно ассоциируется".

Светокопировальный аппарат тоже неправильно ассоциируется с фирмой Xerox. Что мы выиграем от повсеместного насаждения нового термина?
gudleifr писал(а):
Затем, что в FORTH данное определение, понимаемое "в лоб", не работает.

Можно понимать его и не "в лоб". Есть же, например, понятие "динамическая компиляция"...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 05:19 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
не, все фигня, компиляция - это с латинского: ограбление.
Цитата:
Происходит от лат. compilatio «хищение, грабёж», далее из compilare «красть, расхищать»

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 07:36 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
gudleifr писал(а):
С прерываниями вышла та же путаница -

никакой путаницы.
сколь себя помню, называлось и называется таблица векторов прерываний.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 10:16 
chu писал(а):
сколь себя помню, называлось и называется таблица векторов прерываний.
См. например, Э.Клингман "Проектирование микропроцессорных систем".

Путаница, видимо, связана с тем, что адрес прерывания сам был тогда вектором - т.е. состоял из нескольких компонент (например сегмент-смещение). Обратите внимание, Клингман в этом смысле использует "вектор состояния" (адрес-регистры-флаги).

А, вообще, стоит, наверное, все-таки, определиться, зачем нам нужно "определение компиляции"? Определить, через него что-то другое, доказать чью-то чему-то эквивалентность и т.д..?

Кстати, тут есть еще одно разночтение. Насколько я понимаю, в изначальном понимании в процессе компиляции происходила трасляция "с языка ФВМ в шитый код", а в теперешней - "с языка FORTH в язык ФВМ".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 13:14 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
А, вообще, стоит, наверное, все-таки, определиться, зачем нам нужно "определение компиляции"? Определить, через него что-то другое, доказать чью-то чему-то эквивалентность и т.д..?

С этого надо начинать. На что я уже неоднократно обращал внимание. Иначе процесс обсуждения выродится в схоластику.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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