Forth
http://fforum.winglion.ru/

Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
http://fforum.winglion.ru/viewtopic.php?f=9&t=3019
Страница 2 из 2

Автор:  gudleifr [ Пн авг 18, 2014 13:23 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

Хищник писал(а):
Иначе процесс обсуждения выродится в схоластику.
Уже. Причем, еще в той теме, откуда эта отпочковалась. По-моему, коллега, просто решил доказать мою неправоту, набрав большинство при голосовании...

Автор:  Hishnik [ Пн авг 18, 2014 13:55 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

gudleifr писал(а):
По-моему, коллега, просто решил доказать мою неправоту, набрав большинство при голосовании..

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

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

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

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

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

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

5. Дальше мы пока не пойдем, но этот момент обязательно возникнет при попытке дать определение компиляции. Связан этот этап с понятием "чайник Рассела". Допустим, что вокруг Солнца летает чайник. Летает он так, что его не видно в телескоп, он не создает гравитационных возмущений, и вообще не наблюдается, не влияет и т.п. Следует ли рассматривать теории о его цвете, размере, наличии блюдца и т.п.? Какие конкретные шаги последуют за выводом, что чайник маленький, фарфоровый и на блюдце?

Автор:  mOleg [ Пн авг 18, 2014 15:04 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

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

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

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

Таким образом, вопрос конкретен, и в схоластику превращать его не надо.

Автор:  mOleg [ Пн авг 18, 2014 15:08 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

Хищник писал(а):
gudleifr писал(а):По-моему, коллега, просто решил доказать мою неправоту, набрав большинство при голосовании..

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

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

Еще раз, вопрос конкретный:
как большинство понимает термин компиляция в рамках специфики Форта.

Автор:  gudleifr [ Пн авг 18, 2014 17:43 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

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

Автор:  mgw [ Вт авг 19, 2014 20:29 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

Википедия:
------------

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

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

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

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

P.S. Все представляют автомобиль и принцип его работы. Термины: ==> зажигание, свечи, цилиндры поршни и т.д. У нас Форт, немного уникальный, совсем немного, но это тот же автомобиль :) Для примера, пусть Форт будет мотоциклом. Если мы начнем придумывать свои термины .... как описать работу мотора? Вот и получается ( :D по gudleifr ) Прыгалки в горячих горшках скачут используя искромет и вспихивающий эфир .... А если переопределить существующие термины .... вообще ужас получится .....

Автор:  gudleifr [ Вт авг 19, 2014 20:46 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

mgw писал(а):
Например "целевая компиляция" .... не ясно, что это.
Это та самая компиляция "по Вики-определению".
А, вообще, лучше уж ГОСТ (пусть и страны, погибшей по незнанию кибернетики), чем Википедия.

Автор:  Zinger [ Вт авг 19, 2014 20:57 ]
Заголовок сообщения:  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

Автор:  victosha [ Вс дек 07, 2014 21:43 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

Извините, что встреваю. Но мне кажется, что здесь все перепутано.
Если рассматривать инструментальную форт систему, то там все четко пояснено, есть фазы компиляции и интерпретации.
А вот как это все понимать для форт системы микроконтроллера??

Автор:  gudleifr [ Вс дек 07, 2014 23:29 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

victosha писал(а):
А вот как это все понимать для форт системы микроконтроллера??
Сначала надо определить "форт систему" и "микроконтроллер". Это не издевательство. Иначе на Ваш вопрос ответить невозможно.

Автор:  gudleifr [ Пн дек 08, 2014 18:20 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

Спрошу по другому.

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

Допустим, здесь машина - МК.
А FORTH-система?

Автор:  Ethereal [ Сб дек 13, 2014 14:26 ]
Заголовок сообщения:  Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?

victosha писал(а):
Извините, что встреваю. Но мне кажется, что здесь все перепутано.
Если рассматривать инструментальную форт систему, то там все четко пояснено, есть фазы компиляции и интерпретации.
А вот как это все понимать для форт системы микроконтроллера??

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

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

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

Страница 2 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/