суббота, 11 августа 2007 г.

Проект С11 и компилятор C++ Интерстрона

Пришел такой вопрос:

Анонимный комментирует...
В 1999 году Интерстрон вроде разрабатывал компилятор С11, самой любопытной особенностью которого была поддержка русского синтаксиса (причём достаточно хорошо проработанного).Вы не в курсе, какова судьба этого проекта?? Где его можно найти чтобы посмотреть??


Отвечаю.
С11 - довольно давний проект, который начался в конце девяностых (тогда нынешний Интерстрон еще назывался МедиаЛингва:Компиляторы). Действительно, одной из идей была поддержка русских эквивалентов служебных слов. Надо отметить, что кириллические идентификаторы по определению языка должны поддерживаться любой реализацией стандарта ISO, так что речь шла именно о служебных словах. Нам казалось, что "кириллические" программы было бы легче сопровождать - конечно, если программу не надо было переносить в другие среды. Кроме того, русские служебные слова помогли бы при начальном изучении языка - особенно для тех, кто не слишком хорошо владеет английским.

Русские эквиваленты служебных слов были и вправду достаточно тщательно продуманы; есть документ, который подробно обсуждает, почему были выбраны именно те, а не иные эквиваленты. Возможно, этот текст до сих пор лежит на сайте Интерстрона. Те, кто интересуется историей вопроса, могут найти мою статью в "Мире ПК", номер 4 за 1999 год: http://www.osp.ru/pcworld/1999/04/160292/. Там все описано (правда, довольно кратко - статью при публикации сильно обрезали).

Я сейчас не собираюсь ни отстаивать такой подход, ни критиковать его - в свое время происходили довольно бурные дискуссии на эту тему (кое-что, кажется, до сих пор можно найти в Интернете), и все это ушло в прошлое. Единственное, что хочу сказать: тогда нами двигал не дурной патриотизм, а вполне прагматические соображения: нам действительно казалось, что продукт найдет достаточное количество заинтересованных потребителей.

Вообще-то, подобная "локализация" языка программирования - вовсе не какая-то экзотика. Первые российские компиляторы Фортрана и Алгола-60 были русскоязычными. В свое время был разработан компилятор PL/I для "Эльбруса" с двумя наборами служебных слов. В Алголе-68 была предусмотрена стандартная возможность перенастраивать язык на различные "культуры", как сейчас говорят. Есть и другие примеры. Так что мы не ощущали себя маргиналами; наоборот, нам казалось, что мы делаем как раз то новое, что на самом деле хорошо забытое старое...

Проект С11 не был доведен до коробочного продукта по причинам, не связанным с его "русскоязычностью". Тем не менее, собственно компилятор C++ полностью разработан и тщательно оттестирован. Он и сейчас вполне себе жив, развивается и распространяется на рынке софта для спецпроцессоров, в чем можно убедиться, зайдя на сайт www.interstron.ru.

Комментариев нет: