Forth http://www.fforum.winglion.ru/ |
|
Форт и ООП http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2050 |
Страница 4 из 6 |
Автор: | mOleg [ Сб апр 11, 2009 21:26 ] |
Заголовок сообщения: | |
вопрос писал(а): Лучше не открещиваться так эмоциональнго от потенциально О-очень полезной технологии (местами).
речь идет о том, что у Форта есть своя не менее полезная, мощная и гибкая технология\идеология. |
Автор: | вопрос [ Сб апр 11, 2009 21:57 ] |
Заголовок сообщения: | |
Олег, это всё-таки несколько разные вещи и я уверен, преимущества ООП будут оценены, не сомневаюсь. Прсто не удаётся совместить некоторые свойства Форта с привычными приёмами ООП |
Автор: | Wlad [ Вс апр 12, 2009 00:20 ] |
Заголовок сообщения: | |
вопрос писал(а): преимущества ООП будут оценены, не сомневаюсь. Так никто и не спорит, что их там нет. Другое дело - кто и что понимает под ООП. Ссылки на "авторитеты" и "труды" - извините, не играют. Почему? Потому, что, в большинстве случаев, авторы "пляшут" от идеи подвести человека к тому средству реализации, которое: либо сам автор хорошо(?) знает, либо автор понимает востребованность знаний об этом инструменте (мэйнстрим), либо автор - сам и есть автор инструмента и пропагандирует своё детище. ООП в качестве средства проектирования и описания предметных областей - очень хорошо. Собственно, лучше этого подхода пока ничего нет. Опять-таки, кто сказал, что то или иное средство "лучше" остальных? Даже авторы UML (весь комитет с ними) явно имею предпочтения. О том, что брать за основу "мне вон модель Дельфи нравится" или "есть Си++, а в сё остальное - гавно", явный бред. Если бы меня лет десять назад спросили, я бы и сам так отвечал. Может быть... Скорее всего... Но, в том-тои дело, что с той поры прошло время. Вместе с не одной парой стёртых на заднице джинсов за монитором, я поработал на не одной системе, ни одном языке и не в одной предметной области. Поэтому, я и говорю, что в случае с Фортом, раз уж он такие уникальные возможности предоставляет, надо ОЧЕНЬ аккуратно и взвешенно подходить, а не по принципу "а фигли?! вон есть постулаты ООП - смотрим, как другие их реализовали и подгоняем синтаксис и семантику!" В том-то и дело, что мне, для того, что бы использовать и применять ООП, собственно язык, в котором есть прямая "поддержка ООП-средств", по большому счёту и не нужен. Я могу ООП-проекты делать и на Си и на ассемблере. Ещё раз: речь - не о языке сейчас. В случае с Фортом имеется уникальная ситуация, когда перед нами язык, позволяющий не ограничивать себя синтаксисом и семантикой "привычных" , "общепринятых" средств и кромсать от этого задачу. Здесь мы можем напрямую формировать словарь и описание отношений и операций в предметной области. И тут - в продолжение: вопрос писал(а): Прсто не удаётся совместить некоторые свойства Форта с привычными приёмами ООП
Здесь надо увидеть тонкую грань между 1) созданием возможностей делать "как у других общепринято" и 2) созданием возможностей делать такие возможности При этом второе будет низмеримо мощнее на выходе первого. Вот о выработке стандартов на второе и надо говорить. Благо, в отличие от мэйнстрима у Форта ВООБЩЕ границ и ограничений НИКАКИХ нет для этого. |
Автор: | VoidVolker [ Вс апр 12, 2009 00:49 ] |
Заголовок сообщения: | |
вопрос писал(а): Лучше не открещиваться так эмоционально от потенциально О-очень полезной технологии (местами). Технологии чужеродной самой архитектуре форта. И вот собственно мысли по теме строк. Какие необходимы инструменты? Сложение строк - причем иногда бывает необходимо использовать и складываемые строки уже после сложения, а иногда - нет. Т.о. нужно два вида сложения - один выделяет новый буфер для результата, другой всегда использует один и тот-же буфер. В ннкроне есть слово S+ ( a1 u1 a2 u2 - a3 u3 ) - оно как раз всегда выделяет новый буфер для строки, что впрочем не проблема - т.к. задачи обычно быстро заканчивают работу и память освобождается виндой автоматически. Но иногда при частом использовании происходят большие утечки памяти. В ннкроне есть и еще один способ сложения строк - выполнение подстроки словом EVAL-SUBST но это очень медленно(впрочем в будущих версиях ннкрона будет использоваться хэширование для поиска, а сейчас оно есть в бета-версии и еще не до конца отлажено). Цитата: %...% обpабатывается динамически. т. е. пpи разборе префиксной стpоки вычленяется последовательность между %...% и для этой подстpоки делается EVALUATE Вот только реализация не очень неудачная некоторых слов: Цитата: %n esPICK%
- вставка n-го числа со стека %n esPICKS% - вставка строки со стека, адрес которой хранится в n-й позиции стека, а счётчик в n-1 И еще необходимы несколько тоже достаточно интенсивных действий, как: поиск строки, (ну а далее все остально лекго делается на базе этого самого поиска) замена строки, обрезание до и после какой-то строки, обрезание строки с начала и с конца, получение позиции символа - вроде бы все это мелочь, но нужная. Ну и конечно же необходимы слова для манипуляции строками на стеке и обязательно вставка в строку непечатаемых символов, кавычек и прочего. И еще обязательно ноль в конце строки независимо от формата. К слову - о форматах немного. В разных ситуациях бывают нужны разные форматы строк - иногда необходим a u , иногда az, соответственно нужны слова конвертации az <> a u . А иногда и то и другое сразу и в нескольких экземплярах. Часто приходится проходить по всей строке и что-то делать. Ну вот, на этом пока все. Если что еще вспомню - отпишусь. Во, еще чего вспомнил - частенько бывает необходимость в многострочных строках, т.е. строках расположенных на нескольких строчках иходника. |
Автор: | VshMt [ Пн апр 13, 2009 17:33 ] |
Заголовок сообщения: | |
VoidVolker писал(а): вопрос писал(а):
Лучше не открещиваться так эмоционально от потенциально О-очень полезной технологии (местами). Технологии чужеродной самой архитектуре форта. Что здесь вы понимаете под технологией? Чтоб небыло потом терминологических неувязок . |
Автор: | вопрос [ Пн апр 13, 2009 18:19 ] |
Заголовок сообщения: | |
Я хочу с позволения присутствующих попытаться внести ясность. ООП - не технология программирования, не язык и не подход, хотя всё это можно применить в тексте. ООП - это уровень (или способ) абстракции. Мы можем программированть в опкодах, но абстрагируемся от того, как именно представлен код для процессора и задаём команды - это ассемблер, можем абстрагироваться от конкретных команд процессора - будут все остальные языки, которые разного уровня абстракции. ООП - один из уровней, несомненно полезный для многих целей, в нек. случаях наглядность даваемая ООП - незаменима. Не стоит зарекаться использовать это в форте |
Автор: | mOleg [ Пн апр 13, 2009 20:03 ] |
Заголовок сообщения: | |
вопрос писал(а): ООП - не технология программирования, не язык и не подход, хотя всё это можно применить в тексте.
если честно, уже надоело объяснять, что Форт- это тоже технология, и идеалогия и философия и методология, причем ничуть не слабее вашего ООПа. ООП в Форте выглядит так же чужеродно, как к примеру, файлы. Но эта чужеродность не мешает вам использовать ваш ненаглядный ООП, ибо либ ООПных под Форт столько же, сколько из маинстрима в Форт пришло программистов. |
Автор: | вопрос [ Пн апр 13, 2009 20:07 ] |
Заголовок сообщения: | |
mOleg Я всячески пытаюсь предостеречь от категорических суждений. Кстати, моё сообщение не прочитано. Я как раз совсем другое говорю. Цитата: что Форт- это тоже технология, и идеология и философия и методология, а я говорю, что ООП - не технология и не идеология, это ... логический уровень и потому не может быть плохим или хорошим - как закон физики. Или как степень приближения.
|
Автор: | VshMt [ Пн апр 13, 2009 21:31 ] |
Заголовок сообщения: | |
вопрос |
Автор: | Mihail [ Вт апр 14, 2009 10:56 ] |
Заголовок сообщения: | |
mOleg писал(а): уже надоело объяснять, что Форт- это тоже технология, и идеалогия и философия и методология, причем ничуть не слабее вашего ООПа.
ООП в Форте выглядит так же чужеродно, как к примеру, файлы. Лично я никаких объяснений не видел. В чем собственно ООП чужеродно Форту? Тоже касается и файлов. |
Автор: | Wlad [ Вт апр 14, 2009 11:51 ] |
Заголовок сообщения: | |
Mihail писал(а): Лично я никаких объяснений не видел. В чем собственно ООП чужеродно Форту? Тоже касается и файлов.
По 10-му кругу... Говоря "ООП", Вы ЧТО имеете в виду? Говоря "файл", Вы ЧТО имеете в виду? Говоря об обеих вещах, как Вы соотносите их общепринятые смыслы и понятия к идеологии Форта? Что Вы предполагаете предпринять для сокращение семантических разрывов мэйнстрима (вопрос - нужно ли?) и Форт-миром? К тому, же, начав проработку, не стоит ли задуматься над тем, что если Вы уже реализовали в системе понятие "файл", будет ли необходимо реализовывать понятие объект (для системных приложений)? (См. План 9 и Инферно) |
Автор: | VshMt [ Вт апр 14, 2009 15:46 ] |
Заголовок сообщения: | |
Mihail Насколько мне дано понять речь идет о Thinking FORTH. Т.е. при программировании на Форте надо использовать фортовскую факторизацию (что само по себе очень эффективно и позволяет сильно порезать внутренние связи в коде, без глобальных переменных и т.п.), а не объектную декомпозицию (с ее повышенной связностью между различными классами и т.д.). А вот про файлы я не очень понял... Так? |
Автор: | Mihail [ Вт апр 14, 2009 21:50 ] |
Заголовок сообщения: | |
Wlad писал(а): Говоря "ООП", Вы ЧТО имеете в виду? Говоря "файл", Вы ЧТО имеете в виду? http://ru.wikipedia.org/wiki/ООП http://ru.wikipedia.org/wiki/файл Wlad писал(а): как Вы соотносите их общепринятые смыслы и понятия к идеологии Форта? Идеология Форта в отсутствии каких-либо ограничений. Таким образом он открыт для всех методов программирования. Wlad писал(а): Что Вы предполагаете предпринять для сокращение семантических разрывов мэйнстрима Не плохо бы было расположить мэйнстрим языки в рамках форт системы Wlad писал(а): (вопрос - нужно ли?) Как минимум языки ничего не теряют от расположения в рамках форт-системы. VshMt писал(а): Т.е. при программировании на Форте надо использовать фортовскую факторизацию
Что за фортовская факторизация? и зачем ее использовать? |
Автор: | VshMt [ Ср апр 15, 2009 13:11 ] |
Заголовок сообщения: | |
Mihail писал(а): Что за фортовская факторизация? и зачем ее использовать?
Мы академиев не заканчивали, но попробую объяснить. Факторизация это деление программы на оптимальный набор слов который предполагает максимально использовать передачу параметров ч.з. стек (ну ес-но в хорошем смысле - без чрезмерных ухищрений по реорганизации стека). При этом будет достигнуто максимальное обособление слов в смысле передачи параметров (отсутствие глоб.переменных). Упрощение в смысле объема исходников каждого слова + бла бла бла (читайте Thinking FORTH). Смысл такой - меняем слово и это изменение не задевает (нет побочных эффектов) другие слова при условии сохранения порядка результатов на стеке, упрощение понимания смысла каждого слова. Посмотрел все понял - пошел дальше.... Ну это мое ИМХО, так как я понял, а я как нормальный чел могу и заблуждаться... Это мое право Вот. Может подключение файловой системы в виде словарей и работа с фалами по типу <операция_как_параметр> <Имя_Файла|Имя_Папки|Имя_Диска>? |
Автор: | Mihail [ Чт апр 16, 2009 08:37 ] |
Заголовок сообщения: | |
VshMt писал(а): Факторизация это деление программы на оптимальный набор слов который предполагает максимально использовать передачу параметров ч.з. стек Как я понял, под словами понимаются подпрограммы. И какая разница, как мы будем передавать параметры? VshMt писал(а): Смысл такой - меняем слово и это изменение не задевает (нет побочных эффектов) другие слова при условии сохранения порядка результатов на стеке, упрощение понимания смысла каждого слова.
Что за побочные эффекты? Можно не примере? |
Страница 4 из 6 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |