Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Системы программирования (Основные понятия, эволюция, компоненты и классификация систем программирования)

Содержание:

Введение

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

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

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

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

Даже при наличии десятков тысяч программ для IBM PC пользователям может потребоваться что-то такое, чего не делают (или делают, но не так) имеющиеся программы. В этих случаях следует использовать системы программирования, т.е. системы для разработки новых программ. Современные системы программирования для персональных компьютеров обычно предоставляют пользователю весьма мощные и удобные средства для разработки программ.

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

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

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

Цель работы: рассмотреть современные системы программирования.

Из поставленной нами цели вытекают следующие задачи:

1) определить термин «система программирования»;

2) выделить основные этапы развития языков программирования;

3) классифицировать системы программирования;

4) выделить основные компоненты систем программирования;

5) выделить требования к современным системам программирования;

6) выполнить обзор современных систем программирования.

При написании работы были проанализированы различные источники научно-технической литературы и статьи Интернет.

ГЛАВА 1. Основные понятия, эволюция, компоненты и классификация систем программирования

Определение термина «система программирования»

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

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

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

Язык программирования – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций. Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд[2].

    1. Основные этапы развития языков программирования

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

Под ЯП понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде ЯП. является средством создания программных моделей объектов и явлений внешнего мира.

Первые ЭВМ, созданные человеком, имели небольшой набор команд и встроенных типов данных, но позволяли выполнять программы на машинном языке. Машинный язык – единственный язык, понятный ЭВМ. Он реализуется аппаратно: каждую команду выполняет некоторое электронное устройство. Программа на машинном языке представляет собой последовательность команд и данных, заданных в цифровом виде[3].

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

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

Следующий этап характеризуется созданием языков высокого уровня (ЯВУ). Эти языки являются универсальными (на них можно создавать любые прикладные программы) и алгоритмически полными, имеют более широкий спектр типов данных и операций, поддерживают технологии программирования. На этих языках создается неисчислимое множество различных прикладных программ. Языки программирования высокого уровня делятся на несколько видов.

Среди принципиальных отличий ЯВУ от языков низкого уровня выделяют следующее:

  • использование переменных;
  • возможность записи сложных выражений;
  • расширяемость типов данных за счет конструирования новых типов из базовых;
  • расширяемость набора операций за счет подключения библиотек подпрограмм;
  • слабая зависимость от типа ЭВМ[4].

С усложнением ЯП усложняются и трансляторы для них. Теперь в набор инструментов программиста, кроме транслятора, входит текстовый редактор для ввода текста программ, отладчик для устранения ошибок, библиотекарь для создания библиотек программных модулей и множество других служебных программ. Все вместе это называется системой программирования. Наиболее яркими представителями ЯВУ являются FORTRAN, PL/1, Pascal, C, Basic, Ada.

Как можно заметить, было создано большое число языков одного класса. Каждый из разработчиков ЯВУ стремился создать самый лучший и самый универсальный язык, который позволял бы быстро получать самые эффективные, надежные и безошибочные программы. Однако в процессе этого поиска выяснилось, что дело не в самом языке, а в технологии его использования. Поэтому дальнейшее развитие языков стало определяться новыми технологиями программирования.

Одновременно с развитием универсальных ЯВУ стали развиваться проблемно-ориентированные языки программирования, которые решали экономические задачи (COBOL), задачи реального времени (Modula-2, Ada), символьной обработки (Snobol), моделирования (GPSS, Simula, SmallTalk), численно-аналитические задачи (Analitic) и другие. Эти специализированные языки позволяли более адекватно описывать объекты и явления реального мира, приближая язык программирования к языку специалиста в проблемной области[5].

