Системное программирование и курс системного программирования

Системное программирование и курс системного программирования Кабинет автора

​​​​​​​1. Классификация систем программирования

Далее рассмотрим классификации систем программирования по различным критериям.

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

Это основная классификация.

Функциональная классификация систем программирования

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

Рассмотрим четыре группы инструментов.

Классификация систем программирования по категориям

Классификация систем программирования по категориям определяет уровень их интегрированности по реализуемыми функциям и содержит:

Классификация систем программирования по предоставляемому интерфейсу

Системы программирования дают два ярко выраженных типа программного интерфейса.

В другом интернет источнике предложена другая классификация систем программирования. А именно системы программирования классифицируются по признакам, которые представлены в Таблице 1.

Таблица 1. Классификация систем программирования.

Например, для многоязыковых систем характерно то, что отдельные части (модули или процедуры, функции) программы могут быть разработаны с использованием разных языков и только потом, объединены во время или перед выполнением в единый модуль;

Для открытой системы характерно то, что можно ввести новый входной язык с транслятором, не требуя непосредственных изменений в самой системе;

Для интерпретирующей системы свойственно то, что выполняется покомандная расшифровка и выполнение инструкций входного языка;

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

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

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

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

2 Системы программирования фирмы Microsoft

Свою деятельность фирма начала еще в далеком в 1975 году, когда два друга Билл Гейтс и Полл Аллен разработали интерпретатор языка Basic для вышедшего накануне компьютера Altair.

Но в данной работе опишем систему программирования Visual Basic, которая была создана фирмой Microsoft Corporation.

Система программирования Visual Basic.

В 1994 году компания выпустила Visual Basic for Applications. Именно в это время, после включения VBA в состав Microsoft Office, Basic стал одним из основных стандартов программирования для Windows.

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

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

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

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

С точки зрения написания кода важным отличием от того же C++ стал отказ от указателей. Так решил Билл Гейтс, еще во время разработки первых версий Microsoft BASIC. Хотя указатели полезны, так как разрешают прямой доступ к памяти по любому адресу, их использование сопряжено с ошибками в том случае, если они применяются неаккуратно. А так как первоначально язык создавался для «простых смертных», это решение выглядит вполне оправданным.

В первой версии (1991 год) Алан Купер реализовал принцип связи языка и графического интерфейса.

Начиная с третьей версии (1993) в VB появилась поддержка MS Access.

Visual Basic 4.0 (1995) — версия, в которой появилась возможность создавать как 32-х так и 16-разрядные Windows-приложения. Кроме того, в язык были добав

Начиная с VB 5.0 (1997), появилась возможность разрабатывать собственные COM-компоненты. Кроме того, появилась новая виртуальная машина, реализованная в динамической библиотеке MSVBVM50.DLL. Компилятор VB для трансляции использовал многопроходный режим, но в конечном счете полагался на компилятор Microsoft C++ для получения выходного машинного кода после компиляции в промежуточный язык. Использование библиотеки времени исполнения и внутреннего интерфейса C++ явилось отправной точкой для формирования технологии .NET.

VB версии 6 — это уже мощный язык, который можно использовать для создания распределенных приложений с применением компонентов СОМ и Microsoft Transaction Server. Microsoft предложила трехуровневый подход для архитектур «клиент-сервер», в котором «тонкие» пользовательские интерфейсы взаимодействовали с удаленными компонентами VB для получения данных из базы данных или с другой машины.

Читайте также:  Провести показания счетчика смоленск и Тверь можно через интернет. Вход в личный кабинет smolregiongaz

Более того, VB6 (1998) можно было использовать для создания элементов управления Active-X, работающих вместе с Internet Explorer.

В 2002 году появился первый выпуск Visual Basic .NET. С этого момента обратная совместимость с классической версией Visual Basic оказалась нарушена.

Версии данного языка программирования и их краткое описание представлено в Таблице 2 (См. Приложение 1).

Система программирования Visual Basic прошла серьезный путь и претерпела существенные, можно сказать, необратимые изменения. От их изначальной простоты мало что осталось. В результате VB превратился в «обычный» объектно-ориентированный язык программирования высокого уровня.

СОВРЕМЕННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

В этом параграфе рассмотрим кратко некоторые из существующих систем программирования, а именно:

— Visual Studio;

— Qt Creator;

— IntelliJ IDEA;

Eclipse. Свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP, X10 (X10DT) и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse диспетчерами для работы с базами данных, серверами приложений и др.

Visual Studio. Линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ,поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight.

Dev-C++. Свободная интегрированная среда разработки приложений для языков программирования С/С++. В дистрибутив входит компилятор MiniGW.

