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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 119 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
 Заголовок сообщения: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 03:29 
Не в сети

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

Но нашел идею. Форт такой удобный в написании програм (я не проверял на практике, но помню что задачки из Броуди решались очень легко), но откровенно неприятный для чтения другими програмистами. Мне на работе слишком даже часто повторяют тезис "Программы чаще читаются чем пишутся", хотя и пишем мы на довольно понятном С#. Так вот, если Форт может влиять на самого себя, то почему бы не попробовать влиять на IDE, в котором пишется програма средствами самого языка?

Я думаю это должно выглядеть так. Вместе с кодом форт-программы распостраняется файлик с форт-кодом для формирования разметки форт-программы (в простом случае он можеь быть интегрирован в сам код форт-программы). Например, таким образом: ...форт-код... [INTEL ОТОБРАЖЕНИЕ_№1... тут какой то IDE-формирующий форт-код ... INTEL] ...продолжаем дальше форт-кодить... Сама IDE при этом а)либо подхватывает на лету находщийся между [INTEL] код либо б) подхватывет его при выполнении программы из IDE. После подхватывания она а) либо производит некие изменения над собой на основании считаного кода либо б) выполняет описаный между [INTEL] код на своей форт-вирт-машине.

Цель?
Добавить такое понятие, как отображение кода. После подхватывания IDE-кода появляются у самой IDE-появляются новые изобразительные, кодогенерирующие, кодопреобразующие, помогающие и прочие возможности. Тоесть, програмист и далее пишет себе Форт-код, но при этом видит подсвечивание ключевых (в его програме, а не в форте!) конструкций; становится доступен автокомплит; после нажатия символа ";" IDE автоматически преобразовывает полследнее определение нужным количеством пробелов/табов включая IF-ы и прочее; на основании коментариев строит динамические подсказки по словам (наводишь мышкой и вуаля - подсказка в нужном тебе формате); прочее, насколько фантазии хватит.

Зачем?
Причин несколько.
  • Во-первых, это круто и модно (навеяно, кстати, выше упомянутым C# и Intellisence а также плагином ReSharper).
  • Во-вторых, даже если считать это мелочью, такая мелочь чем-то напоминает соль - без соли можно обойтись, но как-то совсем пресно.
  • В-третьих, это может помочь навернуть в Форт-религию, пардон, Форт-философию больше людей, ведь наличие хорошей IDE всегда только в плюс языку (delphi, C#, Qt, Eclipse прочее). А сдесь получается, что из любой Forth-IDE можно сделать любую другую, более problem-specific IDE.
  • В-четвертых, написаные в таком стиле (в смысле, с разметкой ИСР) программы будет легче анализировать начинающим програмистам, не всегда коментарии помагают, когда уже через 2 екрана забываешь, что делает конкретное слово.
  • И в-пятых, это развитие форт-идеи, чего не было уже вот лет 20-30 (хотя этот пункт спорный, ведь сильно зависит от реализации).

И что можно менять у IDE?
По умолчанию, IDE - это простой текстовый редактор (либо ком строка, в принципе не суть важно). IDE-формирующий код может влиять на простейшие графические возможности даного редактора. Самое простое - подсветка слов. К примеру, пишем
Код:
[INTEL View.Default S" [INTEL" IDE.Color IDE.Colors.Red CREATE-FORMAT APPEND-FORMAT INTEL]

и после подхвата такого кода мы можем видеть не черно-белый код, а уже красно-черно-белый:
[INTEL View.Default S" [INTEL" IDE.Color IDE.Colors.Red CREATE-FORMAT APPEND-FORMAT INTEL]
А если прикрутить регекспы и вспомнить всякие lex-ы, то можна начать творить чудеса подсветки нужных слов.

Второе, что может понадобится, это подхват комента к слову. Например, есть слово
Код:
\ Дублирует вершину стека
: DUP ( n -- n n )
   DUP DUP DUP DUP
   DROP DROP DROP
;

Мы добавляем IDE-правило отображения
Код:
[INTEL View.Default
  ASCII : Code.Text.Find    \ находим позицию символа :
  DUP GET-NEXT-WORD     \ достаем куда-то в память строку со словом, написаным после :, кидаем ссылку в стек
    OVER FIND-COMMENT   \ аналогично для коментария, только поиск взад до пока не начнутся строки, начинающиеся не на "\"
    IDE.WordHelp SWAP CREATE-FORMAT \ создаем объект формата
  APPEND-FORMAT           \ приписываем к строке со словом формат подсказки
  DROP
INTEL]

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

Надеюсь, смысл понятен - кроме формирования личного вида отображения для кода и подсказок можно еще формировать разметку строк кода (пробелы, табуляция), можно выводить средствами IDE предупреждения типа "добавь комент к слову!" или в подобном роде, можна встраивать механизмы быстрого перехода к определению слова (в С# Resharper для этого достаточно кликнуть с зажатым Ctrl на функции - мы быстро переходим в код, где даное слово описано), можно прозрачно для програмиста творить статический анализ какой угодно сложности. В общем, даже фантазию можно не напрягать - берем любую мейнстрим ИСР и внаглую копируем свойства, попутно придавая им более Форт-подобный вид.

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

ЗЫ. Только не путать с колорФортом. У меня не идет речь об изменении синтаксиса, только об отображении имеющегося (хм, я тут подумал, а ведь колорФорт получается обычным отображением=)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 09:59 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Преамбула: "ЗА ВСЕ НАДО ПЛАТИТЬ!" - это универсальное правило, и касается всех жизненных вопросов во всех сферах бытия.

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

Ну, за реализациями далеко ходить не надо, достаточно посмотреть несколько форт-систем, в которых были свои собственные среды разработки (таких не мало: spf2.5, gpforth, fpc, astroforth - правда, это ДОСевые форт-системы, из виндошных своя IDE точно есть у win32forth, собственно, я давно не интересуюсь IDE, так как не нуждаюсь в них).

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

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

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

Насчет невозможности чтения другими программистами таки перебор. Вот мне к примеру сишный код кажется ужастно нечитаемым, излишне перегруженным символами, которые надо декодировать, кучей эквилибристик, связанных с необходимостью преобразования типов и всякой другой мути - и это обычный С, я уже молчу о C++ или C#, но если надо, я беру этот самый код и разбираюсь (пускай и матерясь на каждой строке).

Что же касается этой самой IDE - объем таки у задачки не малый, сил и времени требует таки больше, чем 1-3 дня, а это значит, что на одном вдохновении такую штуку не сделать... А народ таки не зря начинает изучение языка с "Здравствуй мир", таки стоит начинать с маленьких задач, которые нужно научиться решать на любом ЯП. А то будет еще один "фортер", который ноет на каждом углу, что Форт замечателен, но на нем ничего путевого не сделать и т.п. глупости, кои, признаться, уже оскому сильно набили. Короче, нужно сначала не надорваться, тогда потом все будет хорошо!

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 11:54 
Не в сети

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

ИСР для форта как кажется, должна бы чем-то отличаться от среды для С
и пока нет согласия чем, достаточно усилий никто не прилагает, хотя попытки были


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 12:02 
Не в сети

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

кто с этим согласен?



За это сообщение автора вопрос поблагодарил: danbst
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 12:27 
Не в сети

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

Примерный список:
  • форматирование текста (цвет, начертание)
  • события при работе с текстом (текстовый курсор в слове, мышь над словом, клик, даблклик по слову)
  • отслеживание нажатия клавиш
  • отслеживание изменений текста программы
  • слово - не только обычное, но и любое доступное через reg.ex
  • работа с документом (смена окна отображения кода, добавление дополнительных полей для текствого редактора)
  • возможность выдачи user-defeined окошек

Даный список хотелось бы упростить либо стандартизировать.

То mOleg - спасибо, я понимаю вашу точку зрения.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 12:35 
Не в сети

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 14:19 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
http://fforum.winglion.ru/viewtopic.php?f=23&t=2633
Вот тут я делал макет IDE для работы с софт-процессорами. Подсветка, правда, статическая, в том смысле, что правила установки цвета скомпилированы в модуле редактора. Но вообще задача управляемой подсветки решаема, и с точки зрения алгоритмов не так уж и сложно. Другое дело, что рваться напролом к ней не надо. В этом смысле задача написания редактора текста с управляемым оформлением - возможно, хороший пример для отработки методов организации разработки (см. раздел "Статьи").


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 14:40 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
danbst писал(а):
я пытаюсь писать на форте в несвойственном ему стиле.
Большой жирный плюс вам. Раз вы это понимаете значит уже пошла мутация в фортера :lol:

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 14:45 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
http://fforum.winglion.ru/viewtopic.php?f=23&t=2633
Другое дело, что рваться напролом к ней не надо. В этом смысле задача написания редактора текста с управляемым оформлением - возможно, хороший пример для отработки методов организации разработки (см. раздел "Статьи").
Почему бы не взяться для примера
Если вдруг получится. всем большая польза (и развитие)
сделать плагин к одному из свободных редакторов или даже с нуля?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 15:11 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Мне не кажется, что все свободные редакторы - это плагины к чему-то "взрослому и серьезному" ;) Файл texteditor у меня имеет размер 18 кб - это вся обработка клавиш, отрисовка, операции с буфером, подсветка, раскраска...

Предваряя возможные вопросы - нет, исходники не дам! :)) Не потому что жалко, или ноу-хау, а потому что набрать 18 кб - это дело пары-тройки вечеров. А вот понять, что надо набирать, почему именно так, что можно набирать после, а что - слишком сложно, и лучше отложить, вот это все уже существенно важнее при работе.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 15:15 
Не в сети

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