Другим направлением развития языков программирования является создание языков сверхвысокого уровня (ЯСВУ). С помощью языков программирования программист задает процедуру (алгоритм) получения результата по известным исходным данным, поэтому они называются процедурными языками программирования. На ЯСВУ программист задает отношения между объектами в программе, например, систему линейных уравнений, и определяет, что нужно найти, но не задает как получить результат. Такие языки еще называют непроцедурными, так как сама процедура поиска решения встроена в язык (в его интерпретатор). Такие языки используются, например, для решения задач искусственного интеллекта (Lisp, Prolog) и позволяют моделировать мыслительную деятельность человека в процессе поиска решений.

К непроцедурным языкам относят и языки запросов систем управления базами данных (QBE, SQL).

1.3 Основные компоненты системы программирования

Система программирования представляет собой совокупность реализации языка и окружающей её операционной среды – это базовые средства, доступные при работе на данном компьютере в данной системе.

Реализация же языка – это комплект программ, которым обеспечивается:

  • поддержка операций с исходной программой: ввод, редактирование, сохранение текста; анализ синтаксических ошибок;
  • подготовка синтаксически правильной программы к исполнению на конкретном вычислителе;
  • поддержка на конкретном вычислителе всех возможных действий абстрактного вычислителя[6].

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

Система программирования обязательно должна включать следующие компоненты:

1) Файловая система для хранения текста программ – как правило, это общая часть программного обеспечения для различных систем на данном компьютере.

2) Редактор для ввода текста программы как последовательности символов и исправление её (текстовый редактор). При этом возможно как использование редактора, специализированного для составления программ на данном языке, так и универсального, предназначенного для набора различных текстов.

3) Транслятор для преобразования текста программы к виду, в котором она может исполняться, и указания ошибок, если преобразование не удаётся. Транслятором может быть не одна программа.

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

Применение интерпретатора может обеспечить выигрыш только в случае его разработки для ЯВУ. В этом случае может быть сэкономлена внутренняя память программ, а также облегчен процесс отладки программ (при применении языка программирования BASIC) или облегчен перенос программ с одного типа процессора на другой (при применении языка программирования JAVA).

При программировании на языке программирования ASSEMBLER применение интерпретатора приводит к проигрышу по всем параметрам, поэтому для языков программирования низкого уровня применяются только программы–компиляторы.

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

5) Библиотеки периода исполнения, содержащие программы стандартных действий абстрактного вычислителя (её еще называют библиотека поддержки языка). Они связывают язык в операционной средой.

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

Кроме перечисленных компонентов система программирования, как правило, включает в себя:

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

8) Редакторы внешних связей, собирающие программы из модулей.

9) Загрузчики.

10) Оптимизаторы, позволяющие автоматически улучшать программу, написанную на определённом языке.

11) Профилировщики, которые определяют, какой процент времени выполняется та или иная часть программы. Это позволяет выявить наиболее интенсивно используемые фрагменты программы и оптимизировать их (например, переписав на языке Ассемблера)[7].

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

1.4 Классификация языков программирования

Исходя из вышесказанного, ЯП можно классифицировать по следующим признакам.

1. По степени ориентации на специфические возможности ЭВМ ЯП делятся на:

· машинно-зависимые;

· машинно-независимые.

К машинно-зависимым ЯП относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимом ЯП может выполняться только на ЭВМ данного типа. Программа на машинно-независимом ЯП после трансляции на машинный язык становится машинно-зависимой. Этот признак ЯП определяет мобильность получаемых программ (возможность переноса на ЭВМ другого типа).

2. По степени детализации алгоритма получения результата ЯП делятся на:

· языки низкого уровня;

· языки высокого уровня;

· языки сверхвысокого уровня.

3. По степени ориентации на решение определенного класса задач:

· проблемно-ориентированные;

· универсальные.

4. По возможности дополнения новыми типами данных и операциями:

· расширяемые;

· нерасширяемые.

5. По возможности управления реальными объектами и процессами:

· языки систем реального времени;

· языки систем условного времени.

6. По способу получения результата:

· процедурные;

· непроцедурные.

7. По типу решаемых задач:

· языки системного программирования;

· языки прикладного программирования.

8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на:

· реляционные;