NetBeans IDE. Свободная интегрированная среда разработки приложений на языках программирования Java, Python, PHP, JavaScript, C, C++ и многих других. Последние версии поддерживают рефакторинг, профилирование, выделение синтаксических конструкций цветом, поддержка множества предопределенных шаблонов кода.

Qt Creator. Кроссплатформенная свободная IDE для разработки на С и С++. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса.

IntelliJ IDEA. Интегрированная среда разработки программного обеспечения для многих языков программирования, в частности Java, JavaScript, Python, Ruby, Kotlin, PHP, C, C++ и других, разработанная компанией JetBrains. У данной компании существуют и отельные продукты для многих из этих языков, которые базируются на IntelliJ IDEA, например: RubyMine, PyCharm, PhpStorm, CLion.

Delphi. Интегрированная среда разработки ПО для Microsoft Windows, Mac OS, iOS и Android на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies. Embarcadero Delphi является частью пакета Embarcadero RAD Studio и поставляется в пяти редакциях: Starter, Professional, Enterprise, Ultimate и Architect.

Lazarus. Открытая среда разработки программного обеспечения на языке Object Pascal для компилятора Free Pascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении.

Для дальнейшей работы выберем некоторые из систем программирование для более детального рассмотрения, а именно:

— Microsoft Visual Studio;

-Jet Brains PyCharm;

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

Среда предназначена для быстрой (RAD) разработки прикладного ПО для операционных систем Windows, Mac OS X, а также iOS и Android. Благодаря уникальной совокупности простоты языка и генерации машинного кода позволяет непосредственно, и, при желании, достаточно низкоуровнево взаимодействовать с операционной системой, а также с библиотеками, написанными на C/C++.

Созданные программы независимы от стороннего ПО, как то Microsoft .NET Framework или Java Virtual Machine. Выделение и освобождение памяти управляется в основном пользовательским кодом, что, с одной стороны, ужесточает требования к качеству кода, а с другой — делает возможным создание сложных приложений с высокими требованиями к отзывчивости (работа в реальном времени).

В кросс-компиляторах для мобильных платформ предусмотрен автоматический подсчёт ссылок на объекты, облегчающий задачу управления их временем жизни. Ниже приведен примера интерфейса Delphi(рис.3).

Системное программирование и курс системного программирования

Рисунок 3 – Интерфейс среды разработки Delphi

Delphi состоит из следующих основных составных частей:

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

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор).

Читайте также:  Основные функции и специфика педагогической профессии

Дизайнер Форм в Delphi интуитивно понятен и прост в использовании. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонентов.

Палитра Компонент (см. рис.3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз — на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

Палитра Компонент(рис.4) использует постраничную группировку объектов. Внизу Палитры находится набор закладок — Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу).

Системное программирование и курс системного программирования

Рисунок 4 – Палитра компонентов Delphi

В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:

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

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

WinSight и WinSpector интересны преимущественно для опытных программистов в Windows. Это не значит, что начинающий не должен их запускать и экспериментировать с ними по своему усмотрению. Но эти инструменты вторичны и используются для узких технических целей.

Из этих двух инструментов WinSight определенно более полезен. Основная его функция — позволить Вам наблюдать за системой сообщений Windows. Хотя Delphi делает много для того, чтобы спрятать сложные детали данной системы сообщений от неопытных пользователей, тем не менее Windows является операционной системой, управляемой событиями. Почти все главные и второстепенные события в среде Windows принимают форму сообщений, которые рассылаются с большой интенсивностью среди различными окнами на экране. Delphi дает Вам полный доступ к сообщениям Windows и позволяет отвечать на них, как только будет нужно. В результате, опытным пользователям WinSight становится просто необходим.

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

Интегрированная среда разработки Visual Studio — это оригинальная среда запуска, которая позволяет редактировать, отлаживать и создавать код, а затем публиковать приложения. Интегрированная среда разработки (IDE) — это многофункциональная программа, которую можно использовать для различных аспектов разработки программного обеспечения. Помимо стандартного редактора и отладчика, которые существуют в большинстве сред IDE, Visual Studio включает в себя компиляторы, средства выполнения кода, графические конструкторы и многие другие функции для упрощения процесса разработки программного обеспечения.

Visual Studio включает один или несколько компонентов из следующих:

— Visual Basic .NET;

— Visual C++;

— Visual C#;

— Visual F#;

— Microsoft SQL Server или Microsoft SQL Server Express;

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

Например существуют языковые дополнения:

— CodeDrive для разработки ActionScript 3 приложений;

— Phalanger для сборки приложений ASP.NET при помощи PHP;

— VS.php для сборки PHP-приложений;

— Python за счет Python Tools;

На рис.5 показана среда Visual Studio с открытыми проектом и несколькими окнами основных инструментов, которые вам, скорее всего, понадобятся:

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

