Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн июн 25, 2018 12:23

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Интерпретация и компиляция в Форте
СообщениеДобавлено: Пт янв 22, 2010 16:31 
Не в сети

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Википедия писал(а):
Уникальным является язык Forth, который способен работать как в режиме интерпретации, так и компиляции входных данных, позволяя переключаться между этими режимами в произвольный момент, как во время трансляции исходного кода, так и во время работы программ.


Интересует такой вопрос: в чем преимущества этой уникальности при написании програм для ПК (например, игрушек, приложений с ГрИн[граф.польз.интерф.], железо-ориентированных, интернет-ориентированых)? И еще более хочу узнать: в чем недостатки?


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2107
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
danbst писал(а):
в чем преимущества этой уникальности при написании програм для ПК

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

Недостатки в том, что в Форте эффективно можно работать если ты уже в нем до этого эффективно работал. :)
А точнее - имеешь тобой-же созданную инфраструктуру в виде библиотек для тех предметных областей которые хорошо
знаешь потому, что в них и работаешь(ну те же игрушки, например). Эти наработки ты должен сделать сам, их нигде готовых по большому счету нет.
Форт в первую очередь не для программистов, а для программирующих специалистов. Объем самой форт-системы остается ничтожно малым
по сравнению с уже упомянутой инфраструктурой.

_________________
С уважением, chess


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

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Цитата:
Да по большому счету ни в чем.

Грустно.

Тогда такой вопрос: где в промежутке
быстро --------------- Скорость исполнения байткода Питон программы --------------- медленно
лежит "Скорость исполнения Форт-программы"?


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
danbst писал(а):
Тогда такой вопрос: где в промежутке
быстро --------------- Скорость исполнения байткода Питон программы --------------- медленно
лежит "Скорость исполнения Форт-программы"?


Какой именно форт-программы - не указано в вопросе.
А значит и ответа нет, потому что разные форт-программы имеют скорости, как внутри указанного промежутка, так и вне его.

"Программа на Форте работает быстрее программы на ассемблере, потому что обращается к регистрам напрямую, минуя процессор" (с)... (смайлик выбрать по вкусу)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интерпретация и компиляция в Форте
СообщениеДобавлено: Пт янв 22, 2010 18:44 
danbst писал(а):
Википедия писал(а):
Уникальным является язык Forth, который способен работать как в режиме интерпретации, так и компиляции входных данных, позволяя переключаться между этими режимами в произвольный момент, как во время трансляции исходного кода, так и во время работы программ.


Нет отдельного макропроцессора и существует доступ языка ко всей внутренней инфраструктуре
при компиляции и транляции ( и интерпритации )


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 22, 2010 18:46 
Не в сети

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Да, вопрос неточный. И вообще неясный... На то я и новичек )


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 22, 2010 18:51 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4920
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
danbst писал(а):
Интересует такой вопрос: в чем преимущества этой уникальности при написании програм для ПК

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

Преимущество у Форта - это простота, масштабируемость, гибкость.
Недостаток - язык, как никакой другой, требует от программиста высокой самодисциплины.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 22, 2010 18:55 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4920
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
mOleg писал(а):
уникальным является не возможность работы в двух режимах

Кстати, эта особенность не присущя всем Фортам! То есть совсем недавно была ссылка на систему, работающую только в режиме компиляции, точно так же возможны(и есть) системы только интерпретирующие, однако умеющие компилировать :)
А вообще, попробуйте почитать о том, что такое форт в разеле статей.
например, что такое форт

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6334
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
danbst писал(а):
Интересует такой вопрос: в чем преимущества этой уникальности при написании програм для ПК (например, игрушек, приложений с ГрИн[граф.польз.интерф.], железо-ориентированных, интернет-ориентированых)?

Очень много можно делать в интерактивном режиме - либо прямо с консоли, либо запуская маленькие текстовые файлики. У проекта, таким образом, делается в основном "сущностная" часть, а интерфейс появляется потом. Если бы не было Форта, пришлось бы, к примеру, для игрушки сначала делать движок и средства отображения и управления, а уже только потом смотреть, насколько оно играбельно.
Насчет интернета не скажу, а вот железо на Форте отлаживать просто прекрасно.
danbst писал(а):
И еще более хочу узнать: в чем недостатки?

Необходимо выстраивать проект с нуля, нет устоявшейся инфраструктуры в виде библиотек и средств разработки.


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2107
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
danbst писал(а):
Тогда такой вопрос: где в промежутке
быстро --------------- Скорость исполнения байткода Питон программы --------------- медленно
лежит "Скорость исполнения Форт-программы"?

Не знаю скоростных характеристик программ на разных Питонах, но думаю что такая форт-система как VFS даст
более быстрый код.
Так как любая некоммерческая Форт-система, как правило, имеет открытый код, то встроить оптимизирующие средства
в нее для фортера совсем уж больших трудностей не представляет. Кроме того всегда есть более дешевый вариант - сделать нужные
ассемблерные вставки. В этом смысле форт позволяет достигнуть предельного возможного быстродействия кода программы.

