Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 04:00

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

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

Эти термины не зависят микроконтроллер тут или нет.
Скармливаем Форту такой текст. Интересуют приключения слова BLA
Код:
: BLA ." BLA " ;
BLA BLA BLA                    <- BLA трижды интерпретируется
: BOLTAEM BLA BLA BLA ;        <- BLA трижды компилируется
BOLTAEM                        <- BLA трижды исполняется
BYE

Интерпретация - из входного потока выхватывается слово, ищется в словаре
и если оно найдено исполняется
Компиляция - из входного потока выхватывается слово, ищется в словаре
и если оно найдено в кодофайл вставляется код вызова этого слова
Исполнение - слово просто исполняется (без интерпретации, без поиска
по словарю, используя результат его более ранней компиляции)

Для микроконтроллера, это имеется ввиду целевая компиляция ?
Т.е когда Форт-система здесь и сейчас готовит код для исполнения там или здесь, но позже и без нее ? Тогда здесь и сейчас происходит только компиляция, а там или здесь, но позже и без нее только исполнение.
Сообщение Добавлено: Сб дек 13, 2014 14:26
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
Спрошу по другому.

Код (в общем смысле), имеющийся на любой машине (в общем смысле), состоит из:
1. Кода, изготовленного на другой машине, а здесь только запускающегося.
2. Кода, изготовленного на другой машине, а здесь вообще не нужного.
3. Кода, изготовляемого на этой машине и запускаемого на этой или другой машине.
4. Исходного кода, из которого можно изготовить запускаемый код.
В том числе запускаемый на этой машине код может уметь переводить другой код из одного вида в другой, как автоматически, так и под управлением программиста и/или пользователя.

Допустим, здесь машина - МК.
А FORTH-система?
Сообщение Добавлено: Пн дек 08, 2014 18:20
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
victosha писал(а):
А вот как это все понимать для форт системы микроконтроллера??
Сначала надо определить "форт систему" и "микроконтроллер". Это не издевательство. Иначе на Ваш вопрос ответить невозможно.
Сообщение Добавлено: Вс дек 07, 2014 23:29
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
Извините, что встреваю. Но мне кажется, что здесь все перепутано.
Если рассматривать инструментальную форт систему, то там все четко пояснено, есть фазы компиляции и интерпретации.
А вот как это все понимать для форт системы микроконтроллера??
Сообщение Добавлено: Вс дек 07, 2014 21:43
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
Leo Brodie, SF писал(а):
Compile
to generate a dictionary entry in computer memory from source text (the written-out form of a definition). Distinct from "execute."
...
When you define a new word, Forth translates your definition into dictionary form and writes the entry in the dictionary. This process is called "compiling."
For Beginners: Compilation is a general computer term which normally means the translation of a high-lavel program into machine code that the computer can understand. In Forth it means the same thing, but specifically it means writing into the dictionary
Сообщение Добавлено: Вт авг 19, 2014 20:57
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
mgw писал(а):
Например "целевая компиляция" .... не ясно, что это.
Это та самая компиляция "по Вики-определению".
А, вообще, лучше уж ГОСТ (пусть и страны, погибшей по незнанию кибернетики), чем Википедия.
Сообщение Добавлено: Вт авг 19, 2014 20:46
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
Википедия:
------------

Компиля?тор — программа, выполняющая компиляцию[1][2][3].

Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера)[2][3][4]. Входной информацией для компилятора (исходный код) является описание алгоритма или программа на объектно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код)[5].

Компилировать — проводить трансляцию машинной программы с проблемно-ориентированного языка на машинно-ориентированный язык[3].

Зачем ещё что то придумывать? Термин, это то что понятно всем в данной предметной области. Если форт и фортеры придумывают новые термины, то это должны быть "новые" термины, а не переопределенные "старые, классические". Например "целевая компиляция" .... не ясно, что это. Проще просто сказать "сохранение выполняемого файла программы на диске". Это лично моё мнение.

P.S. Все представляют автомобиль и принцип его работы. Термины: ==> зажигание, свечи, цилиндры поршни и т.д. У нас Форт, немного уникальный, совсем немного, но это тот же автомобиль :) Для примера, пусть Форт будет мотоциклом. Если мы начнем придумывать свои термины .... как описать работу мотора? Вот и получается ( :D по gudleifr ) Прыгалки в горячих горшках скачут используя искромет и вспихивающий эфир .... А если переопределить существующие термины .... вообще ужас получится .....
Сообщение Добавлено: Вт авг 19, 2014 20:29
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
mOleg писал(а):
Практически всегда под компиляцией подразумевается создание кода и\или формирование структур данных, а не их именование.
Кейси Райбек писал(а):
Да, я слышал. Только что. От тебя.
Сообщение Добавлено: Пн авг 18, 2014 17:43
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
Хищник писал(а):
gudleifr писал(а):По-моему, коллега, просто решил доказать мою неправоту, набрав большинство при голосовании..

