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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 14:47 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
Цитата:
Не пишите код, который может пригодиться когда-то в будущем. Не оставляйте заплаток для будущих расширений. Вещей, которые вы можете захотеть сделать, бесконечное множество; это означает, что каждая из них имеет нулевую вероятности осуществления. Если вам что-то понадобится позже, вы это и запрограммируете позже - и, вероятно, лучше, чем сделали бы это теперь. И если кто-нибудь будет расширять вашу программу, он заметит оставленные вами для этого заплатки? Все ли из них вы аккуратно задокументируете?
Ну ... это уже вопрос философский. Я до мозга костей - агностик. Не только в плане религии, но и в общем плане - жизни. Значимые имена (авторитеты) для меня являются "вкусной пищей", но ни разу не иконой. Предпочитаю не верить, но проверять.
Majestio писал(а):
А я не так писал?
Возможно я просто недопонял.

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 15:02 
Majestio писал(а):
Значимые имена (авторитеты) для меня являются "вкусной пищей", но ни разу не иконой. Предпочитаю не верить, но проверять.

Мур:
Цитата:
У меня есть нечестное преимущество. Я закодировал свой стиль программирования, и другие люди восприняли его. Я был поражен тем, что это случилось. И я чувствую, что это приятное преимущество, поскольку ведь это мой стиль другие пытаются скопировать. Могут ли они научиться думать так же, как я? Мне кажется, что могут. Это - всего лишь вопрос практики, а у меня практики больше.

Не хотите пользоваться преимуществами Forth? Тогда зачем его изучать?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 15:24 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
Majestio писал(а):
Значимые имена (авторитеты) для меня являются "вкусной пищей", но ни разу не иконой. Предпочитаю не верить, но проверять.

Мур:
Цитата:
У меня есть нечестное преимущество. Я закодировал свой стиль программирования, и другие люди восприняли его. Я был поражен тем, что это случилось. И я чувствую, что это приятное преимущество, поскольку ведь это мой стиль другие пытаются скопировать. Могут ли они научиться думать так же, как я? Мне кажется, что могут. Это - всего лишь вопрос практики, а у меня практики больше.

Не хотите пользоваться преимуществами Forth? Тогда зачем его изучать?


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

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 15:33 
Majestio писал(а):
Но пытаюсь его изучать с "критической" точки зрения.
Тогда больше внимания уделите обоснованию своей позиции.

Например, откуда берутся "неопределенности" в С-подобных языках? От необходимости поддержания какого-то "формата языка": "Здесь должен быть тип! Не указан? Пишем int!"
В Forth никакого "формата" просто нет. Есть только "стандарт", который выкидывается фортером раньше, чем до конца реализуется.
Это как в Perl. Переменная по умолчанию - не источник "неопределенности", но способ избежать повтора, применяя местоимение. Не бага, но фича!


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:04 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Ну почему же? Вон пролетала тема про "числа". Чего делать бедному интерпретатору/компилятору? Это не разборка типизации, но разборка входных данных. А программер ... в рамках принятого стандарта может делать что хочет. Вот именно поэтому нужна конкретизация в разборе неоднозначных трактовок. ИМХО.

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:08 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Преимущества Форта как языка тут абсолютно ни при чем. Мур еще любит на прогулки ходить - мне теперь тоже надо этим заниматься? По утверждению "Не пишите код, который может пригодиться когда-то в будущем" можно навскидку придумать два примера:
1. Программист-одиночка фантазирует. Кода нет и не предвидится, однако по результатам свободного веб-серфинга будущая спецификация обрастает украшениями. К несуществующей еще программе предъявляются каждый раз разные требования, она обязана поддерживать массу стандартов, протоколов и технологий программирования, причем список растет существенно быстрее, чем можно реализовать его отдельные пункты.
2. Программист работает в команде. Проект разбит на модули, интерфейсы между ними задокументированы, причем документ составлен или на основе ТЗ, или на основе прототипирования (возможно, предыдущей версии проекта). Да, код пока не нужен, но на этапе интеграционного тестирования (или полевых испытаний) он обязательно пригодится. "Если вам что-то понадобится позже, вы это и запрограммируете позже - и, вероятно, лучше, чем сделали бы это теперь." в данном случае попахивает откладыванием дел в долгий ящик.

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

Цитата:
И если кто-нибудь будет расширять вашу программу, он заметит оставленные вами для этого заплатки?

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



За это сообщение автора Hishnik поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:18 
Хищник писал(а):
Мур еще любит на прогулки ходить - мне теперь тоже надо этим заниматься?
Обязательно. Мозг надо насыщать кислородом.
Мур, в случае с Forth, не сторонний наблюдатель, а "производитель микроволновки, настоятельно не рекомендующий сушить в ней домашних животных".
Хищник писал(а):
можно навскидку придумать два примера:
1. Программист-одиночка фантазирует...
Это обычно и называется маниловщиной. Хотя бы какая-то практическая цель нужна - тренировка, изучение, гимнастика ума...
Хищник писал(а):
2. Программист работает в команде...
В данном случае термин "позже" не подходит. Задача уже имеет статус обязательной к решению. Тем более, что по мнению начальства она, обычно, должна быть решена за неделю до того, как проект был начат.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:23 
Majestio писал(а):
Вон пролетала тема про "числа". Чего делать бедному интерпретатору/компилятору?
То, что велел программист.
Что делать программисту? То, что просит пользователь.
Вы искусственно ввели в цепочку "A-F-P" "разработчика", а теперь спрашиваете, что ему делать. Вы ввели, Вы и решайте.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:32 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
Вы искусственно ввели в цепочку "A-F-P" "разработчика", а теперь спрашиваете, что ему делать. Вы ввели, Вы и решайте.


