Создание обучающей системы автоматизированного проектирования маломощных электромеханических следящих систем, страница 9

1.6 Обзор программных средств для построения САПР

1.6.1 С++

C++ – универсальный язык общего назначения, область приложения которого – программирование систем в самом широком смысле [4]. Кроме того, C++ успешно использовался во многих приложениях, которые не укладываются в эти рамки. Реализация C++ осуществлена для машин в диапазоне от самых современных микрокомпьютеров до самых мощных суперкомпьютеров и для почти всех операционных систем.

За исключением второстепенных деталей, C++ является надмножеством языка программирования С. Помимо возможностей, которые даёт С, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям прикладной области, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определённых пользователем. Такие объекты просты и надёжны в использовании в тех ситуациях, когда тип нельзя  установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод даёт более короткие, проще понимаемые и легче контролируемые программы.

Одним из первоначальных предназначений С было применение его вместо программирования на ассемблере в самых насущных задачах системного программирования. Когда проектировался C++, были приняты меры, чтобы не ставить под угрозу успехи в этой области. Особое внимание, уделенное структуризации при разработке C++, отразилось на возрастании масштаба программ, написанных со времени разработки С. Маленькую программу (меньше 1000 строк) вы можете заставить работать с помощью грубой силы, даже нарушая все правила хорошего стиля. Для программы больших размеров это не совсем так. Если программа в 10000 строк имеет плохую структуру, то вы обнаружите, что новые ошибки появляются так же быстро, как появляются старые. С++ был разработан так, чтобы дать возможность разумным образом структурировать большие программы так, чтобы для одного человека не было непомерной проблемой справляться с программами в 25000 строк.

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

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

Естественно, что создание очень больших пакетов программ подразумевает использование C++ целыми группами программистов. Здесь в полную силу работают модульность, строго типизированный интерфейс и гибкость C++. В C++ имеется также гармоническое сочетание средств для написания больших программ, как и в любом другом языке. Однако по мере того, как программы становятся всё больше, трудности, связанные с их разработкой и сопровождением, преобразуются из чисто языковых в более глобальные методические и управленческие проблемы.

1.6.2 Turbo Pascal