И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования (1119414), страница 23
Текст из файла (страница 23)
Работая в текстовом редакторе, пользователь может выделить в текстепрограммы желаемый идентификатор и, нажав некоторую комбинацию клавиш наклавиатуре, получить информацию об объектах, имеющих такое имя. Например,поставив курсор редактора на имя fprintf, пользователь может получить справку повсем функциям форматного ввода/вывода и способам задания форматов. Работа сконтекстными справками не может заменить систематического изучения важнейшихдокументов (например, описания языка), но значительно облегчает работу опытнымпользователям, желающим быстро вспомнить знакомую им информацию.814.
Краткий обзор современных систем программирования4.1. Компонентный подход и визуальное программированиеК настоящему времени разработано и внедрено в практику программированиябольшое число систем разработки и сопровождения программ, написанных на языках,поддерживающих принципы объектно-ориентированного программирования. При этомпростым включением объектно-ориентированных языков в состав системпрограммирования дело обычно не ограничивается. Все более явственнопросматривается тенденция строить сами системы программирования в объектноориентированном стиле, то есть включать в состав этих систем средства, позволяющиевести проектирование программ (и даже само “техническое” программирование) наоснове принципов объектно-ориентированного подхода.
Наиболее ярко эти тенденциипроявляются в последовательном применении компонентного и визуальногопрограммирования.Термин “компонент” также многозначен, как и многие другие термины,используемые в литературе по программированию. Он может соответствовать термину“программный модуль”, обозначая в таком случае архитектурный компонентпрограммной системы – некоторый абстрактный элемент структуры программы,выделенный для решения некоторых конкретных подзадач в рамках общего назначениясистемы и имеющий некоторый фиксированный интерфейс взаимодействия с другимипрограммными модулями (подсистемами).
Другой смысл вкладывается в этот термин,когда говорят о компонентах, как об “элементах сборки” программы – некоторых ееотносительно небольших (иногда незавершенных) фрагментах или заготовках, которыеможно извлекать из библиотек (вообще говоря, из любых библиотек, но чаще при этомимеются в виду разрабатываемые специально для подобного стиля программирования“библиотеки компонентов”). Наконец, в распределенных программных системах(серверах приложений, сетевых службах) под компонентом часто понимаютопределенную функционально законченную и самодостаточную структурную единицупрограммы, обладающую точно описанным интерфейсом и даже некоторуюнезависимость от других подобных компонентов этого же программного комплекса.Например, в сервере приложений J2EE имеется специальный компонент, позволяющийсоздавать сервлеты, представляющие собой классы языка программирования Java,реализующие обработку запросов по протоколу взаимодействия HTTP и генерациюответных сообщений в формате этого протокола, и взаимодействовать с созданнымисервлетами.
Этот компонент может присутствовать в конкретной программной системеили отсутствовать в ней (если взаимодействие через Интернет не является задачейсистемы), благодаря точному описанию интерфейса и независимости от другихкомпонентов сервера приложений, он может даже использоваться в других системах,не обязательно написанных на языке Java.Чаще всего, когда говорят о компонентном подходе к построениюсовременных систем программного обеспечения, имеют в виду именно эту, последнюютрактовку термина “компонент”. Компонентная разработка предлагает строить такиесистемы последовательно из отдельных элементов — “компонентов”, каждый изкоторых, в свою очередь, может рассматриваться как отдельная программная система.Компоненты отличаются от классов объектно-ориентированных языков.
Классопределяет не только набор реализуемых интерфейсов, но и саму их реализацию. Вописании компонента реализация интерфейсов обычно не зафиксирована. Класс описанна определенном языке программирования, компонент же не привязан ни к какому82языку (если его компонентная модель этого не требует, компонентная модель являетсядля компонентов тем же, чем для классов является язык программирования).
Наконец,обычно компонент является более крупной структурной единицей, чем класс,реализация компонента часто состоит из нескольких тесно связанных друг с другомклассов. Понятие компонента является более узким, чем понятие программногомодуля. Основное содержание понятия модуля — наличие четко описанногоинтерфейса между ним и его окружением.
Использование компонента подразумеваетвозможность поставки или удаления компонента отдельно от всей остальной системы.Компоненты могут и разрабатываться отдельно, однако они должны следоватьправилам определенной компонентной модели и реализовывать достаточно важные дляпользователей функции.Визуальнымназываетсятакойстильпрограммирования,которыйпредусматривает создание приложений с помощью наглядных средств. Используяприемы визуального программирования, программист не создает тексты программ, апоказывает, что должно получиться в результате.
Например, многие системыпрограммирования позволяют строить на экране монитора графические формы,состоящие из отдельных более или менее независимых элементов (“компонентов”) –графических кнопок, надписей, диаграмм, окон для ввода и вывода информации и такдалее. Тексты программ, управляющих такими формами, генерируются автоматическис помощью визуального прототипа соответствующего компонента на основеиспользуемых в системе библиотек компонентов. Как и компонентноепрограммирование, визуальное программирование основывается на объектноориентированном подходе, поскольку с каждым наглядным элементом связан какойнибудь класс или чаще целый набор классов, описывающих интерфейсы и реализацииметодов, с помощью которых осуществляется взаимодействие с данным элементом.Визуальное программирование широко используется в системах создания приложений.Некоторые из таких систем кратко описаны далее.4.2.
Системы программирования компании BorlandФирма Borland внесла существенный вклад в создание современныхпредставлений о системах программирования персональных ЭВМ. Начав спроектирования транслятора с языка программирования Паскаль, фирма занепродолжительное время создала несколько серий прекрасных системпрограммирования на языках Паскаль, Си, Си++, Пролог и других, включая языкассемблера для персональной ЭВМ на базе процессоров с архитектурой х86.4.2.1. Turbo PascalНаиболее известной серией этих систем, продолжающейся до сих пор, являетсясамая первая из них, связанная с программированием на языке Паскаль в самой первойоперационной системе персональных ЭВМ – MS DOS. В настоящее время компаниейBorland выпускается несколько систем программирования: Turbo Pascal версии 7.0,Borland Pascal для MS DOS и Delphi для MS Windows.
Все эти системы являютсянаследницами систем, выпускавшихся с 1983 года, и во многом совместимы с ними какпо самому языку программирования, для которого они разработаны, так и повозможностям интегрированной среды разработки и отладки программ.Начиная с версии 4.0 системы Turbo Pascal, появившейся примерно 15 лет назад,язык программирования, использованный в них, значительно отличается от того языка83Паскаль, классическое описания которого, дано его автором Никлаусом Виртом идругими в их многочисленных работах.Концепция стандартных модулей, предложенная в языке под названием TurboPascal, некоторыми своими чертами напоминает подход, описанный в языке Модула-2 спомощью модулей определений и модулей реализации.
В Модуле-2 парадигмымодульного и структурного программирования нашли свое почти идеальноевоплощение. В этом языке уже намечались те черты, которые впоследствии былиявственно выделены в языках, ориентированных на работу с объектами. Однакоразвитие систем программирования компании Borland шло по другому пути.Было признано более целесообразным не переходить к использованию другогоязыка программирования, пусть и напоминающего классический Паскаль, как Модула2, но все же отличающегося от него в некоторых важных чертах, а сохранить ирасширить сам Паскаль, дав ему новую жизнь в изменившихся условиях. Вместомодулей определений и реализации в языке Turbo Pascal появились модули, имеющиеразделы интерфейса и реализации.
Появились и элементы объектно-ориентированногопрограммирования, в частности, привязка процедур и функций к описаниям сложныхобъектов.Однакопоследовательноговнедренияпринциповобъектноориентированного программирования в системы программирования для MS DOSкомпанией Borland произведено не было, это было осуществлено только в другой серии– в системах программирования для операционных систем MS Windows.Указанные особенности языка программирования Turbo Pascal до некоторойстепени повлияли и на саму систему программирования Turbo Pascal.