· функциональные;

· логические.

Рассмотренная схема классификации позволяет каждому языку программирования присвоить один из признаков каждого класса[8].

Машинный язык

В таких системах программирования отдельный компьютер имеет свой определённый машинный язык. Некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый машинный язык для ЭВМ разной мощности. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путём. Машинный язык является внутренним языком ЭВМ и представляет собой систему инструкций и данных, которые не требуют трансляции и могут непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ.

Системы символического кодирования

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

Автокоды

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

Макрос

В таких системах язык, являющийся средством для замены последовательности символов, описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макросопределяющий и исходный текст. Реакция макропроцессора на вызов – выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными[9].

Машинно-независимые системы программирования

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

Процедурно-ориентированные системы

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

Simula, Слэнг – для моделирования; Лисп, СНОБОЛ – для работы со списочными структурами.

Проблемно-ориентированные системы

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

Диалоговые языки

Появление новых технических возможностей поставило задачу перед системными программистами создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Разрабатывались языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.

Непроцедурные языки

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

ГЛАВА 2. Основные требования и обзор современных систем программирования

2.1 Основные требования к системам программирования

Рассмотрим главные требования, которые предъявляются к современной системе программирования.

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

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

3) Требование удобства работы с системами программирования и отдельными их компонентами. Важными являются возможности по поддержке работы в различных режимах, а также по поддержке ведения в системе нескольких разных проектов разработки программного обеспечения. От систем программирования требуется поддерживать как режим отладки программ, так и режим получения наиболее эффективного варианта программ.

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

2.2 Обзор современных систем программирования (на примере Visual Basic, Visual C++, C++Builder, Symantec Café (Java))

В данной главе мы рассмотрим наиболее популярные системы программирования ведущих фирм-производителей.

Отметим основные вехи на пути развития систем программирования:

  • Переход от одиночных утилит систем программирования к интегрированным диалоговым средам программирования (например, семейство Turbo-продуктов фирмы Borland);
  • Развитие инструментальных наборов, расширяющих возможности систем программирования, в частности, в области диалога (разного рода Tool Box);
  • Появление объектно-ориентированных диалектов языков Си и Паскаль; заметим, что, по нашему мнению, несмотря на то, что Паскаль является более строгим и корректным языком, феномен Си++ имеет большее значение в силу наличия стандарта;
  • Возникновение операционной среды Windows со встроенной поддержкой диалога и первых Windows-приложений с помощью SDK (Software Development Keet);
  • Создание объектно-ориентированных библиотек, поддерживающих диалоговый режим работы в среде DOS и Windows (TurboVision, Object Windows и MFC);
  • Появление систем программирования, облегчающих создание приложений для DOS и Windows;
  • Развитие механизма встраивания и связывания объектов OLE 2;

Переход к визуальным системам программирования (Visual Си++, Delphi, Visual Basic), которые ориентированы на разработку информационных приложений[11].

Visual Basic

Microsoft Visual Basic – сегодня самая популярная в мире система проектирования приложений для Windows. Среда Visual Basic может с успехом использоваться начинающими пользователями для познания секретов программирования и увлекательных занятий по созданию несложных для начала приложений и, в то же время, предоставляет мощные инструменты разработки опытным программистам. Чрезвычайно развитые справочная система, средства обучения, мастера и программы-надстройки позволяют при построении приложения и работе в Visual Basic найти выход из любой ситуации и получить ответ на любой вопрос. Начинать работать с Visual Basic можно практически с любым уровнем подготовки.

Язык Basic, в том виде, каким он предстает в современных системах программирования, сильно отличается от своей первоначальной версии. В настоящее время это объектно-ориентированный язык, обладающий всеми возможностями других, более новых языков программирования, но оставшийся весьма простым для изучения, благодаря простым изобразительным средствам. Процесс создания диалоговых форм и расстановки на них элементов управления диалогом благодаря визуальному подходу стал несложным и понятным. Система программирования в процессе создания форм автоматически создает программу на языке Visual Basic. Отладчик, встроенный в систему программирования, работает в терминах языка Visual Basic, поэтому отладка программ не представляет особой сложности.