Это заметно :)

Это глупо, потому бессмысленно. Всеравно gudleifr уйдет "потрепанным но непобежденным".
Мне же лень тратится на такую забаву, тем более, что это не сложно, не интересно, не полезно.

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

Наоборот, убрать схоластику и непонимание цель.

Есть многозначные термины, которые имеют несколько значений, и в разных предметных областях означают разное. Когда кто-то начинает пользоваться привычным термином вольно, теряется смысл и взаимопонимание (которого и так мало). Данный опрос начат для того, чтобы выяснить, как понимает большинство конкретный специфический термин, используемый в рамках Форта.
Потому как существуют устойчивые мемы: компиляция литерала, компиляция строки, компиляция адресной ссылки, компиляция структур управления, инкрементальная компиляция, целевая компиляция и др. Практически всегда под компиляцией подразумевается создание кода и\или формирование структур данных, а не их именование.

Таким образом, вопрос конкретен, и в схоластику превращать его не надо.
Сообщение Добавлено: Пн авг 18, 2014 15:04
  Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?  Ответить с цитатой
gudleifr писал(а):
По-моему, коллега, просто решил доказать мою неправоту, набрав большинство при голосовании..

Это заметно :) С одной стороны, правота голосованием не доказывается. С другой - голосование дает срез мнений, чтобы не было иллюзий о том, как считает большинство (пусть оно считает и неправильно).

Определения же имеет смысл давать с практическими целями. Например, мы разделили интерпретаторы и компиляторы. Теперь можно рассказать, как пишутся те и другие, описать основные алгоритмы, сравнить характеристики получаемых продуктов, трудоемкость их разработки и т.д. Тогда, выбрав компилятор, программист будет понимать, что выбирает продукт с определенными характеристиками "в целом". Если же определение практических целей не преследует, оно повисает схоластическим грузом.

Интересно, что мышление отдельного человека развивается по законам, схожим с развитием философской мысли как таковой. Своеобразный онтогенез. Для Форта это также заметно.
1. Поиск первоэлементов в Древней Греции. "Все есть огонь", "все есть вода", "все есть апейрон" - вплоть до пифагоровского "все есть число". Сравнимо с подходами "все есть объект", "все есть файл" и фортовскими "все есть слово", "все есть стек". Оно работает ровно до того времени, пока не возникает что-то, что неудобно выразить через выбранный первоэлемент, в результате чего возникает ступор и попытки проломить возникшее препятствие.

2. Средневековая схоластика. Интересный период, в котором церковные философы пытались лавировать между Библией, изречениями святых отцов и непосредственным начальством. С одной стороны, надо найти что-то новое, но с другой - святые отцы же сказали, значит, должно быть так! Отголоски видны на примере отсылок к Муру, Броуди, а также стихийно назначаемым "святым отцам Форта" - фортерам последующих волн, которые что-то написали, это было восторженно принято, в результате возникают требования учесть "вклад такого-то в развитии Форта".

3. Примитивный материализм Нового времени. Долой церковь, мы сами с усами. Труд "Человек-машина" декларирует возможность создания искусственного человека из шестеренок и рычагов, поскольку "все законы природы уже открыты". Есть и отражение в Форте - например, попытки написать универсальный компилятор или ФортОС, "потому что про Форт мы все уже знаем, значит, Форт может все".

4. Позитивизм 19 века. Поскольку теорий много, давайте выбирать правильные. Проверять, например (т.е. верифицировать). А чтобы проверить правильно, надо сначала проверить корректность того, чем мы будем проверять - и так до бесконечности. Вот здесь в данном случае обсуждение и застряло. Поскольку корректность отдельных утверждений не означает корректность всей системы, утверждения в науке не верифицируются, а фальсифицируются. Соответственно, теория не считается истинной, она считается пока не опровергнутой, и сопровождается условиями фальсификации (т.е. набором экспериментов, которые при успешном выполнении привели бы к опровержению положений теории). Проявляется в попытках написать универсальный стандарт, после которого все станет хорошо.

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

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

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

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

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

никакой путаницы.
сколь себя помню, называлось и называется таблица векторов прерываний.
Сообщение Добавлено: Пн авг 18, 2014 07:36

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


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