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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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


Что сделать, чтобы не обсуждать повторно этот же вопрос?
Может, как то это отмодерировать?


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

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

это не совсем тот же вопрос ;) просто я сослался на предыдущее обсуждение (чем-то похожее)

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


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

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

это не совсем тот же вопрос ;) просто я сослался на предыдущее обсуждение (чем-то похожее)


Похоже сами критерии оценки языков "по пунктам" и не обозначены.
кроме уровня абстрагирования языка от ассемблерного базиса

Например:

Удобство оперирования базисом ключевых слов
(
их количество,
семантическая и синтаксическая взаимозависимость,
степень "приспособлености" для оперирования с n-ой предметной областью,
лёгкость восприятия семантики программного кода
)

P.S. Какие ещё критерии?


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Наличие системы разработки :)
ЗЫ - вот посмОтрите как, например, язык Boo будет рынок захватывать.....


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

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

Потом задача чуть-чуть меняется...

Следует заметить, что классификация языков программирования - до сих пор нерешённая (и возможно никогда не решаемая чётко) теоретическая задача. Потому проводить критерии достаточно сложно.

Всё же позволю себе...
Главным критерием должно быть то "что уже сделано и не должно быть сделано снова"

в этом смысле языки делятся на
1. Языки с понятным наглядным синтаксисом (С, Паскаль)
2. Языки с готовым решением некоторого класса задач или ориентированные на 1 структуру данных (JavaScript - ориентирован известно на что)
3. Языки с встроенным "двигателем" - виртуальной машиной и т.п. (Пролог, вообще декларативные языки)

Кто пишет на С - не должен задумываться, как реализовать цикл
Кто пишет на JavaScript - не должен задумываться, что такое frames[number].document.write()
Кто пишет на декларативных языках - задумываются только над оформлением условий поиска решения, пользуясь готовым оптимизированным мезанизмом (виртуальной машиной)

Куда же отнести Форт?

Поскольку приходится моделировать более-менее сложные циклы и обращение к элементам массива - к первому типу не получится
Поскольку готовых высокоуровневых структур данных тоже нет - не получится и ко второй группе.
С третьей группой тоже получается не полное соответствие
... сделаем отступление - форт не попал в высокоуровневые языки :D ... поэтому его и называют разновидностью ассемблера
Так что же с третьей группой?
Форт как бы принадлежит к третьей группе - он имеет встроенный механизм - виртуальную машину.
ОДнако ... :shock: :) эта встроенная машина ни от чего не освобождает - программист во всех случаях вынужден полностью контролировать процесс, так, словно он есть создатель этой машины и трудно представить себе задачу на форте, где не приходилось бы изучать исходники этой самой виртуальной машины. Это означает, что труд фортера таковая машина не экономит (подобно тому, как экономится труд при программировании баз данных - программист даёт задачу и ... всё)

:wink:

Forth предположительно должен быть базой для создания высокоуровневых языков, не так ли?
Тогда сам Форт - не язык.
Но много ли мы знаем языков, реализованных, созданных на базе форта?
Тут проблема в том, что не только реализация языка высокого уровня, но даже создание концепции такого языка - вещь весьма нетривиальная, требующая значительных усилий, потому языков не так много.

Как только возникает такая задача, которая требует отдельного языка, (скрипты для интернета или обработка текста) как тут же находится кто-то, кто готов создать язык не на базе форта, а прямо из ассемблера (или как-то ещё) , причём язык из групп 1,2, или 3 : решение задач на таких языках становится для новоявленных специалистов делом привычным и ясным, форт тут совсем не при чём

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

форт стал бы "преуспевающей" технологией, если бы нашлось решение, как добавить к нему средства
"сведения нетривиальных задач к тривиальным"


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

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

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

Postscript, Joy, Factor, Forpost, MSIL?
вопрос писал(а):
решение задач на таких языках становится для новоявленных специалистов делом привычным и ясным, форт тут совсем не при чём

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

