суббота, 17 мая 2008 г.

Комментированный стандарт: предварительные итоги

Коллеги и друзья!

Я уже несколько раз писал о своей старой идее выпуска комментированного стандарта C++. Так вот, дело, кажется, сдвинулось с мертвой точки: некоторое время назад мы с коллегами из фирмы Интерстрон (www.interstron.ru) приняли решение о возобновлении этого проекта.

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

Многие в курсе, что сейчас рабочая группа ISO с бюрократической аббревиатурой JTC1/SC22/WG21 готовит новую редакцию стандарта C++. Скорее всего, окончательный текст будет готов к концу этого года, но формальная процедура принятия нового стандарта завершится не раньше, чем еще через год, а то и позже; по крайней мере, так оценивает сроки Страуструп). Нам показалось бессмысленным ждать момента формального принятия, и мы решили взять за основу нашего текста последнюю на настоящий момент версию (от февраля нынешнего года) предварительного стандарта («Working Draft», документ №2521, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2521.pdf).

Конечно, с формальной точки зрения Working Draft – это не стандарт. Однако, наш опыт работы с предыдущей редакцией стандарта от 1998 года (а тогда мы писали наш компилятор C++ параллельно с процессом стандартизации и вынуждены были оперативно отслеживать изменения, производимые в нем) показывает, что на завершающих этапах серьезных добавлений в текст уже не вносится. Разумеется, мы будем вносить в наш текст последующие изменения, которые появятся в новых драфтах,- вплоть до момента сдачи книги в типографию, насколько это будет в наших силах.

К данному моменту текст предварительного стандарта практически полностью переведен. Это основной итог напряженной работы последнего времени. На следующей неделе мы начинаем активную деятельность по анализу текста: собираемся определить, какие положения стандарта требуют комментирования, в чем должен состоять комментарий и т.д. Следующий этап – собственно комментарии. Да, кроме перевода и комментариев, текст будет включать дополнительные материалы: толковый словарь понятий C++ («Краткий стандарт», или просто «Краткий курс» :-)), обоснование выбранных вариантов перевода технических терминов, синтаксические диаграммы и кое-что еще.

Наконец, о сроках. Мы собираемся выпустить наш перевод в печатном виде ближе к концу года (точнее не скажу, чтобы не сглазить :-)). Технические подробности, связанные с выпуском, и текущие новости я буду сообщать в процессе. Будет ли сделана онлайн-версия перевода и если да, то когда – сейчас решается.