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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: о критериях оценки языков программирования.
СообщениеДобавлено: Чт май 08, 2008 10:16 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Для начала тезис:
Наиболее удобным языком программирования для конкретной задачи будет тот, на котором
можно выразить алгоритм этой задачи наиболее простым, понятным и естественным образом.
(если вы с ним не согласны, дальше можете не читать).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт май 08, 2008 10:17 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Преамбула вобщем-то написана лишь для того, чтобы определиться с тем, к какому же разряду отнести язык Форт. Потому что с одной стороны, форт явно имеет более высокий уровень абстракции, чем ассемблер, хотя и не во всем (взять те же DROP DUP SWAP), с другой стороны сам язык не ограничен сверху ничем за счет возможности повышать уровень абстракции
за счет включения в себя DLS подмножеств, но что интересно, не ограничен и снизу!. Собственно, мне кажется, что Форт - это Язык в более широком смысле, нежели остальные языки программирования.
Форт более похож на живой человеческий язык - в этом его сила и в этом же его проблема, так как на человеческих языках достаточно легко оказаться непонятым.

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


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

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mOleg писал(а):
Форт - это Язык в более широком смысле, нежели остальные языки программирования.


Согласен. Forth - живой язык.


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

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Живой в том смысле, что при появлении новой сущности появляется новое слово.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт май 08, 2008 10:29 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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

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


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

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

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


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

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

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


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

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

почему же? пользуются, просто без фанатизма обычно.

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Форт интересен уже только тем, что позволяет модифицировать сами средства своей модификации, чего не может например ассемблер. Форт по сути это исполняемый в цикле макроассемблер у которого есть доступ к модификации своего движка из входного для него потока. Отсюда все возможности: от изменения "понимания" входного потока(введение новых синтаксисов) и изменения техники компиляции(оптимизация) до повышения семантической мощности
лексических единиц языка до уровня, достаточного для решения задачи практически любой сложности.

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


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

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

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
mOleg писал(а):
вот с оценкой форта, как макроассемблера я не согласен абсолютно, хотя бы по той причине, что форт навязывает еще и модель взаимодействия внутри себя, а так же существует в рамках некой виртуальной машины, которая достаточно стандартизирована.

Это узкое по моему мнению понимание Форта. Форт может на ходу(в рантайме) сменить и виртуальную машину и модель
взаимодействия.

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


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
mOleg писал(а):
Преамбула вобщем-то написана лишь для того, чтобы определиться с тем, к какому же разряду отнести язык Форт.


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

P.S. Прочитав статью:Сценарии: высокоуровневое программирование для XXI века http://www.osp.ru/os/1998/03/179470/ где описывается
история и возможности Tcl привело к мысли, что синтаксис и базис
языка должен быть, как можно проще. Форт можно дополнить некоторыми
концепциями из Tcl, не только интерфейсом к GUI.
Еще немного интересного по Tcl http://tclstudy.narod.ru/articles/index.html
Книг на русском языке издано мало ( единицы )


Последний раз редактировалось Kopa Чт май 08, 2008 13:13, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт май 08, 2008 12:36 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


собственно, для себя определение я уже написал давно: Форт - это алгоритмическая языковая среда с единообразным механизмом обмена данными...

то есть я считаю, что форт не совсем ЯП ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт май 08, 2008 12:38 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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

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


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
mOleg писал(а):
Kopa писал(а):
что синтаксис и базис языка должен быть, как можно проще.

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


Примечание: Проще это не значит примитивнее, а достаточно обозримо и удобно
в применении.

Форт может трансформироваться в DSL, при необходимости, но все же, он
сам достаточно гибок и в том виде, как есть может применяться для решения
DSL - специфичных задач.


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

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


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

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


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

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