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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 158 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт фев 24, 2009 19:41 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Wlad писал(а):
chess писал(а):Попробуйте написать мажоритар хотя бы для пяти параметров на стеке и поймете, что решение для трех параметров уже ни с какого боку полезным не будет. Вот может когда напишете для пяти, то станет понятно как написать мажоритар для 7, 9 и т.д. небольшого количества параметров.

Так вот и я из-за этого как-то умственно плечами пожимал, когда читал высказывания Броуди про преимущество частных решений...

Да я лучше общую задачу решу один раз, а решения её частных будут просто достигаться её "настройкой", "параметризацией", а не переписыванием кода каждый раз заново... Буде общая задача успешно решена у меня будет меньше шансов "зевнуть" при очередном переписывании и перерешении очередной разновидности поставленной задачи. Дело ведь не только в ошибках типа количества параметров на стеке! Всё может быть гораздо серьёзней, когда стековый "приход/расход" в ажуре, а сам вычислительный алгоритм - с ошибкой...

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

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Wlad писал(а):
Mihail писал(а):И чем можификация частного решения не настройка общего?

Тем, что в этом случае это именно изменение алгоритма, это будет уже ДРУГОЕ решение, а параметризуемый алгоритм уже - ГОТОВОЕ ОБЩЕЕ решение.

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

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


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

Зарегистрирован: Сб май 13, 2006 23:37
Сообщения: 318
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Wlad писал(а):
Да я лучше общую задачу решу один раз, а решения её частных будут просто достигаться её "настройкой", "параметризацией"


Если б, скажем, IDCT считалось алгоритмом общего вида (умножениями и транспозициями матриц) то цифрового телевидения до сих пор бы не было.


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2120
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 40 раз.
mOleg писал(а):
Если заранее известно, что количество входных параметров будет меняться, я выберу другой интерфейс - буду передавать не значения на стеке данных, а адрес на массив значений, и так далее.

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

n!/((n/2+1)!*(n-n/2-1)!)
3!/2!*1!=3 011 101 110
5!/(3!*2!)=10 00111 01011 01101 01110 10011 10101 10110 11001 11010 11100
7!/(4!*3!)=35 0001111 ... 1111000
9!/(5!*4!)=126
11!/(6!*5!)=462
Как видно уже при 5-ти параметрах встает вопрос об общем алгоритме и интерфейс для всех решений кроме
maj3 один и тот же.
Бывают конечно задачи с линейным ростом сложности - вообщем, да, интерфейс определяется задачей, но все-таки не программистом.

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
chess писал(а):
Как видно уже при 5-ти параметрах встает вопрос об общем алгоритме и интерфейс для всех решений кроме
maj3 один и тот же.

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

chess писал(а):
вообщем, да, интерфейс определяется задачей, но все-таки не программистом.

не так,
интерфейс определяется программистом под задачу. (программист может ошибаться при этом)

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2120
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 40 раз.
mOleg писал(а):
не так,
интерфейс определяется программистом под задачу. (программист может ошибаться при этом)

Ну это да. :D

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 11, 2010 01:38 
Не в сети
Moderator
Moderator

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


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

Зарегистрирован: Вс июн 21, 2009 19:11
Сообщения: 81
Откуда: Н.Новгород
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
Хищник писал(а):
Класс! Для сравнения можно посмотреть на современные претензии к Форту...

Получается, что Форт занимает одновременно много ниш и уровней, при этом целиком не находясь ни в одной(одном) из них :)

Ну да, как в известной картинке от Броуди...
А может, как-то систематизировать эти уровни наподобие 7-уровневой модели ISO OSI и стандартизировать пограничные интерфейсы?
Именно интерфейсы, а не отдельные слова. Пишите внутри модуля что хотите, но наружу выводите стандартные (а главное, документированные) интерфейсы.
А вообще, полезно взглянуть на опыт сообщества GNU.


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

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


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

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


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

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