Файл: Обзор языков программирования высокого уровня (ОСНОВЫ ТЕОРИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.03.2023

Просмотров: 113

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Обычно IDE ориентирована на определенный язык программирования, предоставляя набор функций, который наиболее близко соответствует парадигмам этого языка программирования. Однако, есть некоторые IDE с поддержкой нескольких языков, такие как Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev и Xcode.

IDE обычно представляет из себя единственную программу, в которой проводилась вся разработка. Она обычно содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель среды разработки заключается в том, чтобы абстрагировать конфигурацию, необходимую, чтобы объединить утилиты командной строки в одном модуле, который позволит уменьшить время, чтобы изучить язык, и повысить производительность разработчика. Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках. В то время как большинство современных IDE являются графическими, они использовались еще до того, как появились системы управления окнами (которые реализованы в Microsoft Windows или X11 для *nix-систем). 

Работа в интегрированной среде дает программисту:

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

Каждая программа должна иметь удобный интерфейс для организации диалога с пользователем. Основным элементом интерфейса в Windows являются окна. Одной из разновидностей окон является форма, которая может содержать кнопки, текстовые поля, переключатели и т.д. Поэтому программы, написанные для использования в Windows, обычно имеют оконный (графический) интерфейс. [12]

Для быстрого и удобного создания программ с графическим интерфейсом используют специальные среды визуального программирования. Почти каждый современный язык программирования имеет по крайней мере одну такую среду: Object Pascal - Borland Delphi, Basic - Visual Basic, C++ - Borland C ++ Builder, Microsoft Visual C.


Визуальное программирование еще называют Rapid Application Development (RAD), "быстрая разработка приложений". Технология RAD существенно ускоряет создание программ с графическим интерфейсом. Инструментальная система Builder, подобно другим системам визуального программирования (Visual C, Visual Basic, Delphi и т.д.), в первую очередь является посредником между интерфейсом прикладного программирования Windows (API - Application Program Interface) и программистом, позволяя даже начинающим разработчикам быстро создавать программные продукты, которые будут иметь графический интерфейс пользователя (GUI - Graphic User Interface). [7]

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

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

В С++ Builder используется более 100 компонент. Все компоненты собраны в библиотеке визуальных компонентов VCL - Visual Class Library. С++ Builder предназначен для написания программ на языке программирования C++ и сочетает VCL и среду программирования (IDE - Integrated Development Environment), написанную для Delphi с компилятором C++.

Цикл создания программных проектов в C++ Builder является аналогичным Delphi, но с существенными улучшениями. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но, к сожалению, обратное утверждение не справедливо. С++ Builder позволяет методом drag-and-drop довольно просто разрабатывать интерфейсные программы, что приводит к повышению эффективности и простоты программирования, поскольку программисту не надо каждый раз создавать те элементы собственных программ, которые могут быть реализованы с помощью уже существующих объектов.

Основным объектом визуального программирования является компонент. Компонентами в C ++ Builder являются объекты или классы объектов. Их непосредственно видно на экране (за исключением группы невидимых компонентов), их можно передвигать мышью, они могут реагировать на щелчки клавиш клавиатуры, мыши. [6]

В свою очередь, компонентам, в отличие от обычных объектов C++, присущее наличие свойств, событий и методов, которые позволяют осуществлять различные операции с этими компонентами. Свойства (Properties) позволяют легко устанавливать различные характеристики компонентов, такие как название, размеры, контекстные подсказки или источники данных.


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

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

Окно среды C ++ Builder состоит из следующих элементов (рис. 8): [3]

– окно формы;

– окно кода программы;

– главное меню;

– кнопки инструментальных панелей;

– палитра компонентов;

– окно инспектора объектов.

Окно формы занимает большое место и является прямоугольным серым "контейнером", на который при проектировании формы размещают компоненты (кнопки, надписи, панели, окна редакторов и т.д.). Форма сама является компонентом с названием Form. Без дополнительных указаний заголовок компонента (свойство Caption) совпадает с его названием (свойство Name), к которой добавляется порядковый номер, начиная с 1 (например Button1, Button2). но заголовок можно изменить с помощью свойства Caption. Размеры формы можно изменять или с помощью окна Object Inspector, или просто перетащив мышкой линии границы формы.

Рис. 8. Интерфейс среды разработки C++ Builder

Для размещенных на форме компонентов можно вызвать контекстную справку, для чего следует выделить нужный компонент и нажать клавишу <F1>. Если щелкнуть на самой форме и нажать клавишу <F1>, откроется справка по классу формы TForm. [9]

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

3.РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОМОЩЬЮ ЯЗЫКА ВЫСОКОГО УРОВНЯ С++

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


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

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

Поэтому шаблоны класса называют также родовыми классами.[20] Синтаксис объявления шаблона:

template <class М1 | М1 идент1>,

class М1 | М1 идент 2,

...

class Мn | Мn идент n>

class наименование

{

// Тело

}

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

Каждый параметр является:[6]

– ключевым словом;

– именем типа.

После этого нужно выполнить объявления класса. Объявление или же инициализация класса используется с помощью списка параметров шаблона. Которые могу быть разного типа.

По задании параметризованных типов информации после ключевого слова class в угловых скобках может быть записано и ключевое слово typename.

Ключевая фраза class или же typename может показывать, параметрическое указание встроенный определенный пользователем формат данных или нет.

Параметры шаблона, которые идут после ключевого слова typename или class, называют также параметризованными типами.

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

Поэтому такие параметры называются нетипичными. Непосредственно название формального параметра в списке параметров шаблона класса должны являться уникальными. Функции-члены для шаблона класса могут определяться и в теле класса. [3]

Таким образом, все параметризованные типы или же нетипичные константы указываются дважды. Первый раз при использовании ключевого слове template (указывается именно так, как и при выполнении объявления шаблона).

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

В других определениях функции-члены не отличаются от простых вовсе.

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


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

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

– программа содержит код для всех отдельных представителей порожденного класса;

– далеко не для всех форматов предусмотрена реализация шаблонных классов и функций.

3.2. Разработка программы для обработки алгебраических матриц на языке высокого уровня

Напишем приложение на языке высокого уровня С++, реализующий матричные операции, а именно:

– сложение;

– вычитание;

– умножение;

– транспонирование матриц;

– умножение матрицы на число;

– умножение вектора на матрицу;

– вывод элементов на монитор;

– проверку матриц на их равенство;

– выполнение определителя.

Разработаем программу с оконным интерфейсом и при этом продемонстрируем работу шаблонного класса.[16]

С помощью среды интегрированной разработки C++ Builder разработаем интерфейс вида (рисунок 9)

Рис. 9. Созданный интерфейс пользователя

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

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

//Выполнение объявления шаблонного класса имеет вид

template<class М>

class Matrix

{

//указание открытых полей

public:

// конструктор

Matrix(int n_1, int m_1)

{

rows = n_1;

cols = m_1;

mt = new М*[rows];

for(int i_1=0; i_1<rows; i_1++)

{

mt[i_1] = new М[cols];

}

}

//описание конструктора копирования

Matrix(const Matrix<М> &m_1)

{

rows = m_1.rows;

cols = m_1.cols;

mt = new М*[rows];

for(int i_1=0; i_1<rows; i_1++)

{

mt[i_1] = new T[cols];

for(int j_1=0; j_1<cols; j_1++)

{

mt[i_1][j_1] = m.get(i_1,j_1);

}

}

}

//подпрограмма арифметического сложения двух матриц

Matrix<М> ad(const Matrix<М> &m) {

Matrix<М> res_1(rows, cols);

for(int i_1=0; i_1<rows; i_1++) {

for(int j_1=0; j_1<cols; j_1++) {

res_1.mtx[i_1][j_1] = get(i_1,j_1)+ m.get(i_1,j_1);

}

}

return res_1;

}