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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 01:39 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
atar писал(а):
Фортеров во всём мире осталось от силы несколько сотен. Если не сотрудничать друг с другом - их число с каждым годом будет только убывать.

Может быть всё ещё хуже, если например посмотреть динамику даже местного счётчика на clustrmaps и сколько реального появляется по Форт тематике в мире открытой инфрмации :shuffle;

P.S. Конечно, можно предположить что "правильные пчёлы" где то сидят в своих ульях и друг с другом почти не пересекаются. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 01:59 
Hishnik писал(а):
Выделяю основную мысль "Рост среднего объема памяти компьютеров способствует тому, что такие ресурсоемкие алгоритмы начинают рассматриваться на практике".
Да не бывает "таких" алгоритмов. 64К - это 32 страницы печатного текста. Вы можете привести пример 32-страничного алгоритма? Не делящегося на отдельные процессы? Не состоящего из достаточно слабо связанных частей, которые живут лишь ограниченное время? Не имеющего пары-тройки "ядер" (по паре десятков команд), занимающих 99,9% процентов времени? Или, как Вы правильно заметили, не разваливающегося естественно на A, B, C, D и далее "по алфавиту"?
"На практике" мы имеем простыни по несколько мегабайт кода, но после выливания "воды" и без учета "ресурсных файлов диалогов" остается пара-другая килобайт, которые и делают всю работу. Более того, т.к. мозг программиста имеет ограниченную вместимость, то больше этой пары килобайт обычно и не может считаться чем-то, что мы понимает "как работает", остальные же мегабайты - ввод/вывод/проверки параметров и обработка "особых ситуаций".
Hishnik писал(а):
В целом же, если отсекать все, не укладывающееся в картину мира, в центре которой имеет место некий гений Форта, то как раз и получится стандартизация по-лузерски.
Цитата:
Сколько раз в душные летние дни, окруженный мечами, в полном одиночестве читая книгу, Тартарен внезапно вскакивал, рыча бросал книгу, устремлялся к стене и срывал с гвоздя какое-нибудь оружие!
Бедняга забывал, что он у себя дома, в Тарасконе, что на нем фуляровый платок и кальсоны, - он претворял только что прочитанное в жизнь и, возбуждаясь от звука собственного голоса, кричал, потрясая топором или томагавком:
- Теперь пусть только они ворвутся!
_Они_? Кто _они_?
Тартарен и сам толком не знал...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 02:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Да не бывает "таких" алгоритмов. 64К - это 32 страницы печатного текста. Вы можете привести пример 32-страничного алгоритма? Не делящегося на отдельные процессы? Не состоящего из достаточно слабо связанных частей, которые живут лишь ограниченное время? Не имеющего пары-тройки "ядер" (по паре десятков команд), занимающих 99,9% процентов времени? Или, как Вы правильно заметили, не разваливающегося естественно на A, B, C, D и далее "по алфавиту"?

Вот это и есть софизм "настоящий шотландец" :) А что же тогда не ограничиться 256 байтами? :)

gudleifr писал(а):
Тартарен и сам толком не знал...

Поэтому в кальсонах врывался на форумы и учил жизни их обитателей :))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 10:42 
Hishnik писал(а):
Вот это и есть софизм "настоящий шотландец"
Убедили. А теперь, пожалуйста, приведите пример подобного алгоритма.

Цитата:
Кроме того, кажется, что механический подход к людям среди компьютерных ученых (и их руководителей) распространен шире, чем представляется мне нормальным. Ибо я подозреваю, что именно этот механический подход ограничивает деятельность программистов механическими действиями по написанию кода, и затем измеряет «производительность труда программиста» количеством произведенных им строк кода. (Когда весьма широко известный и очень уважаемый ученый-компьютерщик использовал недавно эту меру производительности труда программиста в своей лекции, от слушателей поступило предложение говорить не о «количестве произведенных строк кода», а о «количестве израсходованных строк кода», и что лектор, следовательно, занес их не в ту графу учета баланса расходов и доходов. Лектор ответил, что он вынужден использовать эту меру производительности, поскольку не располагает никакой альтернативной, которая позволяет вести точный учет!) Это не может больше рассматриваться как безобидное заблуждение, поскольку принятие этой бессмысленной «меры производительности» профессиональными программистами гарантированно стимулирует их к написанию рыхлого кода.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 14:23 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
gudleifr писал(а):
Да не бывает "таких" алгоритмов. 64К - это 32 страницы печатного текста. Вы можете привести пример 32-страничного алгоритма? Не делящегося на отдельные процессы? Не состоящего из достаточно слабо связанных частей, которые живут лишь ограниченное время? Не имеющего пары-тройки "ядер" (по паре десятков команд), занимающих 99,9% процентов времени? Или, как Вы правильно заметили, не разваливающегося естественно на A, B, C, D и далее "по алфавиту"?