Мне не кажется, что все свободные редакторы - это плагины к чему-то "взрослому и серьезному" ;)
Предваряя возможные вопросы - нет, исходники не дам! :)) Не потому что жалко, или ноу-хау, а потому что набрать 18 кб - это дело пары-тройки вечеров. А вот понять, что надо набирать, почему именно так, что можно набирать после, а что - слишком сложно, и лучше отложить, вот это все уже существенно важнее при работе.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 17:06 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
маленькая затравка для редактора: viewtopic.php?f=2&t=14&start=0

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 17:09 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
вопрос писал(а):
У всех приблизительно одинаковые или похожие идеи по ИСР
ничего пока не реализовано
автор темы озвучил одну из идей

ИСР для форта как кажется, должна бы чем-то отличаться от среды для С
и пока нет согласия чем, достаточно усилий никто не прилагает, хотя попытки были

Ничем она не должна отличаться. Это тот же самый emacs :D
Только программируют его на е-лиспе, а не не шалтай-болтае.
А изобретать велосипед--это очень по-фортерски.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 17:14 
Не в сети
Moderator
Moderator
Аватара пользователя

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

еще раз, реализовано как минимум в нескольких системах, то, что вы упорно не хотите этого замечать, не проблема Форта.
Более того, вполне удачная реализация была у Андрея Черезова и в SPF 1.5 и (другая) SPF2.5, и он от этой самой среды отказался за ее ненужностью.

danbst писал(а):
То mOleg - спасибо, я понимаю вашу точку зрения.

для затравки могу дать вариант раскраски файла. Оно конечно не текст в окошке редактора, но там отличий не так уж и много.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Модификация IDE средствами Форта
СообщениеДобавлено: Сб дек 18, 2010 17:33 
Не в сети

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

еще раз, реализовано как минимум в нескольких системах, то, что вы упорно не хотите этого замечать, не проблема Форта.
Более того, вполне удачная реализация была у Андрея Черезова и в SPF 1.5 и (другая) SPF2.5, и он от этой самой среды отказался за ее ненужностью.

я этих СПФов не застал, где архивчик?


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

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


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

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


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

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