Далее ключевой вехой в таймлайне электронных таблиц считается изобретение инженеров Рене Пардо и Реми Ландау «процесса и устройства (программы-компилятора), выполняемых на цифровом компьютере для преобразования исходной программы в объектную». Оба они были канадцами, детьми эмигрантов из Европы, оба получили магистерскую степень, то есть законченное высшее образование в Гарвардском университете в 1969 году и, вернувшись домой и устроившись там на работу в Bell Canada (дочка Bell System, а по сути — AT&T Corporation), разработали в том же году (по словам Пардо, за 6 недель) алгоритм автоматического вычисления естественного порядка в электронных таблицах, как это сейчас называют. Судя по дальнейшим событиям, главным в их дуэте, во всяком случае в администрировании их изобретением, был Рене Пардо. В 1970 году он учредил компанию LANPAR Ltd. (в дальнейшем LANPAR Technologies Inc.), и в августе того же 1970 года Пардо и Ландау подали заявку на свое изобретение в Ведомство США по патентам и товарным знакам, но как физические лица.
В преамбуле своего патента они достаточно внятно, вероятно, в расчете на уровень знаний топ-менеджеров, с примерами, картинками и даже кратким словарем программистских терминов объясняют суть своего изобретения. Цитата длинная, но она гораздо понятнее объясняет суть их изобретения, чем в трудах IT-историков, где она, эта суть, теряется в изобилии IT-терминов, о которых Пардо и Ландау тогда еще понятия не имели, и — главное — понятна сейчас даже обычному человеку без диплома айтишника.
«Ценность обработки данных для решения бизнес-задач хорошо известна, — писали они. —Однако компьютеры — это сложные машины, которые необходимо программировать для решения таких задач. Поэтому компаниям приходится нанимать команды высококвалифицированных программистов, которые вместе со специалистами, решающими те или иные задачи (например, бухгалтерами, экономистами, закупщиками, менеджерами и т. д.), пишут программы для компьютеров. Задачи, которые приходится решать каждому специалисту, специфичны для его области и, к сожалению, зачастую очень сложны для понимания программистом. Программист, в свою очередь, работает на специализированном языке, совершенно незнакомом обычному бизнесмену. Бизнесмен понимает свою проблему и знает, как решить ее вручную, но сложность заключается в том, чтобы перевести процесс решения в форму, удобную для обработки компьютером. Из-за таких проблем в коммуникации между бизнесменами и программистами использование компьютеров стало гораздо более затратным и сложным.
До данного изобретения программист был вынужден следовать логическому порядку написания программы, который был понятен компьютеру. Другими словами, программист был вынужден учитывать порядок выполнения компьютером формул его программы. Это очень сложная и утомительная задача. Таким образом, целью данного изобретения является создание процесса и устройства для компиляции, которые позволят бизнесмену, ранее не имевшему дела с компьютерами, после непродолжительного обучения самостоятельно писать исходные программы для приложений по обработке данных.
Целью данного изобретения также является предоставление бизнесмену возможности после того, как проблема будет должным образом выявлена и структурирована, писать исходные программы в логичной для него последовательности, необходимой для решения проблемы, не обращая внимания на логический порядок выполнения программы, необходимый для ее обработки компьютером. Процесс и устройство компиляции, разработанные в рамках данного изобретения, выполняют функцию преобразования исходной программы в объектную программу, в которой формулы представлены в порядке, сохраняющем взаимосвязи и логику исходной программы, но при этом позволяющем компьютеру выполнять объектную программу. Другими словами, сложную задачу определения порядка, в котором программа должна быть представлена компьютеру, выполняет компилятор, оставляя бизнесмену привычную и относительно простую работу по написанию исходного кода.
Достаточное количество формул исходной программы анализируется в области памяти компьютера, чтобы определить, по крайней мере, одну из них. Этот этап анализа повторяется для достаточного количества формул, которые еще не определены как заданные, чтобы определить по крайней мере еще одну заданную формулу. Повторный этап анализа продолжается до тех пор, пока не будет установлено, что все формулы исходной программы заданы. После того как конкретная формула определена, указывается порядок ее выполнения компьютером по отношению к выполнению других формул.
Желательно, чтобы первая формула исходной программы проверялась в первой области памяти компьютера на предмет того, определена ли она. Если да, то она удаляется из первой области памяти, помещается во вторую область памяти компьютера и помечается как определенная. Если первая проверяемая формула не определена, она остается в первой области памяти. Затем во второй области памяти проверяется вторая формула исходной программы, и, если она определена, формула переносится в следующую доступную позицию во второй области памяти и помечается как определенная. Если вторая проверяемая формула не определена, она остается в первой области памяти. Эти действия повторяются для каждой формулы исходной программы, и после первой проверки всех формул определяется, были ли какие-либо формулы добавлены во вторую область памяти. В противном случае процесс останавливается, что указывает на ошибку в программе. Однако если хотя бы одна формула была определена и помещена во вторую область хранения, этапы проверки, удаления, пометки и сохранения формул повторяются для каждой формулы, которая все еще находится в первой области хранения. Этот процесс повторяется столько раз, сколько необходимо, чтобы определить все формулы, удалить их из первой области хранения и разместить в новом порядке во второй области хранения. После этого формулы будут расположены в порядке, удобном для выполнения компьютером, но при этом сохранят исходную логику программы».
Далее идет обещанный в начале преамбулы патента словарик терминов, используемым в данном описании и в формуле изобретения:
«ИСХОДНАЯ ПРОГРАММА — компьютерная программа, которая должна пройти процесс компиляции или ассемблирования, чтобы стать исполняемой на компьютере. Она может быть написана на символическом языке программистом, храниться на внешнем носителе, например в колоде перфокарт, или в закодированном виде в памяти компьютера.
ОБЪЕКТНАЯ ПРОГРАММА — компьютерная программа, представляющая собой исходный код в исполняемой компьютерной форме. Она может храниться на внешнем носителе, например в колоде перфокарт, или в памяти компьютера.
КОМПИЛЯТОР — компьютерная программа для преобразования исходного кода в объектный код.
ФОРМУЛА — это один или несколько шагов выполнения инструкций, таких как сложение, умножение, сравнение, извлечение данных из хранилища и т. д., которые представляют собой функцию, выполняемую компьютером в рамках компьютерной программы.
ОПРЕДЕЛЕНИЕ ФОРМУЛЫ — (а) если результат вычисления по какой-либо другой формуле не требуется для выполнения компьютером функции, для которой предназначена эта формула, или (б) если такой результат необходим, то требуемая формула уже определена.
ФОРМУЛА НЕ ОПРЕДЕЛЕНА — если для выполнения функции формулы компьютеру требуется результат какой-либо другой формулы, а сама требуемая формула не определена».
«Наше изобретение было успешно реализовано на компьютере с разделением времени серии 400 компании General Electric», — так заканчивают преамбульную часть описания «для чайников» своего изобретения Пардо и Ландау и переходят к его деталям. К этому можно лишь добавить, что GE-400 — серия компьютеров с разделением времени, что позволяло нескольким пользователям одновременно получать доступ к центральному компьютеру через терминалы.
Патентную заявку Рене Пардо и Реми Ландау Ведомство США по патентам и товарным знакам отклонило, что называется, с порога. Математические идеи не подлежали патентованию, а компьютерное ПО как раз в 1960-е годы по решению Верховного суда США подпадало под это определение как «серия математических вычислений или мысленных шагов». Как, например, та же теорема Пифагора (никем не запатентованная, кстати, до сих пор). Правда, чисто теоретически в патентной юриспруденции была лазейка — computational idea patents (патенты на вычислительные идеи), каковые защищают не сам код программы, а ее алгоритм, метод или принцип вычислений, который решает конкретную задачу. То есть, если воспользоваться аналогией, закон Архимеда патентованию не подлежал, а все его практические приложения в области гидростатики — пожалуйста.
Пардо и Ландау попробовали этим воспользоваться в октябре 1971 года подали поправку к заявке на патент, но результат ее был тот же — отказ в патентовании. Еще одна поправка в их патент, поданная ими в июне 1972 закончилась тем же. Эта патентная тяжба продолжалась 13 лет, пока в июле 1983 года они наконец нее получили патент США №4398249 (с приоритетом от 12 июля 1970 года), когда на ПК бухгалтеров уже стояли ПО электронных таблиц VisiCalc и Lotus 1-2-3. Но и на этом суды не прекратились. На этот раз уже по инициативе Пардо и Ландау. Их компания LANPAR Technologies Inc. передала все права на свой патент компании Forward Systems. Та, в свою очередь, передала 5% прав на патент компании REFAC в обмен на обещание подать в суд на выгодоприобретателей от задержки патента Пардо и Ландау, среди которых, кстати, фигурировала и Lotus Development Corporation со своим табличным процессором Lotus 1-2-3. В итоге новый суд кончился тем, что патент Пардо и Ландау был в 1995 году признан недействительным. Подробности всей этой юридической патентной истории желающие могут посмотреть сами, например здесь.
Но пока шли эти суды ПО Пардо и Ландау под названием LANPAR (LANguage for Programming Arrays at Random — язык программирования для массивов случайных чисел) в 70-е годы использовалось компаниями Bell Canada, AT&T и 18 операторами телефонной связи по всей стране для составления местных и национальных бюджетов, а также для своего бюджетирования компанией General Motors. Сама же компания Рене Пардо LANPAR Technologies Inc. выросла до крупнейшего в Канаде независимого дистрибьютора компьютерных терминалов с сервисными центрами во всех крупных городах страны (продажа, аренда и обслуживание компьютерных терминалов в основном продукции Digital Equipment Corporation) и принтеров. В 80-е годы она занялась продажами ПК, а в 1986 году выпустила собственный IBM XT-совместимый LANPAR PC. Но здесь она конкуренции не выдержала и тихо скончалась в 2003 году.
О сервисе Онлайн Патент:
Онлайн Патент — цифровая система № 1 в рейтинге Роспатента. С 2013 года мы создаем уникальные LegalTech‑решения для защиты и управления интеллектуальной собственностью. Зарегистрируйтесь в сервисе Онлайн Патент и получите доступ к следующим услугам:
-
Онлайн‑регистрация программ, патентов на изобретение, товарных знаков, промышленного дизайна;
-
Опции ускоренного оформления услуг;
-
Бесплатный поиск по базам патентов, программ, товарных знаков;
-
Мониторинги новых заявок по критериям;
-
Онлайн‑поддержку специалистов.
ссылка на оригинал статьи https://habr.com/ru/articles/1060360/