Лол, как это не бывает? А это тогда что:
  • У меня есть программа с исходниками более молумегабайта - и это без учета подключенных внешних библиотек еще примерно на 10 мегабайт (и это еще в сжатом виде они).
  • Рендеринг HTML страницы. Объем исходного кода, ресурсов, дополнительных библиотек и утилит на примере хромиума занимает объем около 20 гигабайт дискового пространства.
  • Рендеринг трехмерных сцен в играх и любых 3D приложениях. Например, исходный код Unreal Engine 4 занимает примерно 9 гигабайт.
  • Операционные системы - размер исходного кода варьируется очень сильно. От нескольких килобайт для МК, до десятков гигабайт для ПК, серверов, кластеров и т.п.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 14:37 
VoidVolker писал(а):
А это тогда что?
Требовалось:
gudleifr писал(а):
Вы можете привести пример 32-страничного алгоритма? Не делящегося на отдельные процессы? Не состоящего из достаточно слабо связанных частей, которые живут лишь ограниченное время? Не имеющего пары-тройки "ядер" (по паре десятков команд), занимающих 99,9% процентов времени? Или, как Вы правильно заметили, не разваливающегося естественно на A, B, C, D и далее "по алфавиту"?
Конечно, можно сказать, что я опять про "неправильных пчел", но речь-то шла о процессах, код которых влезает в 64K, а не о гигабайтах данных/ресурсов. Можно, конечно, кивать на известные первоисточники, например, коды ядра Linux, TeX, Wolfenstein3D, но мы там погрязнем в разборках "сколько там процессов" и каждый останется при своем мнении. Так, что найдите честно изложенный на десятке-другом страниц [русского языка] неделимый (!) алгоритм, и я с Вами соглашусь.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 17:55 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
gudleifr писал(а):
Конечно, можно сказать, что я опять про "неправильных пчел", но речь-то шла о процессах, код которых влезает в 64K, а не о гигабайтах данных/ресурсов. Можно, конечно, кивать на известные первоисточники, например, коды ядра Linux, TeX, Wolfenstein3D, но мы там погрязнем в разборках "сколько там процессов" и каждый останется при своем мнении. Так, что найдите честно изложенный на десятке-другом страниц [русского языка] неделимый (!) алгоритм, и я с Вами соглашусь.

Ну уж нет, вот это уже подмена понятий. Речь изначально идет об алгоритме. Не надо придумывать новые понятия вроде "неделимый алгоритм". Алгоритм состоит из инструкций. Неделимый алгоритм - это алгоритм с одной инструкцией. Алгоритм состоящий из одной инструкции - это инструкция. Инструкция - это одна операция процессора. Если спуститься ниже - одна инструкция процессора может делает множество операций. Операцию тоже можно разбить на более низкоуровневые блоки. И так можно спускаться до самых атомов, атомных ядер, элементарных частиц, квантов полей и т.д. Т.е, любой алгоритм состоит из других алгоритмов. Следовательно, неделимый алгоритм - это самое простое и элементарное взаимодействие во вселенной.
gudleifr писал(а):
а не о гигабайтах данных/ресурсов

Повторюсь еще раз. В моей программе полмегабайта исходного кода, написанного мною лично и еще 10 мегабайт исходного кода дополнительных библиотек. А объем дополнительных бинарных данных достигает нескольких гигабайт. И в хромиуме именно гигабайты исходного кода. Мне просто некогда писать скрипт сканирования исходников хромиума на предмет выяснения соотношений текстовых и бинарных дынных. Кроме того, бинарные данные тоже являются частью алгоритма и частью исходников, как ни странно.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 18:02 
VoidVolker писал(а):
Не надо придумывать новые понятия вроде "неделимый алгоритм".
Определение см. в предыдущкм посте. Вопрос-то состоит в том, является ли существование более, чем 64K-сегментов кода следствием быдлокодерства (возможно, порожденным несовершенством ОГС) или полезным приемом программирования. И единственный способ доказать второе - привести именно неделимый (!) полезный алгоритм. Неделимый не в смысле одного оператора, а в смысле требования размещения всего кода в одном сегменте. И не надо мегабайт, достаточно будет 30 страниц [русского] текста.


Последний раз редактировалось gudleifr Пн дек 07, 2015 18:32, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 18:14 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
И не надо мегабайт, достаточно будет 30 страниц [русского] текста.

И это может оказаться избыточным т.к. если рассматривать алгоритмы из предмета ПРИМА,
то и советские ПМК были весьма круты на сотне шагов программы :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 19:10 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
gudleifr писал(а):
Неделимый не в смысле одного оператора, а в смысле требования размещения всего кода в одном сегменте.

Так, сначала речь шла об алгоритме. Потом о неделимом алгоритме. Теперь речь об алгоритме, размещенном в одном сегмента. Например, в той в моей программе весь алгоритм в одном сегменте. И вообще, что это за требование такое? И откуда оно происходит?
gudleifr писал(а):
И не надо мегабайт, достаточно будет 30 страниц [русского] текста.

0.5 Мб = 524288 байта = ~277 страниц английского текста = 277*1.2 = ~332.4 страницы русского текста.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Пн дек 07, 2015 19:34 
VoidVolker писал(а):
Так, сначала речь шла об алгоритме.
См. начало темы. Все началось с "прогрессивности" замены 2+ на CELL+...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Вт дек 08, 2015 00:03 
Не в сети

