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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 31, 2008 11:58 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
mOleg писал(а):
А потом посмотреть, что из этого получилось, а главное, сможет ли этим полученным пользоваться кто либо кроме автора...


Я так и не понял, какие проблемы разобраться с форт-системой? (даже с кривой)
Лично у меня никогда никаких трудностей не возникало.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 14, 2008 16:06 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
На мой взгляд наиболее распространенным мифом в форте является утверждение о том, что форт-система может быть написана с нуля за несколько часов (максимум дней). Данное утверждение я в той или иной форме встречаю на протяжении всего моего знакомства с фортом, а это уже более 12 лет...
Это утверждение не миф, просто вы его воспринимаете слишком дословно. Дело не в абсолютном количестве дней/часов, а в сравнении с временными затратами на реализацию трансляторов/интерпретаторов других языков программирования. Обычно, именно это имеется ввиду - реализация интерпретатора Форта делается "за считанные дни" в сравнении, например, с Бейсиком.
mOleg писал(а):
Причем, на самом деле, ведь проблема не в самом утверждении, а в том, что оно, как бы само, распространяется на проект любой сложности.
Ну, если идет речь о создании новой рализации интерпретатора, то обычно имеется ввиду базовые возможности, поскольку полноценная среда разработки создается годами вне зависимости от выбранного языка, просто в силу своей обьемности, функциональности. Поэтому, про такое вообще говорят редко. ИМХО

_________________
Am I evil? I'm man - yes I am! © James Hatefield


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 14, 2008 16:19 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Раз уж речь о мифах, вспомнился еще один, весьма популярный. А именно, принято называть Форт мета-языком, или же мета-компилятором. При этом, возможность мета-компиляции представляется как уникальная особенность Форта.
Заблуждений в этом мнении два. Первое это сам термин, метакомпиляция или же целевая компиляция действительно звучат по особому в сравнении с другими языками, но не означают ничего уникального. Второе - практически все существующие компиляторы других языков умеют это делать, больше того - они только это (целевая компиляция) и делают, и называется этот процесс просто компиляцией. В Форте слово компиляция означает совсем другое действие, поэтому "классическая" компиляция называтся по другому.

_________________
Am I evil? I'm man - yes I am! © James Hatefield


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 14, 2008 22:39 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Forthware писал(а):
мета-языком, или же мета-компилятором

Мета-язык и мета-компилятор (целевой компилятор) это две абсолютно разные вещи. Странно что вы этого не понимаете.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 14, 2008 22:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Дурацкое 'мета' модифицирует слова не так как понятно,
а так как хочется тому, кто термин придумывает

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 01:36 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Модифицируют слова не "дурацкие мета", а незнание базовой терминологии - от того и выдумывает всяк во что горазд.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 04:07 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Forthware писал(а):
принято называть Форт мета-языком

Естественно! Ведь на нем можно описать себя! На это способен не каждый ЯП! ;)
Хотя большинство современных тоже могут.

Соответственно, метакомпиляция - компиляция собственного исходного текста компилятора.

А целевая компиляция - компиляция программы для выполнения под этой же или другой платформой - процессором и/или окружением. Возможны некоторые оптимизации программы для автономного выполнения.
Т.е. компиляция из-под DOS для выполнения в Win3.11 (Win32s) - целевая компиляция. Win3.11 - надстройка над DOS.

Удивляет, что большинство современных компиляторов (и SPF тоже :( ) не могут создать одинаковый код при компиляции 2 раза... ;) Кстати, мне в последнее время не попадалось ни одного компилятора, который смог бы такое сделать! И отличия не исчерпываются прописыванием времени компиляции в результирующий файл... :(

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 09:47 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
WingLion писал(а):
Дурацкое 'мета' модифицирует слова не так как понятно,
а так как хочется тому, кто термин придумывает

мета - приставка греческого происхождения, используется в значениях после, над, сверх, за, вне

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

очень полезная приставка, если быть осторожным 8)

применительно к языку должно означать по логике "язык, описывающий (компилирующий) язык"

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 13:00 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ygrek писал(а):
Мета-язык и мета-компилятор (целевой компилятор) это две абсолютно разные вещи. Странно что вы этого не понимаете.
Только не в Форте. Вернее, это конечно же разные вещи, но к Форту кличка метаязыка прилепилась именно тогда, когда Мур добавил в него ассемблер, и с его помощью скомпилил на одной машине, Форт для другой машины, причем все было сделанно в Форте, хоть и исходники Форта для новой машины были полностью на ассемблере (форт-ассемблере естественно). Вот именно это событие привело к тому, что многие начали называть Форт метаязыком, а компиляцию Форта в Форте метакомпиляцияей. Но даже сам Мур с этим не согласен, поскольку не смотря на то что в Форте можно скомпилировать интерпретатор Форта, сам язык не является языком описания языков, что на самом деле означет термин "метаязык". Тем не мение, большинство других фортеров приписали этот термин к Форту, термином метакомпиляция окрестили компиляцию Форта из под Форта, а термином целевая компиляция назвали то, что у всех компиляторов просто называется компиляцией. Порядок остался только с кросс-компиляцией, которая является частным случаем целевой компиляции для Форта, и иногда именуется именно так, как и у всех других языков.
Если не верите, почитайте Мура, он лучше знает как так получилось что форт вдруг стал "метаязыком". И хватит фантазировать. В форте нет средств для описания языков.
Чарльз Мур писал:
"I struggled with the concept of meta-language, language that talks about language. Forth could now interpret an assembler, that was assembling a compiler, that would compile the interpreter. Eventually I decided the terminology wasn't helpful, but the term Meta-compile for recompiling Forth is still used."
in4 писал(а):
Естественно! Ведь на нем можно описать себя! На это способен не каждый ЯП! Хотя большинство современных тоже могут.
Все компиляторы могут. Что касается интерпретаторов, то в них это делать не принято (в отличии от Форта), но тем не менее, любой интерпретатор имеющий возможность писать в файлы (например Бейсик) способен на это. Как? Просто - на нем пишется ассемблер и с его помощью, плюс средства языка, можно создать любую исполнимую программу, в том числе и интерпретатор любого языка (в том числе и самого себя). Не думайте что целевой компилятор можно написать исключительно на Форте. :)
Заметьте, метакомпиляция, или же целевая компиляция вцелом, в Форте не возможна без ассемблера или же непосредственного использования кодов машинных комманд целевой архитектуры (без этого вы не создадите целевой компилятор). В то время, как в любом другом компиляторе вы можете делать мета-компиляцию исключительно средствами языка высокого уровня.
in4 писал(а):
Соответственно, метакомпиляция - компиляция собственного исходного текста компилятора. А целевая компиляция - компиляция программы для выполнения под этой же или другой платформой - процессором и/или окружением. Возможны некоторые оптимизации программы для автономного выполнения. Т.е. компиляция из-под DOS для выполнения в Win3.11 (Win32s) - целевая компиляция. Win3.11 - надстройка над DOS.
Да, совершенно верно. Поэтому метакомпиляция является всего лишь частным случаем целевой компиляции, когда компилируем именно сам Форт а не прикладную программу.

вопрос писал(а):
применительно к языку должно означать по логике "язык, описывающий (компилирующий) язык"
Совершенно верно. Метаязыками называют языки ориентированные на создание новых языков программирования а не прикладных программ, и соответственно обладающие необходимыми для этого средствами, такими, напремер, как описание произвольного синтаксиса.