_________________
С уважением, chess


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

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Хорошая новость: практически любая вменяемая реализация форта окажется заметно быстрее Python'а без «психа». Хотя бы за счёт отсутствия многочисленных проверок типов, необходимых для «утиной типизации». (А с psyco питон быстр, но зело прожорлив до памяти).

Плохая. В Форте нет вообще никакой типизации, программист должен следить за этим сам (или посредством подключаемой либы). Ну и хотя для форта вполне возможно написание очень качественного оптимизатора на уровне лучгих реализаций языков типа C++ (см. напр. сюда), чаще всего при оптимизации ограничиваются inlinом коротких определений и простейшим «щелевым» объединением близлежащих маш. кодов. Потому обычно форт медленнее С/C++.

Есть ещё язык Фактор (http://factorcode.org) — смесь форта и Common Lisp'a. Вернее даже не просто CL, а его супероптимизированной реализации SBCL. Динамически типизированный, функциональный и полностью объектно-ориентированный — готов для практического применения в вебе (и на десктопе тоже). Поскольку factor как и SBCL и некоторые форты — это оптимизирующий итеративный компилятор (т.е. для пользователя это работает как интерпретация), то тоже быстрее питона (но медленнее форта с хорошим оптимизатором). Где то так.


Последний раз редактировалось be_nt_all Вс янв 24, 2010 02:51, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 00:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4920
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
be_nt_all писал(а):
Плохая. В Форте нет вообще никакой типизации

все же это не совсем так.
1) не плохая, а скорее непривычная для многих
2) типизация есть, хотя и своеобразная. Например, идентификаторы пространств имен складываются в стек контекста, и с ним работают специальные слова, то же касается типа чисел с плавающей точкой, и подобное. Так же есть конвертация типов, только она не носить принудительного характера, то есть надо указывать ее лишь тогда, когда она нужна (например, S>D SD* SD+ и другие).
Вобщем, одним словом "нет типизации" не отделаешься.

Форпост действительно интересный проект. И все же я бы его больше сравнил с постскриптом.

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


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

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
mOleg писал(а):
1) не плохая, а скорее непривычная для многих

Да. Для многих (системных) задач (классически решаемом на чистом Си) без типизации можно обойтись легко.

mOleg писал(а):
2) типизация есть, хотя и своеобразная. Например, идентификаторы пространств имен складываются в стек контекста, и с ним работают специальные слова, то же касается типа чисел с плавающей точкой, и подобное. Так же есть конвертация типов, только она не носить принудительного характера, то есть надо указывать ее лишь тогда, когда она нужна (например, S>D SD* SD+ и другие).
Вобщем, одним словом "нет типизации" не отделаешься.


То есть в форте из коробки есть типизация посредством использования раздельных стеков?

mOleg писал(а):
Форпост действительно интересный проект. И все же я бы его больше сравнил с постскриптом.

Вот форпост Петра Советова, и вправду, наверно, ближе к постскрипту :) . Хотя бы по названию. А в Факторе Славы Пестова от постскрипта только управляющие конструкции (как лучше соответствующие ФП). А так, из всех современных «постфортов» по синтаксису и гибкости, имхо, Фактор к форту достаточно близок . Рассматривая Фактор и его «стандартную библиотеку» (где кончается одно, и начинается другое, определить крайне трудно), помимо влияния Форта, Лиспа и изрядной порции Смолтока, можно найти артефакты не только постскрипта, но и, скажем, Хаскеля иои Окамла...

зы. Пошёл рассматривать форпрст... Любопытно же.


Последний раз редактировалось be_nt_all Вс янв 24, 2010 01:58, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 24, 2010 21:48 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4920
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
и еще, все же главное преимущество Форта в комбинации возможностей:
1) простоты реализации (какой еще язык так просто реализовать?)
2) легкости модификации в том числе основ языка (что вообще уникально)
3) естественного и легкого повышения уровня абстракции во время решения задачи
4) легкости импортирования любых идей из любого другого языка
5) очень небольшому размеру кода
6) "близости к железу" одновременно с пунктом 3
7) высокой эффективности трансляции текста, интерпретации кода

с другой стороны, возвращаясь обсуждаемой ранее статье, в том же постскрипте есть и динамическая проверка типов данных, и активная работа с хипом. Уже упомянутый Форпост тоже при достаточной простоте дает решить поставленные задачи в статье.

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


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

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
*вернемся к нашим баранам*

Почитал еще раз Броуди, парочку статтей, исходники SP-Forth-а, исходник FreeForth-а и понял, что я хотел сдесь узнать =). Оказывается, я неправильно понимал суть компиляции-интерпретации. Попробую по-иному выразить свои вопросы.

В режиме интерпретации интерпретатор берет слово, ищет в словаре и исполняет его.
В режиме компиляции интерпретатор берет слово, ищет в словаре его адрес и дописывает к текущей словарной статье в виде cfa (вроде так).
Код:
: NEW-WORD 1 [ VARIABLE NEW-VAR ] . ;

Обьясните пожалуйста, 1) почему SP-Forth не видит слова NEW-WORD и 2)что находиться в памяти словаря (какие данные) после статьи NEW-VAR.

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

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


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

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


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

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


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

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