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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Языковая среда программирования.
СообщениеДобавлено: Пн апр 27, 2009 05:06 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Языковая среда программирования.

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

Но что же такое Форт, если он не язык программирования?

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

Итак, у нас есть слова, которые могут взаимодействовать друг с другом (взаимодействие слов друг с другом обеспечивает среда). Слова сами по себе, это некие последовательности символов, которые являются ключами в сетевой базе данных (далее просто БД). Причем, каждое слово определено с помощью других слов, то есть является описанием того, что же представляет собой данное слово, и как оно должно себя вести в случае его использования (а это уже как бы из области ИИ – есть такое понятие «продукции», что очень близко к Форту).

Понятно, что описывать новые слова можно только на основе уже существующих, но, для этого нужно иметь некое полноценное качественное количество слов-понятий уже существующих в системе. Такие базовые слова должны, во-первых, позволять вводить любые новые определения, а во-вторых, поддерживать сам процесс введения этих самых новых определений. То есть нам необходима некая (интер)активная среда, понимающая слова и реагирующая на них адекватным образом – это и есть ФОРТ! И, хотя, есть Форты, не имеющие интерактивной среды, они, по сути, Фортом уже не являются, так как недостаточно одного лишь наследования синтаксиса и вторичных особенностей реализации. Ну, представьте себе только компилирующий (как это делает Си, Фортран, и подобные ЯП) [url=http://ru.wikipedia.org/wiki/Пакетный_файл]cmd[/url] или rexx или [url=http://ru.wikipedia.org/wiki/Командная_оболочка_UNIX]sh[/url]! Ведь они потеряют весь смысл своего существования, так как именно интерактивность – основа их существования и залог их необходимости. У Форта интерактивность тоже базовая особенность, то есть основополагающая.

То есть, я утверждаю, что ФОРТ – это интерактивная языковая среда!

Причем среда живая, имеющая возможность постоянно развиваться, совершенствоваться; однако и деградировать, и разрушаться так же способна. И не обязательно среда программирования – часто просто управляющая среда или диалоговая система.

В результате, на определение новых понятий (то есть слов) в Форт-среде налагаются обычные для любого живого человеческого языка ограничения с одной стороны, и с другой стороны ограничения, налагаемые реализацией самой интерактивной среды, то есть те самые вторичные особенности реализации.

А какие в естественном живом языке есть ограничения?

Ограничения:
1) слишком длинные и сложные определения сложно удержать в памяти, а значит понять;
2) даже простые выражения могут быть поняты не правильно в случае неточного их определения;
3) даже точные определения могут содержать ошибки (смысловые, идеологические, синтаксические);
4) одно и то же по звучание и написанию слово может использоваться по-разному в зависимости от контекста использования;
5) разные по звучанию и написанию слова могут означать одно и то же;
6) разные по определению слова могут звучать одинаково и при этом находится в одном контексте.

Давайте возьмем классический пример некорректного определения на родном (Русском) языке некоего действия:
«на доске булка, принеси ее»
Теперь попытайтесь ответить на вопрос: что же надо принести? Я бы принес доску с булкой – так надежнее. Но как быть, если скажут: “снаряд в танке, тащи его сюда.” – ведь речь может идти только о том танке, в котором есть снаряд, а может о снаряде, который в конкретном танке, а танки, они ведь тяжелые. Таких примеров из жизни каждый может привести множество (подумав конечно – мы не всегда их замечаем)!
Вот еще один подобный диалог:
- не подскажете, который час?
- да. <и отвечающий молча пошел дальше, не глядя на часы>

Что же произошло в последнем случае? А то, что вопрос в себе уже содержал отрицательный ответ, кстати, отвечающий мог бы ответить с тем же успехом: «нет» - и был бы прав. С точки зрения языка выражения: «да, не подскажу» и «нет, не подскажу» - равнозначны! К чему столь долгое лирическое отступление? Да к тому, что: «кто ясно мыслит – тот ясно излагает» - полностью относится к работе в Форте – точно так же, как в естественном живом языке человеческого общения.

Но давайте пойдем дальше. Все ли понятия можно выразить на любимом нами родном человеческом языке одинаково просто и понятно? Нет, увы, опыт показывает, что даже простые выражения могут быть восприняты (оттранслированы) неверно, выше только что было два таких примера. Что уж говорить о специальных областях, где понятия гораздо сложнее, а определения длиннее!

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

Следующая проблема, с которой мы сталкиваемся, заключается в том, что нам начинает не хватать собственного словаря для использования в качестве имен определений. Кстати, такая же проблема возникает в любой области деятельности: имеющиеся понятия не полностью отражают смысл, да и просто не находится адекватных понятий для выражения через них новых, а использование имеющихся слов живого языка для обозначения того или иного понятия приводит к путанице и «интуитивно неверному пониманию» абстракции, лежащей за понятием.
Поэтому с одним и тем же именем мы начинаем связывать различные определения, а чтобы не путаться, прячем каждое такое определение в собственный словарь.

Естественный порядок слов.
Мы привыкли, что в Русском языке порядок слов не фиксирован жестко, и фразы:
1) я пошел гулять
2) пошел я гулять
3) гулять я пошел
4) я гулять пошел

По сути своей сообщают одно и то же. Мы привыкли к такой особенности родного Русского языка, но далеко не все человеческие языки позволяют такой свободный порядок слов. К примеру, Английский язык уже достаточно строго фиксирует порядок частей речи в предложении. Форт оказывается ближе к языку, на котором говорит его Создатель, что, в общем-то, вполне логично и естественно. Приведенная выше фраза на Языке Форт будет, скорее всего, естественно звучать так: я гулять пошел, впрочем, тут не очень удачный пример, так как два глагола в предложении имеется. А глаголы в Форте оканчивают выражение: Вася подальше отправить . При таком расположении частей речи Форт-выражения воспринимаются наиболее естественно: 12345 SAMPLE ! = что с_чем сделать.
Хотя, можно и так: 12345 TO SAMPLE . Но это уже другая особенность языка, иногда приводящая к сложностям.

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

Литература:

1. Способ мышления Форт
2. Слово о Форте
3. сначала было слово
4. что такое Форт
5. Что такое словарь
6. Языково-ориентированное программирование: следующая парадигма
7. Искусственный интеллект и экспертные системы
8. Базы данных. Вводный курс


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

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

поэтому для форта наиболее актуален анализ причин медленности разработок


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

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

Как-то к Кашпировскому приехали две женщины - кодироваться от ожирения. А он как заорет на них: "жрать меньше надо!!!!"....


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

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


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

Зарегистрирован: Вс май 07, 2006 11:38
Сообщения: 279
Откуда: Slavyansk, Ukraine
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Да не - количество программ задается количеством программистов (само-собой не прямо пропорционально, а из закона 90%: 10% программеров пишут 90% программ).
И раз уж форт - языковая среда программирования, то может не (его) словарями надо заниматься а "разговорниками" - "форто-сишный", "форто-перловый" и т.п.? :D

_________________
Банзай!


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

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Програмимситы работают со средой, а вот робинзон с пятницей ;)


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

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

я бы этого не сказал :)

но интересно уже то, что ЯОП пророчат на смену ООП технологии, при том, что Форт - это ЯОП (это раз)
и куча народу придя в Форт начинает всех агитировать вернуться к ООП, не принимая прогрессивный ЯОП(это два)
ну, и три, проблем в ЯОП не становится меньше, как и в обычной литературе.. то есть графоманы - это беда ЯОП(это три)
а гениальных писателей как всегда мало :)) :)) :weep;

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


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

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

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

объём кода :dmad; - любого - это показатель, если обьём мал - то что-то не так, несмотря на все, самые шикарные замыслы


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

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

я уже пытался вам объяснить, что в ваших 300 строках 98% кода лишние. И шатаными средствами оно решается и быстрее и проще.
количество строк не показатель качества кода.

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

сколько народу обещало уже написать IDE для Форта? где оно?... а ведь брались писать не только на Форте :)

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


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

Зарегистрирован: Пн окт 15, 2007 17:24
Сообщения: 164
Откуда: Бийск
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Для того чтобы уяснить суть термина "языковая среда программирования" мне не хватает в статье:
1) определения понятия "среда программирования"
2) класификации тех самых "сред програмиирования"
3) указания места в этой классификации этой самой "языковой среды программирования".
А так похоже на попытку введения понятия, основываясь на чисто внешнем сходстве терминологии: "слово", "словарь" и т.п. - без учета значения этих терминов в конкретном контексте, которое гораздо уже общечеловечекого.
Цепочка "язык-писатель-графоман" из этой же серии.
Назначение всевозможных "сред программирования" в поддержке технологий, позволяющих "рядовым кодерам" получать на выходе программные продукты с заданными свойствами, а не только "гениальным писателям" ваять нетленку.

_________________
And so forth ...


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

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

Цитата:
сколько народу обещало уже написать IDE для Форта? где оно?... а ведь брались писать не только на Форте
там же, где положительная оценка их усилий :(
но вот у Хищника есть Протон.


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Полезного для кого? Авторов удовлетворяет? ИХ задачи решает? Какие претензии? Нет объёмов и "как" в дотНЕТе?.....


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Полезного для кого? Авторов удовлетворяет? ИХ задачи решает? Какие претензии? Нет объёмов и "как" в дотНЕТе?.....
Я думаю, легче спросить, какой должен быть объём кода для IDE для Форта
тогда станет понятно, о чём разговор
у автора рекомендованной mOleg'ом статьи уже есть IDE , о чём и речь


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

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

IDE есть у WIN3FORTH , FPC (один из первых очень неплохих вариантов), SPF2.5, QUEST , тот же holon вспоминали, Астрофорт, Инфофорт, и куча еще вариантов. Может хватит ныть об отсутствии IDE ? или вы совсем ответы не читаете?

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


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

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

чтож, замечание верное. Постораюсь ответить чуточку попозже на него (набирал ответ, да потерялся он 8( )

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


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

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


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

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


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

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