Rus Eng
О компании
Технологии
Разработчикам ПО
Производителям микроконтроллеров
Партнеры / Клиенты
Перспективные проекты
| | | |
Главная страница    Аналитическая колонка
Аналитическая колонка

Выпуск №3


Автор: Евгений Зуев

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

В последнее время в фирме проводилась довольно серьезная «скрытая» работа, связанная с нашим флагманским продуктом – компилятором переднего плана Си++. Эта работа – а она полным ходом продолжается и сейчас – направлена на то, чтобы адекватно и на высоком уровне соответствовать современной и динамичной ситуации в сфере инструментов разработки.

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

- Развитие языка Си++ и его реализация
- Создание новых инструментов разработки

А теперь чуть подробнее.

Новый стандарт Си++ и его реализация

Многие знают, что совсем недавно была опубликована «бета-версия» нового Международного Стандарта Си++ (октябрьский драфт). Формального принятия этого стандарта можно ожидать примерно через полтора года, однако по правилам ISO нынешняя версия уже не должна претерпеть существенных изменений (кроме стилистических и редакторских), так что ее можно рассматривать как практически окончательную.

В новом стандарте – очень много нового. Помимо многочисленных модификаций и уточнений уже имеющихся языковых понятий и конструкций, появилось большое количество совершенно новых механизмов, зачастую меняющих сам взгляд на этот язык. Поддержка функционального стиля программирования, механизм шаблонов с ограничениями, основанный на новом понятии концептов (concepts), наследование конструкторов – только некоторые примеры.

Для компании Интерстрон это означает, что впереди большая работа по приведению компилятора Си++ в соответствие новому стандарту. Эта работа уже началась, и мы надеемся, что наш компилятор будет одним из первых в мире, поддерживающих новый стандарт в полном объеме – так же, как десять лет назад этот компилятор обгонял многие западные реализации по полноте поддержки тогдашнего стандарта 1998 года.

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

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

Наш перевод мы собираемся снабдить комментариями, которые будут пояснять некоторые не слишком ясно написанные или просто важные моменты определения языка. Идейным вдохновителем и образцом для нас послужил в первую очередь текст книги Страуструпа, который написал такое комментированное описание языка в 1990 году, к началу процесса стандартизации. Для стандарта языка Ада выпущена отдельная книга с обоснованием всего дизайна языка и его конструкций («Rationale»). Похожая книга имеется и для C# (C# Annotated Standard, Morgan Kaufmann, 2007), так что полезность комментариев подтверждается реальной практикой.

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

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

Новые инструменты проектирования и разработки

Компании Интерстрон уже больше десяти лет, и мы не новички в области создания сложных инструментов и систем разработки. Попробуем кратко объяснить наше видение современных потребностей разработчиков – как отдельных программистов, так и их коллективов.

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

Однако и объективные потребности индустрии ПО претерпели к настоящему времени определенную эволюцию. Теперь «просто компиляторов» или даже мощных сред программирования в традиционном понимании явно недостаточно. Центр внимания смещается от средств генерации качественного кода к многофункциональным системам, реализующим широкий спектр самых разных операций над программами, и в этом спектре генерация кода – далеко не единственный и иногда даже не самый важный аспект.

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

И вот в этой сравнительно новой области у компании достаточно выигрышные и перспективные позиции. Дело в том, что ядро наших средств разработки – компилятор переднего плана Си++ – обладает уникальными свойствами, основное из которых – наличие развитого семантического представления с мощным и удобным программным интерфейсом (API). Существо дела заключается в том, что семантическое представление Интерстрона содержит всю информацию из исходной программы, необходимую практически для любых манипуляций с ней. Можно сказать, что это та же исходная программа, но представленная в регулярном единообразном виде (с выявленной скрытой семантикой, полностью разрешенными именами и явно представленными структурными отношениями между программными сущностями), удобном для создания на ее основе того самого широкого спектра операций, потребность в которых ощущаются все более отчетливо.

