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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Пн авг 18, 2014 17:43 
mOleg писал(а):
Практически всегда под компиляцией подразумевается создание кода и\или формирование структур данных, а не их именование.
Кейси Райбек писал(а):
Да, я слышал. Только что. От тебя.


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

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Википедия:
------------

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

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

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

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

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


Последний раз редактировалось mgw Вт авг 19, 2014 20:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Вт авг 19, 2014 20:46 
mgw писал(а):
Например "целевая компиляция" .... не ясно, что это.
Это та самая компиляция "по Вики-определению".
А, вообще, лучше уж ГОСТ (пусть и страны, погибшей по незнанию кибернетики), чем Википедия.


Последний раз редактировалось gudleifr Пн дек 08, 2014 21:57, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Вт авг 19, 2014 20:57 
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


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

Зарегистрирован: Пт май 04, 2012 12:21
Сообщения: 14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Извините, что встреваю. Но мне кажется, что здесь все перепутано.
Если рассматривать инструментальную форт систему, то там все четко пояснено, есть фазы компиляции и интерпретации.
А вот как это все понимать для форт системы микроконтроллера??


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что означает термин КОМПИЛЯЦИЯ применительно к Форту?
СообщениеДобавлено: Вс дек 07, 2014 23:29 
victosha писал(а):
А вот как это все понимать для форт системы микроконтроллера??
Сначала надо определить "форт систему" и "микроконтроллер". Это не издевательство. Иначе на Ваш вопрос ответить невозможно.


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

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

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


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

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
victosha писал(а):
Извините, что встреваю. Но мне кажется, что здесь все перепутано.
Если рассматривать инструментальную форт систему, то там все четко пояснено, есть фазы компиляции и интерпретации.
А вот как это все понимать для форт системы микроконтроллера??

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

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

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


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

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


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

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


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

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