Рекурсия. Виктор Каика
нуклеотидов того или иного организма, знают все, но назвать это расшифровкой… Да, извлечь из клетки и записать ДНК в виде текста – это большое достижение, но использовать его лишь для сравнения с другими образцами при установления отцовства – слишком примитивно. И на самом деле как раз таки его, этот текст, и нужно расшифровывать. Ну да, геном состоит из множества комбинаций четырёх азотистых оснований – аденина, гуанина, цитозина и тимина, и вы соответствующими этим названиям буквами, то бишь – AGCT, так его и записываете. Но вот что, например, обозначает запись ACGTTCAC? Любой тебе скажет, что это бессмыслица. А ведь это код! И не просто код, а программа, управляющая развитием и жизнедеятельностью любого живого организма! У человека она длинной не в восемь букв, как в этом примере, а в три миллиарда! Ты представляешь, что там наворочено?!
– Саша, ты хочешь сказать, что ты дизассемблировал ДНК?!
– Ишь ты, каких слов нахватался! – рассмеялся Александр. – Не зря ты со мною общаешься! Но ты пойми, дизассемблировать код можно, только зная систему команд процессора, для которого этот код написан и который этот код выполняет.
– Да, кстати, Саша, давно уже хотел тебя спросить, ты мне можешь на пальцах пояснить, что это за зверь такой – система команд процессора? А то, каждое в отдельности – вроде слова понятные, а вместе – что обозначают, понять не могу, – рассмеялся Юрий.
Александр на секунду задумался. Потом взял лист бумаги и карандаш, написал подряд последовательность из четырнадцати цифр – 76015018125003 и спросил:
– Юра, это может быть кодом?
– Наверное, – ответил Юра и шутя добавил. – На номер телефона это не похоже.
– Но если это код, то что он обозначает, можно только догадываться, правда?
Юра ничего не ответил, и молча продолжал слушать.
– Теперь представь, что это, действительно, программа, и существует устройство, для которого она написана – устройство со своей системой команд. Например, оно различает и умеет выполнять следующие четыре команды, – сказал Саша и написал под цифрами четыре строчки.
1) 76 – повернуться и стать лицом на север.
2) 01 – пройти вперёд столько шагов, сколько указывают следующие две цифры.
3) 18 – пройти направо столько шагов, сколько указывают следующие две цифры.
4) 50 – копать вниз на столько метров, сколько указано в двух следующих цифрах.
– Ну-ка, ну-ка, – заинтересовался Юра улыбаясь. – Дай я попробую… Так. Стать на север, пройти вперёд 50 метров, пройти направо 12 метров, копать вниз на глубину 3 метра! Как всё просто! – он весело засмеялся.
– Да, когда известна система команд, действительно всё просто. Ты знаешь, почему в своё время компьютеры «Макинтош» проиграли гонку компьютерам IBM? Одной из причин было то, что процессоры, которые использовала фирма Apple, имели закрытую архитектуру – никто не знал их системы команд, хотя они и были как минимум на порядок круче процессоров фирмы Intel. А без системы команд, любая программа – это