До недавнего времени – скажем откровенно – эти возможности компилятора использовались далеко не полностью. Потребности индустрии диктовали спрос на традиционные системы программирования с генерацией кода для различных процессоров специального назначения, и мы делали (и делаем) такие системы для отечественных и зарубежных производителей аппаратных средств. В таких системах заказчику, как правило, необходим «обычный» качественный и надежный компилятор, дополненный удобной средой со стандартным набором средств (визуальный редактор, отладчик, учитывающий специфику процессора, и т.п.).

И вот сейчас, наряду с описанной сферой нашей деятельности, мы собираемся открыть новое для нас стратегическое направление, направленное на создание серии инструментов моделирования, анализа и синтеза программ. Ядром всех этих инструментов будет служить наш компилятор, стабильность, надежность и высокое качество которого гарантирует десятилетний опыт его практического использования. Профильная функциональность продуктов будет реализована на основе использования семантического представления, порождаемого компилятором. При этом сам компилятор будет упрятан глубоко «под капот» этих продуктов, так что пользователю будет «видна» только нужная ему функциональность, и ему не придется даже гадать о том, что находится внутри инструмента…

Первым продуктом из этой серии будет служить инструмент моделирования и инжиниринга программ, реализующий широкое подмножество графической нотации UML и использующий Си++ в качестве входного и целевого языка. Рабочее название инструмента – Визуализатор, однако собственно «визуализация» программ, то есть представление их в наглядном структурном виде – только очень небольшая часть его функциональных возможностей. Если говорить коротко, то этот продукт обеспечивает достаточно полный спектр типичных операций по моделированию ПО согласно методике, поддерживаемой графическим языком UML (Unified Modeling Language). К числу таких операций относятся обратный и прямой инжиниринг, а также средства документирования и визуализации. Язык UML реализованный в продукте, соответствует последней на настоящий момент версии 2.1.

Конечно, наш Визуализатор – не первая система подобной направленности. Хорошо известны, в частности, изделия фирмы Rational Rose, которые реализуют сходную функциональность. Однако, мы уверены, что наш продукт будет выгодно отличаться от изделий уважаемых конкурентов – прежде всего, более низким «порогом вхождения», обусловленным его удачным дизайном, простотой и русскоязычностью. Кроме того, он будет попросту существенно дешевле.

Визуализатор – отдельный «коробочный» продукт, который, как мы надеемся, будет интересен и полезен как многим разработчикам, так и всем, изучающим программирование и моделирование ПО. Однако мы не собираемся ограничиваться выпуском отдельного инструмента. В наших планах – создание мощной среды проектирования программ, которая будет включать большой ассортимент операций, поддерживающих все этапы жизненного цикла ПО. В этой системе, ориентированной прежде всего на платформу Intel, будет и наш компилятор, и полная поддержка UML, и много других полезных свойств.

Но и это еще не все. Мы хорошо понимаем, что несмотря на несомненную востребованность подобных систем, практическая работа с ней может вызвать трудности ввиду отсутствия у потенциальных пользователей соответствующего опыта. Чтобы преодолеть эту проблему для нашего Визуализатора, мы решили предварить его выход на рынок выпуском книги, которая будет служить одновременно и введением в тему, и практическим руководством по использованию продукта. Предварительное название книги - Простое введение в Си++ и UML: пособие по практическому освоению

Книга рассчитана на тех, кто хотя бы немного знаком с Си++ и хочет освоить принципы и методы работы с UML. Во второй части книги будут детально описаны последовательности шагов типичных операций моделирования, реализованных в нашем продукте. Вообще, мы стараемся писать эту книгу очень простым и ясным языком, сознательно оставляя за ее рамками некоторые сложные аспекты языка Си++ и нотации UML.

Ориентировочный срок выпуска книги и Визуализатора – весна будущего года.

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

Следите за новостями!



Назад

ЗАО "Интерстрон" 1998-08.06.2015, ООО "Интерстрон" 09.06.2015 по н.в. Все права защищены.
Москва, Дмитровское шоссе, 1/1
e-mail: interstron-info@mail.ru
web: www.interstron.ru
Тел.: +7 (495) 769-55-68