В целом, систему Visual Basic можно определить, как инструментальную среду для разработки самых различных программных продуктов. Создаваемые в этой интегрированной инструментальной среде программы обладают свойством автономности и в состоянии после завершения разработки функционировать в отрыве от самой среды. Следует только помнить о необходимости сопровождать распространение программы, написанной в системе Visual Basic, библиотеками, отслеживая совместимость версий стандартных библиотек фирмы Microsoft с версией созданной программы. Отсутствие нужной библиотеки, а иногда и небольшого системного файла в системном каталоге неминуемо заблокирует работу программы[12].

Если задаться вопросом – что такое Visual Basic – компилятор или интерпретатор, можно смело сказать: «И то, и другое». Его нельзя всецело отнести ни к компиляторам, ни к интерпретаторам.

Основным признаком интерпретатора Visual Basic является то, что созданные с помощью него программы выполняются только в среде разработки. Программу можно запустить непосредственно из среды и, если в ней есть ошибки, они сразу же распознаются. Все это наблюдается и в Visual Basic, где можно запустить приложение непосредственно в среде программирования. При этом Visual Basic использует технологию Threaded-p-Code, при которой каждая написанная строка кода преобразуется в промежуточный код – Threaded-p-Code. Это не машинный код, но такой код выполняется быстрее, чем при работе с обычным интерпретатором. Во-первых, Visual Basic сразу же проверяет синтаксис программы и выдает сообщение, если присутствует ошибка. Также можно самим искать эти ошибки.

Но при этом Visual Basic – не просто интерпретатор, так как это означало бы, что приложения выполняются только в среде Visual Basic. Эта среда программирования предоставляет возможность создавать и исполняемые ЕХЕ-файлы, поэтому она относится и к компиляторам.

Visual Basic нельзя назвать чистым компилятором, так как в отличие, например, от Visual C++, Visual Basic не создает исполняемый файл сразу же при запуске из среды разработки. Для создания такого файла необходимо сделать это явно (команда File\Make ***.EXE). Начиная с пятой версии, Visual Basic обладает так называемым «Native Compiler», то есть компилятором, который может создавать машинный код. Таким образом. Visual Basic объединяет в себе возможности, как интерпретатора, так и компилятора. И это имеет больше преимуществ, чем недостатков[13].

Visual C++

Система программирования Microsoft Visual C++ представляет собой реализацию среды разработки для распространенного языка системного программирования C++, выполненную компанией Microsoft. Эта система программирования в настоящее время построена в виде интегрированной среды разработки, включающей в себя все необходимые средства для разработки результирующих программ, ориентированных на выполнение под управлением ОС типа Microsoft Windows различных версий.

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

Основу системы программирования Microsoft Visual C++ составляет библиотека классов MFC (Microsoft foundation classes). В этой библиотеке реализованы в виде классов C++ все основные органы управления и интерфейса ОС. Также в ее состав входят классы, обеспечивающие разработку приложений для архитектуры клиент-сервер и трехуровневой архитектуры (в современных версиях библиотеки). Система программирования Microsoft Visual C++ позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows, в том числе серверные или клиентские результирующие программы, осуществляющие взаимодействие между собой по одной из указанных выше архитектур.

Классы библиотеки MFC ориентированы на использование технологий COM/DCOM, а также построенной на их основе технологии ActiveX для организации взаимодействия между клиентской и серверной частью разрабатываемых приложений. На основе классов библиотеки пользователь может создавать свои собственные классы в языке C++, организовывать свои структуры данных.

В отличие от систем программирования компании Borland, система программирования Microsoft Visual C++ ориентирована на использование стандартных средств хранения и обработки ресурсов интерфейса пользователя в ОС Windows.