Зарегистрирован: Вс ноя 29, 2015 23:47
Сообщения: 10
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
gudleifr писал(а):
Все началось с "прогрессивности" замены 2+ на CELL+...


А почему в кавычках? CELL+ будет работать на любом Форте начиная с 83. В то же время 2+ будет работать мало на каком Форте запущенном на современном железе.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Вт дек 08, 2015 00:26 
Не в сети
Administrator
Administrator
Аватара пользователя

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

А неделимым в итоге будет признан только такой, который умещается в 64к? :) Вот например, алгоритм нахождения корней квадратного уравнения неделимый? Вроде бы да, но можно заявить, что он делится на нахождение дискриминанта и нахождение корней по известному дискриминанту. А в цифровой технике вообще есть базисы Шеффера и Пирса, с помощью которых можно выразить любую цифровую схему. Только так на практике не делают.
Ну да ладно, пью кофе и фантазирую :)
1. Когда совсем нельзя без 64к.
Рассматриваем некий самомодифицирующийся код, используемый для генетического алгоритма. Код выполняется с целью вычисления некоей ранее определенной фитнес-функции и модифицируется по заранее установленным правилам. Каков максимальный размер этого кода? Я не знаю. 65536 байт не является размером, имеющим математически доказуемые фундаментальные ограничения. Поэтому я не могу доказать утверждение "не существует генетического алгоритма с модифицируемым кодом, больше 65536 байт". Оверлеи не помогут, поскольку будут всего лишь техническим способом размещения кода. Алгоритм-то все равно имеет возможность модифицировать ячейку с номером 100000, и с этим придется как-то справляться.
2. Когда технически нецелесообразно, вплоть до потери функциональности.
Элементарно - realtime. Переключения страниц (а тем более подгрузка кода с внешних носителей) ведут к неминуемому снижению производительности. В случае именно жесткого RT это недопустимо, в случае типа "трехмерная игра" ведет к снижению fps и ощутимому ухудшению потребительских свойств программы.
3. Когда неудобно.
Когда код технически может быть разделен на страницы, но поддержка такого разделения выступает в качестве отдельной задачи и именно неудобна, потому что заставляет тратить время и внимание.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Вт дек 08, 2015 00:41 
Hishnik писал(а):
Рассматриваем некий самомодифицирующийся код, используемый для генетического алгоритма.
Самомодифицируемость кода не имеет решающего значения. С тем же успехом он может разделятся на куски и/или быть управляемым данными.
Hishnik писал(а):
Когда технически нецелесообразно, вплоть до потери функциональности.
Realtime? Как раз, наоборот. Критические фрагменты кода всегда невелики. Зато требование распараллеливания и грамотного распределения ресурсов между процессами намного важнее.
Hishnik писал(а):
Когда неудобно.
Гораздо неудобнее рассматривать огромный кусок кода, как единую кучу мусора.
В принципе, можно придумать много вариантов и столько же контрвариантов, но одно ограничение несомненно. Код, весящий больше, чем может отследить программист просто опасен (даже если порожден тупыми средствами макрогенерации и/или копипаста). Именно поэтому я предлагал поискать алгоритм на пару другую страниц человеческого текста. Разбиение подобного материала на отдельно усвояемые ("отдельно работающие") леммы и теоремы практикуется всеми авторами.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-2012
СообщениеДобавлено: Вт дек 08, 2015 01:02 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Тем не менее, такой код не адресуется 16 битами. Да, можно его переделать, но это будет вынужденной мерой, тогда как 32 бита на адрес устраняют в корне.
gudleifr писал(а):
Realtime? Как раз, наоборот. Критические фрагменты кода всегда невелики.

Зато обработчиков может быть много, вплоть до невозможности разместить их все в 64к. В итоге нет гарантии того, что обработчик для нужного (и непредсказуемо приходящего) запроса уже подгружен в доступную память.
gudleifr писал(а):
Гораздо неудобнее рассматривать огромный кусок кода, как единую кучу мусора.
В принципе, можно придумать много вариантов и столько же контрвариантов, но одно ограничение несомненно. Код, весящий больше, чем может отследить программист просто опасен

Это же разные случаи - анализ исходного текста и размер сгенерированного кода. Никто не мешает логически разбивать программу на легко анализируемые модули. Просто потом, когда они все будут подгружены, возникнет закономерный вопрос "и почему они все вместе не помещаются в память, хотя ее гораздо больше 64к"? Еще раз обращаю внимания, что технические характеристики не то чтобы определяют требования к алгоритмам, однако достижение определенных результатов открывает возможности для постановки задачи на новом уровне. И если сейчас доступна память для программ с размером кода в мегабайты, имеет смысл подумать, а чем это может быть полезно. Ну вот люди и думают, и пишут программы. А глядя на них, пользователи ожидают подобных характеристик и от других программ.


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

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


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

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


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

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