Искусственно ли? :D Докажите что "Разработчика" не существует, и я сразу поменяю концепцию.

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:36 
Majestio писал(а):
Докажите что "Разработчика" не существует, и я сразу поменяю концепцию.
В цепочке "A-F-P" он отсутствует по определению. Я ее так определил. Есть только машина, фортер и пользователь.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:47 
Не в сети
Аватара пользователя

Зарегистрирован: Пт окт 15, 2010 14:29
Сообщения: 124
Благодарил (а): 68 раз.
Поблагодарили: 1 раз.
Разработчик = Пользователь чужого Форта. Бывает такое? :)

_________________
Мои программные ништякиhttps://majestio.info


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 16:56 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Мур создал прецедент разработки форт-системы, на основании которого можно разрабатывать программы подобного класса. В этом смысле его вклад неоспорим - просто по факту того, что другие люди пишут другие форт-системы. Но вот как архитектор ПО, способный в широком диапазоне условий посоветовать стиль разработки, типы инструментов, подходы к тестированию и отладке, Мур как-то не особо известен. Это не недостаток Мура (так ему можно вменить в вину и то, что он пирожками не торгует), а пометка, что, выбирая Форт в качестве языка, мы выбираем именно Форт, и не получаем автоматически все бонусы, которые когда-либо были у каждого из фортеров. Мур пишет код "по месту"? Замечательно. Мы тоже можем. Главное, помнить, что в определенных случаях можно сорваться в штопор и начать ставить заплатки, а глубокий пересмотр архитектуры и делать лень, и времени уже нет.
gudleifr писал(а):
В данном случае термин "позже" не подходит. Задача уже имеет статус обязательной к решению. Тем более, что по мнению начальства она, обычно, должна быть решена за неделю до того, как проект был начат.

Тактические задачи решает и сам программист. Тем более что в ТЗ не написано, что вот на этот алгоритм желательно иметь пакет тестов, а к пакету - генератор тестовых последовательностей. Это все проблемы коллектива, а система должна просто работать. И тут уже выбор программиста, проверит ли он свой модуль в комфортных условиях, или будет это делать при испытаниях, пытаясь доказать, что это не случай, который он забыл предусмотреть, а проблема оборудования или другого программного модуля.

В случае с Фортом, пишущимся при наличии опыта программирования на другом языке, ситуация склоняется к п.2. Обычно человек, поработав хотя бы несколько лет, уже накопил достаточный опыт наблюдения вещей, "вероятность которых пренебрежимо мала". С другой стороны, широко распространенные алгоритмы скорее всего будут им рано или поздно реализованы. Поэтому имеет смысл сосредоточиться на разработке прототипа "Perl-Forth", который при первых итерациях уже позволил бы оценить, во что это вообще выльется. Например, что у такой системы будет со стеком? А стек на разных платформах? Может быть, там придется писать просто разные реализации, и ничего общего у них быть не может. Тогда нужен и комплект тестов, который немедленно и не нужен, а потом на какой-нибудь платформе вылезет неприятный эффект с underflow, разваливающим всю систему целиком. Как-то не хочется от безобидного лишнего DROP получать не сообщение об ошибке, а намертво повисший ARM (я не знаю, как такое возможно, но хочу быть уверенным, что этого не будет). Опять же, что с парсером на Perl, позволит ли он написать более качественный (быстрый? модифицируемый? сопровождаемый? компактный?) код? Если все это отложить "по месту", есть высокий риск погрязнуть в решении текущих вопросов, не выяснив ключевые, которые потом рванут.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 17:02 
Majestio писал(а):
Разработчик = Пользователь чужого Форта. Бывает такое? :)
Если он Пользователь, то вправе продиктовать фортеру "явную спецификацию". Либо фортер (не имея перед глазами конкретного пользователя) следует какому-либо "стандарту", проводит социологические опросы потенциальных клиентов... но лучше поискать спонсора с готовой задачей...
Хищник писал(а):
Главное, помнить, что в определенных случаях можно сорваться в штопор и начать ставить заплатки, а глубокий пересмотр архитектуры и делать лень, и времени уже нет.
Какой "глубокий штопор", если Forth переписывается полностью за одну-две недели? А "глубокий пересмотр" - вещь очень хорошая, лучшие программы, как известно, были написаны после того, как их исходники были на полдороги утеряны.
Хищник писал(а):
Поэтому имеет смысл сосредоточиться на разработке прототипа "Perl-Forth", который при первых итерациях уже позволил бы оценить, во что это вообще выльется.
Поддерживаю.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 17:12 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Необходимость внесения согласованных правок в 2-3 места уже может стать психологическим барьером. Человек начинает ставить заплатки просто потому, что они все перед его глазами. Собственно, и пример есть - макроподстановщик Максимова. Там огромное количество if-ов, по которым явно плачет более рациональный способ записи правил замены одного кода на другой. Каждая новая модификация только усугубляет ситуацию, потому что труда-то вложено все больше и больше, и его все больше жалко.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: µForth :: неоднозначности
СообщениеДобавлено: Вт май 28, 2013 17:35 
Хищник писал(а):
...
Поэтому я и предпочитаю рассматривать Forth, как метод программирования, позволяющий избежать этого безобразия. А наличие стека и словаря - лишь как незначительные подробности реализации.


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

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


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

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


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

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