Система программирования Microsoft Visual C++ выдержала несколько реализаций. В процессе выхода новых версий системы программирования было выпущено и несколько версий библиотеки MFC, на которой основана данная система.

Сама по себе библиотека MFC является, по мнению автора, довольно удачной реализацией широкого набора классов языка C++, ориентированного на разработку результирующих программ, выполняющихся под управлением ОС типа Microsoft Windows. Это во многом обусловлено тем, что создатель библиотеки компания Microsoft одновременно является и создателем ОС типа Microsoft Windows, на которые ориентирован объектный код библиотеки. Библиотека может быть подключена к результирующей программе с помощью обычного компоновщика, либо использоваться как динамическая библиотека, подключаемая к программе во время ее выполнения. Библиотека MFC достаточно широко распространена. Ее возможно использовать не только в составе систем программирования производства компании Microsoft, но и в системах программирования других производителей.

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

При работе в системе Visual C++ доступна вся справочная информация, как о самой системе, так и о языке Си++, библиотечных функциях и операционной системе Windows. Справочник снабжен большим количеством примеров, которые часто позволяют повысить эффективность как процесса программирования, так и процесса работы уже подготовленной программы[14].

C++Builder

Язык Си++ появился раньше языка Object Pascal и раньше языка Delphi. Именно на примере Си++ были продемонстрированы принципы объектно-ориентированного программирования и его достоинства.

Новейшая система объектно-ориентированного программирования C++ Builder производства корпорации Borland предназначена для операционных систем Windows. Интегрированная среда C++ Builder обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонент в сочетании с мощью языковых средств C++, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.

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

По своим возможностям С++ Builder практически полностью пересекается с системами Delphi: и здесь и там использован метод технического проектирования программы, называемый визуальным программированием. Отличие от систем Delphi в данном случае заключается в том, что базовым языком данной системы программирования является язык Си++.

C++Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi. Большинство компонентов, разработанных в Delphi, можно использовать и в C++Builder без модификации, но обратное утверждение не верно.

C++Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG – редактору интерфейса и прочим.

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

Первоначально эта библиотека была разработана для систем программирования на Паскале, то есть систем Delphi, а позднее была перенесена в С++ Builder. Наличие этой библиотеки в разных системах программирования позволяет пользователю писать программу, состоящую из фрагментов, написанных на разных языках. При этом программист имеет возможность пользоваться одними и теми же абстракциями. В то же время системы Delphi и С++ Builder – это разные системы, поэтому реально создавать многоязыковые программы с их помощью нелегко.

Библиотека VCL замечательна еще и тем, что она полностью построена на принципах объектно-ориентированного программирования и единой иерархии классов с общим базовым классом TObject, находящимся в основе этой иерархии. Все классы VCL являются потомками этого класса. Наличие общего корня библиотеки классов позволяет использовать полиморфизм для реализации общих алгоритмов и структур данных. По своей функциональности библиотека VCL в значительной степени пересекается с другими широко распространенными библиотеками Си++, в частности, со стандартной библиотекой Си++, в том числе со стандартной библиотекой шаблонов STL[15].

Symantec Café (Java)

Язык Java является принципиально новым языком программирования, созданным компанией Sun Microsystems для создания многоплатформных приложений (applications и applets) для страниц "всемирной паутины" сети Internet. Язык Java может быть назван упрощенным вариантом C++, без усложненных конструкций и дополнительных возможностей. Java предлагает широкие возможности объектно-ориентированного программирования и повторного использования кода.

Symantec Cafe является первой интегрированной средой визуальной разработки для создания приложений (applications и applets) для страниц "всемирной паутины" сети Internet.

Symantec Cafe интегрирует комплект разработчика Java Development Kit компании Sun Microsystems в популярную многооконную среду визуальной разработки, созданную компанией Symantec для создания приложений для Windows 95 и Windows NT. Symantec Cafe предлагает полнофункциональную систему управления проектами, а также мощные инструменты редактирования и просмотра кода, что обеспечивает резкое увеличение эффективности разработки приложений на языке Java для сети Internet. Приложения, созданные с помощью Symantec Cafe могут затем встраиваться в документы HTML и выполняться на различных платформах при использовании Java-соместимых программ просмотра, таких как Netscape Navigator.

Symantec Cafe позволяет разрабатывать приложения на языке Java, которые могут затем встраиваться в страницы всемирной паутины для обеспечения более высокой функциональности, чем существующие HTML-страницы. Java-компилятор генерирует байткод, который может затем встраиваться в HTML-определения страниц всемирной паутины. Наиболее популярные программы просмотра в сети Internet, такие Netscape Navigator, включают встроенный интерпретатор Java-байткода, позволяющий выполнять Java-приложения на компьютере пользователя во время просмотра страницы Internet, содержащей это Java-приложение[16].

Это дает возможность включать в Internet страницу программное обеспечение, что предлагать пользователю гораздо более богатые возможности, по сравнению с просто текстом или статической графикой. Например, существует возможность включить новый тип данных и назначить соответствующий ей Java-байткод, предназначенный специально для обработки этого типа информации на клиентской машине. Кроме того, в этом случае Java-приложение запускается на клиентской машине, что позволяет снижать загрузку web-сервера. В результате достигается более высокая функциональность и производительность при просмотре сетей Internet. Cafe позволяет разрабатывать любые виды многоплатформенных приложений (applets and applications). Сокращенное приложение (applets) представляет собой ограниченная версия полнофункционального Java-приложения (applications), предназначенного для работы с web-документами. Например, сокращенное приложение не имеет доступа к файлам на клиентском компьютере. Такой подход предназначен, с одной стороны, для обеспечения целостности созданных Java-приложений при загрузке их из Internet, а с другой - для того, чтобы избежать случайной потери информации на клиентской машине вследствие работы загруженного из Internet приложения. Полнофункциональные Java-приложения более похожи на стандартные программы, за исключением того, что они многоплатформенны и могут запускаться под Windows, Macintosh и Unix. Основные возможности Symantec Café:

  1. Cafe выполняет "на лету" грамматический разбор Java-код и создает репозиторий информации о Java-приложениях и Java-библиотеках классов. Это позволяет пользователю наглядно иерархию классов Java-приложения, лучше понять стандартные классы Java и классы Java-приложений.
  2. Class Editor позволяет просматривать исходный текст на языке Java, а также просматривать/редактирования методы, данные и классы. Class Editor позволяет разработчику работать с объектно-ориентированными частями Java-программы в противоположность работы с исходными текстами.
  3. ProjectExpress, "Wizard"-подобный инструмент, позволяющий быстро создавать проекты вокруг набора Java-программ и использовать преимущества Cafe с минимальными затратами.
  4. AppExpress, "Wizard"-подобный инструмент, помогающий начать работу разработчикам, не знакомым с языком Java. AppExpress автоматически создает полнофункциональные Java- приложения, которые могут быть доработаны позже с помощью дополнительных возможностей Cafe.
  5. В Cafe входит профессиональный редактор для разработчиков на языке Java, который поддерживает цветовое выделение синтаксических конструкций и ключевых символов, а также включает интегрированный макро-язык для расширения функциональных возможностей редактирования. Кроме того, редактор способен быстро переходить в любую часть описания в Java-приложении или Java-библиотек классов, резко повышая производительность труда разработчиков.
  6. Cafe включает полностью интегрированный комплект разработчика Java Development Kit (JDK) компании Sun, с графической поддержкой опций и параметров Java-компилятора, интерпретатора и отладчика. Кроме того, Cafe поддерживает управление вложенными проектами, а также возможность построения Java-приложений, как сокращенных, так и полнофункциональных, непосредственно из среды разработчика[17].

Cafe включает мощный AppExpress, простой и удобный в использовании генератор приложений, автоматически создающий полнофункциональные Java-приложения, которые можно модифицировать и развивать.

