Book.od.ua Книги для вашего бизнеса



Одесская библиотека бизнес литературы
полезные книги для бизнеса

6.13.В исправительной колонии.Часть Триннадцатая.

Занимаясь лингвистическими аспектами вычислений, я сожалел о том, что не за­нялся этим раньше. Я мечтал оставить Центр анализа бизнес-систем и стать насто­ящим ученым в области компьютерных технологий в подразделении 10, и я пред­принимал некоторые попытки. Но у меня не было ни рекомендательных писем, ни соответствующего образования, поэтому осуществление моей мечты оказалось совершенно невозможным.
Тем не менее большую часть моего пребывания в лабораториях Белла я работал над созданием компиляторов. Я посвятил несколько лет разработке и внедрению языка, который я назвал HEQS, "Hierarchical Equation Solver" ("иерархический ре­шатель уравнений"). Этот язык был предназначен для решения уравнений деловы­ми людьми, обладающими достаточными познаниями в математике, чтобы указать те уравнения, которые они желают решить, но у которых не хватало для этих целей либо математических навыков, либо времени. Название было выбрано в соответст­вии с остальными забавно-остроумными названиями Unix, но оно также было омо­нимом слова "hex" (дьявольщина), которое кратко отображало мое отношение к жизни в пятом корпусе.
Также, как lex или yacc, HEQS относился к непроцедурным языкам, т.е. поль­зователи могли ввести команду, которую они желали выполнить ("Реши это урав­нение!"), без необходимости указывать процедуру достижения поставленной цели. (FORTRAN и C, напротив, являются процедурными языками, при использовании которых программист обязан указывать в мельчайших подробностях все этапы вы­полнения задачи.) Пользователи могли попросить HEQS решить систему из тысяч алгебраических уравнений (линейных, нелинейных или одновременно тех и дру­гих); при этом они могли получить ответ с указанием, где именно в уравнении была допущена ошибка и почему его решение оказывается невозможным. Кроме того, HEQS анализировал системы уравнений; у пользователей была возможность про­следить отношение между исходными данными и полученным результатом и пронаблюдать за тем, как изменение одной переменной величины оказывает влияние на другие переменные. В сущности, это позволяло бизнес-пользователям в подраз­делениях AT&T заниматься определением соотношений в бизнесе или в расчетной модели, не беспокоясь о том, как решить математические уравнения.
Спустя шесть или семь лет, после наступления эпохи массовой компьютери­зации, специализированные электронные программы, такие как Visicalc и Lotus, предоставили необходимые инструменты для осуществления подобных операций. До тех пор специалисты подразделений AT&T использовали HEQS для решения мо­делей, а программисты нашего Центра применяли его в качестве блока для решения уравнений во многих разрабатываемых нами приложениях. Я был очень доволен тем, что мне удалось прикоснуться к миру исследований посредством описания HEQS в одном из выпусков AT&T Technical Journal.4
Досконально изучая lex и yacc в разрезе разработки новых языков и построения их компиляторов, я самостоятельно разработал HEQS. Как только пользователь вводил уравнения, моя программа перегруппировывала их в последовательность маленьких уравнений, располагая их в таком порядке, чтобы результат решения одной группы уравнений являлся исходными данными для решения следующей. Вдохновляемый обучающими курсами по компьютерным технологиям, которые я посещал в лабора­ториях Белла, я осознал, что существует возможность представить каждую перемен­ную в группе уравнений как точку на графике; при этом перегруппировка уравнений была эквивалентна декомпозиции графика на его взаимозависимые составляющие. Я наивно гордился тем, что занимаюсь настоящей математикой.
К кому бы я ни обращался за помощью, всегда находил полезные ресурсы. Я обнаружил, что Крис Ван Вик, служащий MTS отдела компьютерных технологий в подразделении 10, написал перечень инструментов Unix для решения уравнений. Он начал работать над этим проектом еще в период написания своих тезисов к док­торской диссертации в Станфорде. Его консультировал Дональд Кнут, известный автор трехтомника "Искусство программирования"5 и изобретатель TeX, широко используемого языка для набора математических формул и текстового процессо­ра, который стал стандартом среди ученых. Мой друг Стив Блаха, занимавшийся изучением физики элементарных частиц, сообщил мне, что Кнут был его коллегой и соседом по комнате в общежитии. В процессе нашей совместной работы я был впечатлен профессионализмом Криса в сфере программирования. Я был люби­телем и действовал по наитию, в то время как Крис был истинным ученым в этой области. Рядом с ним я чувствовал, что навсегда останусь любителем.


Понравился материал? Поделитесь с друзьями!

<< Предыдущая статьяСледующая статья >>
6.12. В исправительной колонии.Часть Двеннадцатая. 6.14.В исправительной колонии.Часть Четырнадцатая.





Убедительная просьба при использовании любых материалов Одесской электронной бизнес-библиотеки ставить активную ссылку на наш сайт. По всем вопросам касательно сайта пожалуйста пишите на почту
      Карта сайта