Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб июл 21, 2018 13:52

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 10:03 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2109
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 36 раз.
Хищник писал(а):
Вопрос несложный. Сколько потрачено времени на технологию? Какой выигрыш она может дать? Сопоставление этих величин и позволяет классифицировать ее либо как серьезную работу, либо как хобби/игру ума.

1. Какую технологию? Наверное это технология локального именования. Любая технология может быть расширена или наоборот специфицирована взависимости от задач.
2. Времени на что? Наверное на реализацию и ее доводку и возможные затраты на расширение и специализацию. (два-три дня).
3. Выигрыш в чем? Наверное это выигрыш во времени программирования по сравнению с временем программирования без использования локального именования. Сильно зависит от сложности задач. Чем сложнее задачи, тем выигрыш больше.
Цель, по которой я ввел это расширение, это удаление оперативного контекста из объема внимания за счет исключения манипуляций на стеке, которые и создают этот самый контекст.
Серьезная\несерьезная, игра\не игра - это не существенно, это как рекламный ярлык к вещи.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 13:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6344
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
Я отвечал на вопрос "не сделать ли это частью оптимизатора". Впрочем, если уж говорить о локальном именовании, то для определения затрат можно посмотреть на количество сообщений в обсуждении. Это явно не два-три дня. А от такого кода у меня попросту в глазах рябит. Выигрыш не в наборе кода, а во времени отладки. А здесь читабельность и адаптация к предпочтениям конкретного разработчика существенно важнее возможности упихнуть в одну строчку побольше действий.



За это сообщение автора Hishnik поблагодарил: _Harry
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 14:33 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2109
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 36 раз.
Хищник писал(а):
Я отвечал на вопрос "не сделать ли это частью оптимизатора".

Теперь понятно.
Хищник писал(а):
Впрочем, если уж говорить о локальном именовании, то для определения затрат можно посмотреть на количество сообщений в обсуждении. Это явно не два-три дня.

Я беру мое суммарное время работы. Кроме того я выкладываю тексты реализации преследуя несколько целей:
1. Получить реакцию от форумчан на идею и скорректировать ее реализацию по их резонным замечаниям.
2. Показать как конкретную идею можно реализовать. Это может для начинающих быть полезным.
3. Показать работу реализованной идеи на примерах решения конкретных задач.
Хищник писал(а):
А от такого кода у меня попросту в глазах рябит.

Отнесем это к субъективным впечатлениям.
Хищник писал(а):
Выигрыш не в наборе кода, а во времени отладки.

Набор текста и время отладки тесно связанные понятия. От того какой текст напрямую зависит и время отладки.
При решении данной задачи время отладки было сведено к почти нулю.
Хищник писал(а):
А здесь читабельность и адаптация к предпочтениям конкретного разработчика существенно важнее возможности упихнуть в одну строчку побольше действий.

Читабельность фактор наименьшей важности. Важна не читабельность, а корректный результат решения, который опирается на прозрачность перехода от алгоритма к его выражению в тексте программы.
Вот как иллюстрация к последнему утверждению еще один вариант решения задачи о ключах, случай когда
разрешены операции одиночного наращивания и группового удаления(добавить к уже существующему тексту):
Код:
: optkey_g-o+ ( l dl nl bk ek tk ok tl sk 'gc 'wa 'nextkey 't=e '.locks '.ok -- ok dl )
  .ok! .locks! t=e! nextkey! wa! gc! sk! tl! ok! tk! ek! bk! nl! dl! l!
  e( EXECUTE )
  0 ng! 0 n1! 0 no! 0x7FFFFFFF nm! 0 n!
  gop( dl 0 DO I tk + @ I tl + @ - is n n 0 > IF n ng MAX is ng THEN CLOOP
       dl 0 DO I tl + @ I tk + @ - 0 > IF n1 1+ is n1 THEN CLOOP ng n1 + no + is no )
  BEGIN nl 0 DO l I dl * + tl wa e 0. is n1 is ng gop LOOP no nm < IF no is nm tk ok wa e THEN 0 is no nextkey e t=e e UNTIL
  CR .locks e nm . CR CR .ok e CR gc e ;

STARTLOG
8 8 6 gen-locks
tesaurus-optkey SPDUP
optkey_g+o-     SPDUP
optkey_o+o-
optkey_g-o+

ps. Отладка свелась к двум пускам программы.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 14:54 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6344
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
chess писал(а):
Хищник писал(а):
А от такого кода у меня попросту в глазах рябит.

Отнесем это к субъективным впечатлениям.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 15:09 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2109
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 36 раз.
Хищник писал(а):
Вот тут я склоняюсь к необходимости очень осторожных рассуждений. Программы пишутся людьми. А в ходе прогресса вычислительных средств их возможности существенно возросли, а стоимость уменьшилась. Тогда как средняя зарплата программиста выросла. В итоге "бутылочное горлышко" при разработке программ неуклонно перемещается от максимально плотного использования ресурсов компьютера к максимально эффективной организации труда программиста. Хотя бы потому, что затраты на зарплату программиста, тщательно следящего за байтами и тактами, существенно больше стоимости этих самых байтов и тактов.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 15:44 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6344
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
chess писал(а):
Так и я о том же. Есть ресурсы компьютера и есть ресурсы программиста. Эти ресурсы программиста надо использовать максимально. Идея локального именования позволяет эффективнее использовать такой ресурс программиста как объем оперативного внимания путем исключения оттуда всего, что непосредственно не относится к задаче. Лишним в данном случае является контекст стековых манипуляций, который присущ классическому форту.

Только вот ценой чего достигается второстепенное улучшение? Ценой синтаксиса вида:
Код:
I1l!|\l/|

Лекарство часом не тяжелее болезни получилось?



За это сообщение автора Hishnik поблагодарил: _Harry
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Найти экономную заготовку для ключа.
СообщениеДобавлено: Вт сен 06, 2011 16:20 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2109
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 36 раз.
Хищник писал(а):
Только вот ценой чего достигается второстепенное улучшение? Ценой синтаксиса вида:

Код:
I1l!|\l/|

Лекарство часом не тяжелее болезни получилось?


Да нет. Стековые манипуляторы тут я не применял.
Стековые манипуляторы это технологический прием, который использует другой ресурс программиста - 'видеобуфер'. Идея видеобуфера 'взята' из языка J.
Общеизвестная статистика о том, что в среднем процедуры содержат 6 параметров. Ну я на всякий случай увеличил это число до 9.
Код:
: proc ( n1 n2 n3 n4 -- 0|1) 2swap + over * swap -  > ;   
эквивалентно
Код:
: proc ( n1 n2 n3 n4 -- 0|1)  4\412+4*3-> ;
66 10 20 30 40 proc   Ok ( 66 0 )
Здесь видеобуфер это строящаяся строчка 4\412+4*3->
Применять соответсвенно нужно по случаю. Ничего в этом сложного нет. Прямой доступ к параметрам на стеке, которые укладываются в 'видеобуфер' и процесс этот тоже не использует объем внимания.

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


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

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


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

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


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

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