Для создания Java приложения необходимо запустить AppExpress из меню "Tools", указать тип приложения в поле "Java Applet", определить каталог для создания приложения и нажать кнопку "Finish". Это все, что необходимо сделать. Проект приложения на языке Java автоматически загрузится средой Cafe.

Чтобы построить и запустить Java-приложение, нужно выбрать команду "Run" из меню "Project". Cafe попросит подтвердить необходимость построения проекта. Выберите "Yes" и Java приложение будет построено. Созданное приложение доступно для расширения и модификации.

Cafe имеет удобный "Wizard"-подобный инструмент ProjectExpress, позволяющий легко создавать новые проекты. Cafe позволяет просто и быстро импортировать уже существующий Java-код или проект в Cafe с минимальными затратами. Используя ProjectExpress, можно определить тип проекта Java или С/C++, затем добавить указание на файлы с исходным текстом и проект автоматически будет создан и загружен в Cafe.

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

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

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

Class Editor позволяет быстро перемещаться к любому участку кода Java приложения. Достаточно ввести или указать нужное имя класса и/или члена, и в соответствующем окне появится его исходный код. Этот же метод действует при определении принадлежности того или иного класса или метода. Class Editor позволяет также быстро создавать новые классы и добавлять Новые члены классов[18].

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

Заключение

Языки системного программирования, на которых создаются операционные системы, трансляторы и другие системные программы, развиваются в направлении повышения их уровня и независимости от ЭВМ. На сегодняшний день почти 90% системного программного обеспечения создается не на языке ассемблера, а на языке C. Например, операционная система Unix практически полностью написана на C. Язык C позволяет получать программы, сравнимые по своей эффективности с программами, написанными на языке ассемблера. Правда, объем программ получается больше, но зато эффективность их создания гораздо выше.

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

Тотальный бум переживает технология объектно-ориентированного программирования (ООП): практически все современные языки программирования поддерживают ООП. Да и все современные программные системы построены на принципах ООП. Для обозначения факта поддержки ООП языки получают приставку Object (например, ObjectPascal) или другие (например, C++).

Системы программирования в современном мире доминируют на рынке средств разработки.

Для популярных языков программирования на IBM PC существует множество систем программирования. Естественно, что программисты предпочитают те системы, которые легки в использовании, позволяют получить эффективные программы, имеют богатые библиотеки функций (подпрограмм) и мощные возможности для отладки разрабатываемых программ. В последнее время стали появляться системы программирования на языке Java, они позволяют создавать программы, вызываемые при просмотре Web-страниц в глобальной электронной сети Internet.

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

Для разработки серверных и распределенных приложений можно использовать систему программирования Microsoft Visual C++, практически любые средства программирования на Java.

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

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

1) Microsoft Visual Basic;

2) Visual C++

3) C++ Builder

4) Symantec Café.

Именно эти системы и языки программирования в дальнейшем будут определять развитие информатики.

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

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