Нетривиальные задачи и так сводятся в Форте к тривиальным путем создания DSL. Если же речь о регулярном вбирании в себя библиотек поддержки тех или иных технологий - это вряд ли произойдет.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Postscript, Joy, Factor, Forpost, MSIL?
:D Это - не "на базе", "на базе" - это "оставаясь зависимым"
или (внимание) "оставаясь производным"

Хищник недочитал.

Цитата:
Программист в любом случае что-то контролирует.
Да, но не всю ВМ.

Цитата:
Нетривиальные задачи и так сводятся в Форте к тривиальным путем создания DSL.

domain-specific programming language - нетривиальный


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

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


Мирится не обязательно. Можно использовать типа

Хищник писал(а):
Postscript, Joy, Factor, Forpost, MSIL?


Какое отношение перечисленное, имеет к Форту?


Последний раз редактировалось Mihail Вс сен 20, 2009 13:37, всего редактировалось 1 раз.

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

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

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

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Это - не "на базе", "на базе" - это "оставаясь зависимым"
или (внимание) "оставаясь производным"

Если "на базе", то любая программа на Форте представляет собой язык на базе Форта.
вопрос писал(а):
Цитата:
Программист в любом случае что-то контролирует.
Да, но не всю ВМ.

Ну уж всю ВМ на Форте контролировать не надо. В простейшем случае достаточно помнить, что лежит на стеке, но программа в любом случае сама не пишется. Надо что-то куда-то класть, доставать оттуда, комбинировать и т.д.
вопрос писал(а):
domain-specific programming language - нетривиальный

Почему же? Например, заменяем запись в ячейку 123 словом.

Код:
: SET-MODE  123 ! ;

3 SET-MODE

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Mihail писал(а):
Хищник писал(а):
Тот факт, что стековая машина весьма уязвима к некорректным действиям в рантайме - ну что ж, приходится мириться

Мирится не обязательно. Можно использовать

Мне просто уже из любопытства - ты вообще рассматриваешь хотя бы небольшую вероятность того, что развитие Форта не крутится вокруг тебя и твоих программок? :)
Mihail писал(а):
Хищник писал(а):
Postscript, Joy, Factor, Forpost, MSIL?

Какое отношение перечисленное, имеет к Форту?

Разве так сложно посмотреть, что это такое?


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Если "на базе", то любая программа на Форте представляет собой язык на базе Форта.

Я ценю юмор...
Postscript, Joy, Factor, Forpost, MSIL - самостоятельные сущности, для работы с ними не нужно изучать форт

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

Цитата:
Даже такая простейшая обертка является элементом DSL

Тогда любой макрос С


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Postscript, Joy, Factor, Forpost, MSIL - самостоятельные сущности, для работы с ними не нужно изучать форт

Однако очень полезно. Тем более что ряд особенностей этих языков может быть объяснен тем, что взяли Форт и улучшили/изменили какой-то аспект.
вопрос писал(а):
Я имел ввиду (и, кажется, это должно быть очевидно), что форт должен быть постоянным средством "доработки" языка. только тогда можно сказать "на базе", иначе - все языки "на базе" ассемблера? Или компилятор С, сделанный на JavaScript (есть и такое) - это "на базе"?

Смотря что понимается под выражением "на базе"? Транслятор одного языка написан на другом? Тогда Haskell, Lisp, Prolog - языки на базе Си. Видимо, имеется в виду все же близость грамматики, тогда C, C++, C# - языки одной группы. Из тех же соображений близки Форт и MSIL (во втором dup и drop перекочевали в неизменном виде, а стековые операции называются иначе, но имеют полностью совпадающую семантику).
вопрос писал(а):
Цитата:
Даже такая простейшая обертка является элементом DSL

Тогда любой макрос С

Да, макрос С тоже является элементом DSL. Другое дело, что макросы имеют существенные ограничения по сравнению со словами Форта.


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

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


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

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


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

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


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

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


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

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