_________________
Am I evil? I'm man - yes I am! © James Hatefield


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 15:27 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Сразу предупреждаю, спорить о терминологии предоставляю г-ну Forthware, вслед за «проблемой шитого кода».
Оба термина «Мета-компиляция» и «мета-язык» полноправно можно отнести к Форту, хотя, разумеется, они не представляют собой нечто уникальное(Форт состоит не из каких-то самобытных элементов, а из уникального сочетания элементов вполне традиционных).
1. Мета-компиляция.
Форт, порождающий Форт. Или компилятор C, порождающий C. Однако не каждый язык программирования это умеет. Во всем остальном мире это называется bootstraping(раскрутка).
2. Мета-язык.
Язык, описывающий язык. Дополнительный смысл: расширяемый язык, язык для написания DSL.
Примером мета-языка является всем известная BNF. Интерпретаторы BNF на Форте, думаю, тоже видели все. «Мета-язык» это то, что роднит Форт с Лиспом. Использование этой возможности — залог того, что программирование на Форте из разряда «кодирование для виртуальной стековой машины» перейдет в нечто более высокоуровневое.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 17:45 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
true-grue писал(а):
разумеется, они не представляют собой нечто уникальное
Вот именно. А миф как раз таки в том, что они уникальны вот и все.
true-grue писал(а):
Однако не каждый язык программирования это умеет.
Какой не умеет?
true-grue писал(а):
Примером мета-языка является всем известная BNF.
Верно.
true-grue писал(а):
Интерпретаторы BNF на Форте, думаю, тоже видели все.
BNF парсер можно написать на совершенно любом языке программирования (большинство и так написано не на Форте), но это не сделает его мета-языком. Или же тогда, вообще все языки это метаязыки. Сам по себе Форт не имеет средств для описания языков, поэтому в плане "метаязычности" ничем не отличается от конвенциональных языков программирования.
true-grue писал(а):
«Мета-язык» это то, что роднит Форт с Лиспом. Использование этой возможности — залог того, что программирование на Форте из разряда «кодирование для виртуальной стековой машины» перейдет в нечто более высокоуровневое.
Во первых - Лисп не есть мета-язык, во вторых, переход в нечто более высокоуровневое не имеет никакого отношения к переходу от языка программирования до метаязыка.

З.Ы. Чтобы не обсуждать терминологию - я ведь про миф говорил не в плане не верных терминов, не в этом суть самого мифа, отнюдь. Дело в том, что форту в данном случае, многие считают, что эти (как бы их не называли) свойства Форта уникальны, при том что они являются обычними и ежедневно используемыми возможностями большинства других компиляторов.

_________________
Am I evil? I'm man - yes I am! © James Hatefield


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 18:32 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Уважаемый Forthware, чуть выше Вам намекнули, что смешивать понятия метаязык и метакомпилятор не следует. Вы же, в худших флеймовых традициях, в ответ посоветовали своему оппоненту читать Мура и перестать фантазировать. Красиво ли это?
Если для Вас «Лисп не есть метаязык», то все, что я писал на эту тему применительно к Форту автоматически теряет силу. Спорить с этим Вашим утверждением считаю бессмысленным. Напрасно некоторые думают, что можно чему-то научиться участвуя во флеймах на форумах...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 19:22 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
true-grue писал(а):
Уважаемый Forthware, чуть выше Вам намекнули, что смешивать понятия метаязык и метакомпилятор не следует.
Где я их смешиваю?
true-grue писал(а):
ответ посоветовали своему оппоненту читать Мура и перестать фантазировать.
Потому что Мур не считает Форт метаязыком, а компиляцию Форта мета-компиляцией.
true-grue писал(а):
Если для Вас «Лисп не есть метаязык», то все, что я писал на эту тему применительно к Форту автоматически теряет силу.
Если для вас Лисп есть метаязык, буду рад увидеть этому какое либо подтверждение. Иначе...
true-grue писал(а):
Спорить с этим Вашим утверждением считаю бессмысленным.
Укажите источник считающи Лисп метаязыком, спорить не надо.
true-grue писал(а):
Напрасно некоторые думают, что можно чему-то научиться участвуя во флеймах на форумах...
Ну, ну, все дураки один тру-гру знает истину. Так поделитесь ею! Все будут рады. :D

_________________
Am I evil? I'm man - yes I am! © James Hatefield


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 20:19 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Ищите информацию на тему:
1. S-выражения и M-выражения,
2. спор Маккарти и Рассела по поводу определения eval,
3. Эквивалентность данных и кода, трансформация и специализация програм(метапрограммирование), metacircular evaluation.

Все можно сделать на машине Тьюринга. Следует только помнить закон диалектики: переход количества в качество.

P.S. Попытки изобразить непонимание, а также переход на личности сознательно игнорирую.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 15, 2008 21:35 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Ничто не мешает вкладывать в термин собственный смысл, главное, чтобы это было удобно (иначе термин не нужен, можно что-то Ваней Ивановым назвать вместо метакомпилятора) и обоснованно.

_________________
понимаю некоторую бестолковость некоторых вопросов


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

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


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

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


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

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