Список используемой литературы

    1. Баула В.Г. Введение в архитектуру ЭВМ и системы программирования. – М., 2003. – 144 с.
    2. Волкова И.А., Головин И.Г., Карпов Л.Е. Системы программирования: Учебное пособие. – М.: Издательский отдел факультета ВМК МГУ, 2009. – 129 с.
    3. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2001. – 640 с.
    4. История компьютера. Языки программирования для микроконтроллеров [Электронный ресурс]. – Режим доступа: http://chernykh.net/content/view/694/. – Загл.с экрана.
    5. Кузнецов С.Д. Проектирование и разработка корпоративных информационных систем [Электронный ресурс]. – Режим доступа: http://citforum.ru/cfin/prcorpsys/infsistpr_04.shtml#311. – Загл. С экрана
    6. Моначов В. Язык программирования Java и среда NetBeans . – 2-е изд. – СПб.: БХВ-Петербург, 2009. – 720 с.
    7. Непейвода Н.Н., Скопин И.Н. Основания программирования: Учебное пособие. – М., 2003. – 913 с.
    8. Основы среды программирования Microsoft Visual Basic 6.0 [Электронный ресурс]. – Режим доступа: http://www.4-articles.ru/computers/41-programmnoe-obespechenie/2105-microsoft-visual-basic-60. – Загл.с экрана
    9. Сайлер Б., Споттс Д. Использование Visual Basic 6. Классическое издание. – М.: Вильямс, 2007. – 832 с.
    10. Сафронов И. Visual Basic в задачах и примерах. – СПб.: «БХВ-Петербург», 2008. – 400 с.
    11. Системное ПО [Электронный ресурс]. – Режим доступа: http://stfw.ru/page.php? id=9944 – Информационные технологии. – Загл.с экрана
    12. Современные системы программирования [Электронный ресурс]. – Режим доступа: http://www.ci.ru/inform12_03/p_22.htm. – Загл. с экрана
    13. Соколов В.В. Эволюция языков программирования [Электронный ресурс]. – Режим доступа: http://www.ait.org.ua/p/pub_evolution.html. – Загл.с экрана
    14. Страуструп Б. Язык программирования С++ = The C++ Programming Language / Пер. с англ. — 3-е изд. — СПб.; М.: Невский диалект — Бином, 1999. — 991 с.
    15. Угринович Н. Информатика и информационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином. Лаборатория знаний, 2007. – 511с.
    16. Хорстманн К.С., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. – М.: Вильямс, 2008. – 816 с.
    17. Шилдт Г. Полный справочник по С++. – М.: «Вильямс», 2006. – 800 с.
  1. Баула В.Г. Введение в архитектуру ЭВМ и системы программирования. – М., 2003. – С. 18.

  2. См. там же. С. 20

  3. Соколов В.В. Эволюция языков программирования [Электронный ресурс]. – Режим доступа: http://www.ait.org.ua/p/pub_evolution.html. – Загл.с экрана

  4. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2001. – С. 47.

  5. История компьютера. Языки программирования для микроконтроллеров [Электронный ресурс]. – Режим доступа: http://chernykh.net/content/view/694/. – Загл.с экрана

  6. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2001. – С. 53.

  7. Угринович Н. Информатика и информационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином. Лаборатория знаний, 2007. – С. 51.

  8. Непейвода Н.Н., Скопин И.Н. Основания программирования: Учебное пособие. – М., 2003. – С. 97 – 103.

  9. История компьютера. Языки программирования для микроконтроллеров [Электронный ресурс]. – Режим доступа: http://chernykh.net/content/view/694/. – Загл.с экрана.

  10. Непейвода Н.Н., Скопин И.Н. Основания программирования: Учебное пособие. – М., 2003. – С. 133-136.

  11. Современные системы программирования [Электронный ресурс]. – Режим доступа: http://www.ci.ru/inform12_03/p_22.htm. – Загл. с экрана

  12. Сайлер Б., Споттс Д. Использование Visual Basic 6. Классическое издание. – М.: Вильямс, 2007. – С. 34-38.

  13. Основы среды программирования Microsoft Visual Basic 6.0 [Электронный ресурс]. – Режим доступа: http://www.4-articles.ru/computers/41-programmnoe-obespechenie/2105-microsoft-visual-basic-60. – Загл.с экрана

  14. Страуструп Б. Язык программирования С++ = The C++ Programming Language / Пер. с англ. — 3-е изд. — СПб.; М.: Невский диалект — Бином, 1999. — С. 274-291.

  15. Шилдт Г. Полный справочник по С++. – М.: «Вильямс», 2006. – С. 485-501.

  16. Моначов В. Язык программирования Java и среда NetBeans . – 2-е изд. – СПб.: БХВ-Петербург, 2009. – С. 75-78.

  17. Хорстманн К.С., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. – М.: Вильямс, 2008. – С. 301-308.

  18. См. там же. С. 310.