— В окне редактора отображается содержимое файла. Здесь можно редактировать код или разрабатывать пользовательский интерфейс, например окно с кнопками или текстовые поля.

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

Системное программирование и курс системного программирования

Рисунок 5 – Интерфейс Visual Studio

IntelliSense — это набор функций, отображающих сведения о коде непосредственно в редакторе и в некоторых случаях автоматически создающих небольшие отрывки кода. По сути, это базовая документация, встроенная в редактор, с которой вам не приходится искать информацию где-то еще. Функции IntelliSense зависят от языка. Дополнительные сведения см. в руководствах по IntelliSense для C#, IntelliSense для Visual C++, IntelliSense для JavaScript и IntelliSense для Visual Basic.

Читайте также:  Решите задачу Коши онлайн калькулятором и дифференциальными уравнениями шаг за шагом

На рисунке 6 показано, как IntelliSense отображает список членов.

Системное программирование и курс системного программирования

Рисунок 6 – Пример использования IntelliSense

PyCharm — интегрированная среда разработки для языка программирования Python. Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA.

PyCharm это кросс-платформенная среда разработки, которая совместима с: Windows, MacOS, Linux. PyCharm Community Edition(бесплатная версия) находится под лицензией Apache License, а PyCharm Professional Edition(платная версия) является проприетарным ПО.

Возможности данной среды программирования:

Пользователи могут сами писать свои плагины, тем самым расширять возможности PyCharm. Некоторые плагины из других JetBrains IDE могут работать с PyCharm. Существует более тысячи плагинов совместимых с PyCharm.

На рис.7 наведен интерфейс PyCharm.

Системное программирование и курс системного программирования

Рисунок 7 — Интерфейс PyCharm

Интерфейс PyCharm включает в себя следующие компоненты:

Автозаполнение кода ( Auto-Completing Code) — отличная экономия времени, независимо от типа файла, с которым вы работаете. Завершение работает по мере ввода и завершения любого имени мгновенно(рис.8).

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

Системное программирование и курс системного программирования

Рисунок 8 – Автозаполнение кода

Для демонстрации реализации проекта было выбрано среду программирования PyCharm от JetBrains и соответствующий ей язык программирования Python.

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

— есть работа с массивами и сложные вычисления в массиве;

— есть работа с файлами;

— реализован графический интерфейс;

— программа будет самообучаться опираясь на полученный результат при каждом прогнозировании;

— количество комнат;

— площадь, м2;

— наличие лифта;

— спрогнозированная цена квартиры, тыс.руб.;

В первую очередь нужно запустить среду разработки PyCharm и создать новый проект(рис.9).

Системное программирование и курс системного программирования

Рисунок 9 – Окно создания проекта

Дальше в окне создания проекта выберем путь к его месторасположению на диске. В результате было получено окно пустого проекта(рис.10).

Следующим шагом будет добавление в проект исполняемого файла в котором в дальнейшем будет располагаться наш код(рис.11).

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

Системное программирование и курс системного программирования

Рисунок 10 – Окно нового пустого проекта

Системное программирование и курс системного программирования

Рисунок 11 – Добавление нового файлав проект

Полный листинг кода программы приведен в Приложении А.

Блок-схема алгоритма нашей программы приведена ниже на рис.12.

Системное программирование и курс системного программирования

Рисунок 12 – Блок-схема алгоритма нашей программы

Изначальная выборка находится в файле database.txt, содержание которого показано в Приложении Б. В процессе работы программа самообучается и добавляет в этот файл полученные при расчете результаты.

В процессе разработки постоянно использовалось автозаполнение(рис.13).

Системное программирование и курс системного программирования

Рисунок 13 – Автозаполнение в реальном проекте

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

Системное программирование и курс системного программирования

Рисунок 14 – Запуск режима отладки

Системное программирование и курс системного программирования

Рисунок 15 – Окно отладки остановленной программы

Как можно увидеть на рис.15 нижняя часть окна заполненна отладочной информацией и возможными вариантами действий, что были описанны ранее.

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

Системное программирование и курс системного программирования

Рисунок 16 – Встроенные возможноси использования консоли(терминала)

Или например использовать консоль интерпретатора Python. Эта возможность очень удобная, так как можно быстро проверить определенные участки кода и идеи, и уже потом без всяких ошибок внести это в код проекта. Пример такого случая приведен на рис. 17.

Системное программирование и курс системного программирования

Рисунок 17 – Использование консоли Python

На рис. 17 можно увидеть, что при проверке каких то команд в консоли Python, в правой части этого окна мы видим, что то похожее на отладочную информацию.

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

Оцените статью
Добавить комментарий