crower: (Default)
[personal profile] crower
      Вот сижу, пишу программу. А профессиональная хоббишная деформация в бекграунде комментирует:
добавил в программу кучу строк-мутаген (я) спровоцировал появление пачки мутаций, увеличившие геном на пару килобайт
проверил корректность кода (perl -c)-мейоз прошёл успешно
запустил скрипт на исполнение/тестирование с заданными параметр-сетами-новый организм проверяется на жизнеспособность в разных условиях
проанализировал код. вынес дублирующиеся алгоритмы в отдельную подпрограмму-транспозоны в действии
один кусок кода не понравится, рядом скопировал его же и стал в новую копию вносить изменения-произошла дупликация гена. одна из копий попала  под последовательность прогрессивных мутаций
закоментил старый код-мутация пришласьна сайт транскрипции и ген выключился
снова погонял новый код, сравнивая со старым.-работает отбор, в котором конкурируют старый код с новым
новый код удобнее в сопровождении-новый ген оказался эффективнее. стрый ему проиграл и не выдержал конкуренции
удаляю старый закоменченый кусок кода-очередная мутация привела к потере очередного гена. тут можно поспорить: поскольку новый код призван был заменить страрый, то это была потеря не гена, а дуплицированного аллеля. согласен. однако, в процессе модификации нового кода эволюции дуплицированного аллеля я в него насовал дополнительные возможности. так что по факту он превратился уже в новый ген. :)
новый код в подпрограмме оказался на столько удачным, что я планирую по его образцу нагенерировать ещё пачку подпрограмм и внеся небольшие изменения заставить трудиться каждуго над своей задачей-если с предыдущей ситуацией можно ещё было поспорить, мол это никакая не дупликация и расхождение свойств по факту, хотя по процедуре и похоже, то теперь в чистом виде имеем многократную дупликацию и действительно расхождение аллелей с превращением их в разные гены.
вот неплохая процедурка, результат работы которой пригодится в разных местах программы. Правда в разных местах понадобится чуть-чуть отличающийся результат. Чтобы не плодить подпрограммы - чуть разные но слишком похожие, вносим в неё небольшие изменения - делаем параметро-зависимым её поведение. В результате в зависимости от переданных ей параметров она выдаёт в разных местах немного различающиеся результаты - ровно те, что требуются.-Вот тебе и альтернативный сплайсинг: в зависимости от факторов (передаваемы в процедуру параметров) логически работают разные последовательности. То есть
if ... then ... [else ...]
- аналог интронов/экзонов. Из кода они, конечно, не удаляются, но при исполнении кода при разных условиях работают разные его части. фактически это и есть созревание кода. Полной аналогии ожидать не надо. Куски кода как РНК по программе не гуляют (хотя, вообще-то бывает и такое), а остаются на месте. Аналог экспрессии, созревания происходит при запуске кода. Есил в биологическом организме один ген транскрибируется и транслируется в разные разнесённые в пространстве объекты, то в данном случае транскрипция/созревание/трансляция происходит при исполнении.

Зачем всё это мне? Затем что Киберморф я не забросил. Проект находится на стадии очередного обдумывания направления дальнейшего развития. А для этого тема продолжает исследоваться. Изучается вопрос: чем отличается среда биохимии и генетики от среды программной. Какими дополнительными условиями требуется обеспечит программную среду, чтобы эволюция киберморфов не барахталась, застряв в топологических ямах, а стала двигаться, хоть в каком-то направлении.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

crower: (Default)
crower

February 2018

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728   

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 24th, 2025 10:43 am
Powered by Dreamwidth Studios