Дмитриев Павел : другие произведения.

Панегирик Apl и др

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
Оценка: 4.61*10  Ваша оценка:
  • Аннотация:
    Третий кусочек от oal, 17.02.13

   Панегирик APL (17.02.13)
  
  Был же в НИИ "Интел" какой-то чин на должности научного руководителя -- там, диссертации сотрудников подписывать и щеки надувать? А что, если он не ограничился бы только этим? Пангерик APL.
  
   ***
  
   Здравствуйте, товарищи! В первую очередь, я хотел поблагодарить Петра Юрьевича Воронова за возможность выступить на совместной конференции сотрудников НИИ "Интел", НИИ 742, НИИ 581 и вычислительного центра АН УССР, посвященной языкам программирования. Мой доклад посвящен весьма нетрадициональному языку APL, недавно разработанным Кеннетом Иверсоном. Считаю, что вариант данного языка будет востребован в нашей стране в инженерный и физических расчетах.
  
   Я проанализировал популярные предложения по языкам программирования, развитие некоторых из них было уже предложено предыдущими докладчиками. Я условно разделю их на четыре группы.
  
   Первая -- это варианты ФОРТРАНа. Язык создавался для математических вычислений, имеются программы для различных областей вычислений. Однако, классический ФОРТРАН -- очень старый язык, фактически это один из первых языков программирования. Очень сложно будет адаптировать ФОРТРАН к современным требованиям и не потерять совместимость со старыми программами. Разные варианты ФОРТРАНа малосовместимы даже между собой!
  
   Вторая группа -- язык БАЗОВЫЙ, реализован в рекордные сроки в НИИ "Интел". Несмотря на то, что это наша разработка, подвергну ее критике. Язык создан профессиональными схемотехниками. Да, это ирония, товарищи. Единственные преимущества БАЗОВОГО -- это то, что он уже существует и что он достаточно прост. Все остальное -- недостатки. Для задач арифмометра-переростка он вполне пригоден. Вычислительная мощность нашего аппаратного комплекса КЗУП-01 "Денди" вполне достаточна для выполнения задач на БАЗОВОМ. Однако я не могу считать БАЗОВЫЙ полноценным языком программирования. Это ограничения самого языка, а не метода его выполнения!
  
   БАЗОВЫЙ обнажил одну проблему, от которой страдают первые две группы. Как вы и сами знаете, товарищи, написание транслятора языка программирования в машинные коды -- сложная, нетривиальная задача. Именно поэтому мы смогли реализовать БАЗОВЫЙ так быстро. Язык не компилируется. (Ропот.) Да, товарищи, БАЗОВЫЙ является интерпретируемым языком. И это не сильно ограничевает скорость выполнения программ! (Ропот продолжается.) Товарищи, предлагаю обсудить БАЗОВЫЙ после доклада, я пока я продолжу.
  
   Третья группа -- это варианты АЛГОЛа. Я, к сожалению, так и не увидел ни одной полной реализации спецификации этого языка. (Смешки в зале.) Подмножество АЛГОЛа -- это весьма полезный формализм, такое подмножество может быть базой для нового языка. Однако, стоит ли цепляться за АЛГОЛ?
  
   Четвертая группа -- даже не языки, а аппаратно-програмные комплексы для инженерных задач, как то МИР. МИР позволяет описывать проблему на более высоком уровне, чем ФОРТРАН и АЛГОЛ. Я предлагаю совместить идеологический подход МИРа с нашим аппаратным комплексом КЗУП-01 и зарубежным опытом разработки инженерных языков программирования.
  
   Разработка APL Кеннета Иверсона представляет собой фактически запись математического формализма на вычислительной машине. Исполнимую запись! Однако, главным преимуществом APL является не это. APL активно использует массивы данных как аргументы и результаты операторов. Можно записать векторы, матрицы, тензоры как массивы и определить такие операторы как поэлементное сложение, произведение матриц, скалярное произведение, норма. Это понятно и привычно инженерам, математикам, физикам. APL избегает записы циклов. Зачем организовывать цикл для сложения элементов массива, когда можно определить оператор "сумма массива"?
  
   Более того, имеет смысл определить оператор "куммляция массива в одно значение", инстанциированный оператором суммы элементов. Если мы захотим реализовать оператор для произведения элементов массива, это будет тривиально. Также, операторы вида "применение оператора к каждому элементу массива" или "слияние двух массивов в один" позволяют сильно поднять уровень абстракции языка. Да, товарищи, уровень абстракции! Это именно тот инструмент, который позволит нам отойти от машинных кодов и примитивных инструкций ФОРТРАНа!
  
   Имеет APL и недостатки: используется запись очень близкая к математической, что делает ее ввод и вывод в вычислительное устройство сложным. Однако, это всего лишь проблемы синтаксиса! Считаю, что заменить экзотические символы, как-то "дельта" или "перпендикуляр" на короткие назвния операторов не будет сложно.
  
   Для выполнения на КЗУП-01 считаю правильным учесть опыт БАЗОВОГО и сначала написать интерпретатор. Товарищи, страна не может ждать два года, пока наши сотрудники не реализуют компилятор! Мы должны дать инженерам и физикам инструмент расчетов уже завтра! Если руководство НИИ 581 сочтет нужным, его сотрудники могут учесть опыт разработки транслятора нашего варианта APL и разработать соответствующий компилятор для "больших" машин. Однако, это уже дело будущего.
  
   Резюмируя: я предлагаю создать интерпретируемый язык для инженерных расчетов на основе существующих разработок. Это язык будет востробован в науке и на производстве. Высокий уровень абстракции поможет выражать задачи коротко и понятно даже для неспециалистов в вычислительной математике. В случае принятия нашим руководством решения о поддержке этого направления, коллектив НИИ "Интел" берет на себя повышенные обязательства написать реализацию APL и дать ее рабочим, инженерам и научным сотрудникам нашей страны уже через четыре месяца! Спасибо за внимание, товарищи!
  
  
  
  Цифрокассетник (03.01.13)
  --------------
  
  Как показало впоследствии проведенное раследование, началось все опять с Федора. Этот... хиппи творчески переосмыслил наши опыты с записью данных на винил. После чего распотрошил "Денди", шарповский кассетник и взяв пару микросхем со склада, изваял из них то, что перевернуло мир. В прямом смысле. Иностранных магнитофон был неплох, он послужил донором для лентопротяжного механизма и качественной магнитной головки. Гибридом из советского операционного усилителя и останков вражеской техники стал записывающих тракт, "тянущий" не 20 КГц, как нужно в аудио, а все 70. На "Денди" была реализована простенькая программка для сжатия звука -- не современное мне mp3, а что-то гораздо более примитивное, но работающее. Федор потом говорил что-то о "ужатии нулей", а профессионалы морщились и говорили, что все можно было сделать гораздо лучше. Но поезд-то уже ушел.
  
  Основным компонентом чуда техники были военные микросхемы ЦАП/АЦП. Они позволяли перевести в цифровую форму и потом восстановить аналоговый сигнал. Любой. С частотой дискретизации до 50 КГц. Мой умелец (будь он здоров, гад!) взял 44 килогерца. Как в воду глядел! Ну или гениальные мысли приходят в голову многим. В общем, по теореме Котельникова, он мог восстановить те самые аудиофильные 20 КГц из своего цифрового сигнала. Без потерь.
  
  Этот г-г-гений (нет, до сих пор злость берет!) из кусков ширпотреба и военного мусора изваял iPod 60-х. Цифровой аудиомагнитофон. Да, размеров со шкаф. Да, на кассету на 90 аналоговой минут влезало всего 30 "цифры". Но зато чудо-агрегат воспроизводил музыку так, как и не снилось отечественному "классу ноль". И, самое главное -- скрестив два таких чуда техники, музыку можно было переписывать. Без потерь.
  
  Слова "копирайт" в Советском Союзе и на 30 лет позже не понимали. А уж как цвел "магнитофон-издат" я знаю не только по рассказам, но и по пыльным стопкам бобин с пленкой. А теперь, прямо в 1969 году, оказалось, что можно переписывать с затертой десятой копии не только Высоцкого -- потому что за шумами никого больше не расслышишь -- а хоть симфонический окрестр. Хоть "битлов", хоть "ролингов". Представляете себе эффект?
  
  Нет, Вы его себе не представляете. Потому что другой безвестный умелец вместо двух военных чипов использовал четыре гражданских -- в девичестве бракованные "половинки" военного производства. А "Денди" можно или свинтить со станка на заводе или купить жутко дефицитный набор "Радио-69". Или даже игровой автомат разбить. Зато: музыка! На халяву! Любая! И не надо искать знакомого с как минимум "второй" копией чтобы что-то расслышать.
  
  Когда производством "цифриков" начали заниматься какие-то мутные артели, в течении двух месяцев имевшие оборот больше, чем у ВЭФа, наверху, наконец, зашевилились. Конечно же, сначала была ведерная клизма мне, "безопасникам", Федору, научруку и всем МНЭсникам заодно -- чтобы не расслаблялись.
  
  Но потом, потом... Когда в приватной бесседе Шелепин "распробовал" основные преимущества "цифровой революции" -- колеса МЭПа закрутились так, как никогда раньше. Весь "Интел" работал в четыре смены. МЭП и Внешторг в полном составе -- в две. Через полгода "iPod" был анонсирован на внешнем рынке. Название лицензировали у Кларка с Кубриком. А еще через три месяца МЭП открыл два фабрики во Вьетнаме, одну на Кубе и еще одну в Мексике. Через два года почти все звукозаписывающие лейблы разорились. Оставшиеся зарабатывали на бонусах и подарочных изданиях да "несдавшихся" цифре группах. И то, исключительно благодаря государственной поддержке.
  
  Джон Ленон и Пол Маккартни обнявшись объявили о приеме пожертвований и бесплатном распространении своих альбомов. Только-только возникшие "Queen" совершенно не возражали против копирования своего первого, чуть-ли не бутлеговского концертника. Хиппи интегрировали "право на музыку" практически моментально. iPod 2, работающий от восьми огромных баттареек, стал таким же аттрибутом хиппи как марихуанна, пацифизм, LSD, свободная любовь и тетрис. Люди, как "там", так и "здесь" очень быстро привыкли к свободному копированию музыки. И, подозреваю, что с фильмами и программами будет точно так же. Мир победившего опенсорса, за 20 лет до его возникновения, ну надо же! Благодаря одному раздолбаю с конским хвостом и любовью к музыке мир изменился гораздо сильнее, чем из-за всех моих потуг. Впрочем, не к этому я стремился. Совсем не к этому.
  
  Шифроконтора (ноябрь 2012).
  -------------
  Месяцев через восемь после произведшего фурор появления в "Шифроконторе" непоятно откуда добытых алгоритмов шифрования на абсолютно новых принципах, в ней же "всплыли" и совершенно другие алгоритмы. Официально "Шифроконтора" именовалась каким-то богом забытым специальным подразделением при -цатом управлении КГБ, но все сколь-либо искушенные знали, что этот отдел занимается шифрованием и только шифрованием. Причем не банальным взломом чужих шифров, а разработкой своих. Да, эти области связаны друг с другом и каждое творение конторы проходило проверку своих заклятых коллег, но специализация была на лицо. И тут -- какое-то умножение! Нонсенс!
  
  // "Шифроконтора" и ее специфика высосаны из пальца. О криптографии в 60-80-е годы в СССР известно очень немногое.
  
  Еще три года назад безвестный к. ф.-м. н., а теперь уже начальник отдела переспективных методов (так обозвали отдел асиммитричной криптографии -- не называть же его прямо, на самом деле, когда сам факт существования таких алгоритмов -- гос. тайна!) Василий Соловьев был единственным, кому эта инициатива с Самого Верха очень понравилась.
  
  -- Поймите же, -- увещевал он своего начальника, - это сейчас длинные цепочки блочных шифров переспективнее! Будущее за асимметричными методами! И если на нахождение подходящих параметров семейств эллиптических кривых нам нужно еще время, то похожий подход над конечными полями сам падает к нам в руки! Все, что нужно -- это вот эти алгоритмы. И наши товарищи их нам достали!
  Соловьев несколько кривил душой. Причем дважды. Во-первых, по его оценке, эллиптические кривые "не взлетят" еще лет 10. И бОльшая часть этого времени уйдет на создание математической теории, а не обсчет параметров и реализацию алгоритма. Во-вторых же, там не только быстрое умножение нужно, но и много еще чего. Но не упускать же шанс еще раз утереть нос самому Колмогорову! Пусть даже тот об этом никогда не узнает.
  Василий помнил, как 22-летним студентом он сидел на семинаре Великого Гуру. Колмогоров тогда как угорелый носился с гипотезой, что умножение принциально нельзя реализовать быстрее, чем за квадратное время. Грубо говоря, для двух чисел длинной n бит нужно затратить примерно n^2 операций. И тут, через неделю после его пафосного доклада о этой гипотезе к нему подходит Толик Карацуба с каким-то вопросом. А еще через неделю орел наш, действительный член АН с перекошеной рожей докладывает о новом алгоритме, умножающем быстрее, чем за квадратное время. И досрочно закрывает семинар. Обиделся, сердечный.
  
  // ТББ уже вышла? Кажется нет, надо убирать отсылку!
  
  Так вот, алгоритм Толи, конечно, прост и неплох, но ему нужно примерно n^1.53 операций. Если то, что написано в этой не понятно где спертой и, кстати, не понятно почему вусмерть отцензуренной книжке -- правда, то это еще одна пощечина Гуру. А ведь оно похоже, похоже, таки работает, хотя там одно место еще надо бы прорешать...
  Соловьев замечтался и не заметил, как с последнми его словами лицо полковника Кузнецова начало наливаться багрянцем.
  
  // Персонажи вымышленные
  
  -- Достали! Достали, дурень! А ты не думал, где они это достали, а?
  -- Но это как-бы не наше де...
  -- Не наше дело? Да, вопросы задавать не твое дело! А ты не думал, что если эти алгоритмы где-то достали, то их где-то придумали?! Что где-то в Лэнгли или еще черт знает где сидит такая группа криптографов и математиков, которая эти все гениальные штуки придумывает и, заметь, -- не публикует! Они бурят науку на какую-то спец-службу, а мы об этом узнаем от каких-то варягов, которые спиздили у кого-то со стола закрытую монографию и сидят, дырки для ордена вертят! Причем нам дали только выдранный из середины кусок! Уцензуренный в ноль! Почему об этом не узнали мы? Где радиоперехваты? Где шифрограммы? Где следы этих охуенно стойких шифров? Да даже на посольской линии их нет!
  
  // Кузнецов намекает на вскрытие и перехват сообщений от американского посольства в МИД, идущих по специальному, защищенному кабелю. Аналогичный случай, но с советским представительством, был в Берлине, в 1953 году -- операция "Золото". Считается, что тоннель-подкоп обнаружили до официального скандала и гнали по этому кабелю дезинформацию и маловажные данные.
  
  -- Эээ...
  -- Бэ! Задумался, наконец! Оно хоть работает, Вася? Это не деза?
  -- Да вроде нет, Александр Васильевич...
  -- Вроде?! Опять твое "вроде"! Ты мне точно скажи! Срока тебе -- неделя!
  У Соловьева оставалось семь дней, чтобы понять, как этот чертвов алгоритм работает так быстро и почему "+1", а не "-1" по модулю _так_ важно для этого чертового быстрого умножения с помощью преобразования Фурье.
  
  // Быстрое умножение с помощью преобразования Фурье, о котором идет речь тут было опубликовано Шёнхаге и Штрассеном в 1971 году. Умножение двух целых чисел выполняется за O(n log n log log n) операций. В 2007 году Мартин Фюрер опубликовал работу, в которой умножение выполняется "почти" за O(n log n) -- O(n log n 2^O(log* n)).
Оценка: 4.61*10  Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"