Заключение. Полетит?

К настоящему времени (конец 1997 года) мы далеко ушли от версии, сданнойбельгийцам в конце прошлого года. Теперь компилятор соответствует последней,декабрьской версии Предварительного Стандарта и успешно проходит примерно 98%всех тестов. Заметно быстрее работает синтаксический разбор, почти полностьюреализованы шаблоны. Наконец, теперь он перенесен на платформу Intel (в видеконсольного приложения для Windows’95), а в конце года должен заработать нашсобственный генератор кода для Win32.

Мы подготовили эскизный проект совершенно новой версии компилятора, надеемся,свободного от проектных ошибок, которые уже невозможно выковырять из теперешнейверсии и в котором заложены очень заманчивые решения (и, конечно, новыеошибки!).

Наконец мы получили опыт, ценность которого безмерна. Такими малыми силамиполностью пройти проект почти предельной сложности (теперь мы можем утверждатьэто совершенно определенно), получить в итоге работающую программу с приличнымихарактеристиками?—?это было огромным уроком, некоторые фрагменты которого я ипостарался показать. Кстати, задержка реализации компилятора (значительная посравнению с первоначальными сроками, но вполне естественная, если принять врасчет его действительную трудоемкость) дала один положительный эффект: мысмогли на практике оценить и оперативно пересмотреть многие проектные решения,опробовать несколько вариантов и выбрать наилучший в конкретных условиях.

Знакомые ребята из одной московской фирмы, разрабатывающейпрограммно-аппаратные комплексы на основе микроконтроллеров, некоторое времяназад написали компилятор ANSI Си для одного семейства однокристальныхмикроконтроллеров. Их история оказалась несколько похожей на нашу, что можетговорить о типичности явления. Они делали компилятор по заказу известнойамериканской фирмы, в контракте с которой был пункт об оплате всей работы послепроведения тестирования. Сроки тестирования никак не оговаривались, а проводитьего должны были сами заказчики. Через год компилятор был полностью готов(вместе с библиотеками, отладчиком, макроассемблером, программным эмуляторомпроцессора и средой разработки!), однако, к этому времени ситуация изменилась:американцы, видимо, потеряли интерес к разработке и… просто не сталипроводить тестирование! Придраться было не к чему, буква контракта нарушена небыла. В результате фирма осталась без денег, правда, с компилятором, которыйтеперь стал, естественно, их собственностью.

Но… нет худа без добра. Теперь они распространяют его сами и продают до шестикомплектов в месяц. У нас, в России, продается компилятор, разработанный вРоссии же, и покупают его наши пользователи! Как хотите, а это здорово.

Однако их опыт не слишком подходит нам. Ниша, образуемая системным программнымобеспечением для микроконтроллеров, в гораздо меньшей степени насыщена такимиинструментами, как компиляторы языков высокого уровня. Поэтому у ребят остаютсянеплохие шансы выйти и на мировой рынок, который, конечно, существенно шире.Что же касается инструментов общего назначения, то здесь конкуренция оченьжесткая. Примеры превосходных систем программирования на Си++ для любыхплатформ известны всем. Что из того, что наш компилятор лучше соответствуетстандарту? Зато он не интегрирован с редактором, с отладчиком, у него нет"Менеджера Проектов" и других полезных штучек. Даже несмотря на наличиесобственного генератора кода он, по существу, остается полуфабрикатом,пригодным для включения в какую-нибудь интегрированную среду, в которой естьвсе, что надо, но по недосмотру не оказалось компилятора. Сами мы такую средуне напишем?—?мало сил, не та квалификация, и вряд ли у нас это получитсяпрофессионально (каждый должен заниматься своим делом). Кому нужен такойпродукт?

Правда, не все так уж плохо. Весь последний год мы работали по контракту снебольшой, но серьезной российской фирмой, создающей заказныепрограммно-аппаратные комплексы и спроектировавшей собственный (sic!)специализированный процессор (опытные экземпляры вот-вот появятся; еще одинпример того, что не все занимаются проталкиванием импортных решений!). Мыпринимали участие в разработке системного ПО для этого процессора иадаптировали для него свой компилятор. Что получится из этого проекта, пока неизвестно. Многое зависит от того, как код, сгенерированный нашим компилятором,заработает на реальном "камне", а не на эмуляторе, и от того, сможет ли фирмазаинтересовать этой разработкой потенциальных заказчиков. Однако факт остаетсяфактом: наш компилятор получил (пусть даже очень небольшое) признание, оказалсявостребован.

Однако принципиально ситуация не изменилась. Возможное использованиекомпилятора в одном проекте, к тому же еще не доведенном до конца, никак нельзяназвать успехом. Вопрос "летает?—?не летает?" по-прежнему остается без ответа ипо-прежнему мучает нас.

Тем не менее мы остаемся оптимистами. Самолет уже поднят из подпалубного ангараи выведен на стартовую позицию, крылья разложены, двигатели работают,прогреваясь, аппарат наполняется мелкой дрожью, которая передается пилотам, ужевключившим все приборы. С вышки вот-вот прозвучит команда, выводящий внаушниках махнет флажком и отбежит в сторону, двигатели взревут, переходя врежим форсажа, и истребитель, подброшенный дугообразным завершением палубыавианесущего крейсера, почти вертикально уйдет в небо.









 


Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Верх