Обзор языков программирования высокого уровня (языки и парадигмы программирования)
Содержание:
ВВЕДЕНИЕ
В современном мире всеобщей информатизации и компьютеризации требования, предъявляемые к отдельным программным продуктам и программному обеспечению, зачастую очень высоки. Основной целью разработки является создание программных продуктов, отвечающих таким качествам, как быстродействие, надежность, функциональность, расширяемость и так далее. Добиться соответствия заявленным требованиям без применения современных технологий практически невозможно.
Актуальность темы исследования заключается в том, что разработка программных продуктов, отвечающих высоким требованиям к их качеству, невозможна без применения современных технологий программирования. Знание современных языков программирования и умение их применять при разработке программ необходимо для профессионального программиста.
Объект исследования данной курсовой работы – языки программирования высокого уровня.
Предметом исследования являются особенности языков программирования высокого уровня.
Цель работы – произвести обзор языков программирования высокого уровня и разработать программу на одном из языков высокого уровня.
Для достижения поставленной цели необходимо решить следующие задачи:
- Исследовать понятие языка программирования.
- Рассмотреть основные парадигмы программирования и соответствующие им языки программирования:
- императивное программирование;
- структурное программирование;
- процедурное программирование;
- модульное программирование;
- объектно-ориентированное программирование
- Рассмотреть особенности языков программирования высокого уровня: С#, Python, Ruby.
- Разработать программу на языке C#.
В данной главе приведена постановка задачи и листинг программного кода, скриншоты программы.
В Заключении представлены основные выводы по проделанному исследованию.
Структура данной курсовой работы состоит из введения, трех глав, заключения и списка использованных источников.
1. Языки и парадигмы программирования
1.1. Основные понятия
Под языком программирования понимают формальную знаковую систему, предназначенную для описания алгоритмов в форме, удобной для исполнителя (например, компьютера). Язык программирования определяется набором лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы.
Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять с ними при различных обстоятельствах.
В настоящий момент количество языков программирования исчисляется несколькими тысячами и каждый год их число увеличивается. Некоторые языки использует только узкий круг их разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Создатели языков программирования по-разному толкуют понятие языка программирования. Общие особенности, признаваемые большинством разработчиков:
- функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами;
- задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между собой;
- исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений. [13]
Каждый язык программирования, также, как и «естественный язык» имеет:
- алфавит – это фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на данном языке программирования;
- синтаксис – это система правил, которые определяют допустимые конструкции языка программирования;
- семантика – это система правил однозначного толкования отдельных языковых конструкций, которые позволяют воспроизвести процесс обработки данных.
При описании языка программирования и его применении используют понятия языка.
Понятие языка – некоторая синтаксическая конструкция и определяемые ею свойства программных объектов или процесса обработки данных.
Взаимодействие синтаксических и семантических правил позволяет определить понятия языка, такие как операторы, идентификаторы, переменные, функции и процедуры, модули и так далее.
В отличие от естественных языков, правила грамматики и семантики для языков программирования должны быть явно, однозначно и четко сформулированы [5].
Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называются языками высокого уровня. В эти языки программирования введены элементы, позволяющие описать задачу в наглядном, легко воспринимаемом виде, упрощающие и автоматизирующие процесс программирования, управляющие конструкции и структуры данных [1].
Языки программирования высокого уровня отражают естественные для человека понятия, а не архитектуру вычислительной системы. Поэтому программа, составленная на языке программирования высокого уровня, сначала транслируется на машинный язык (низкого уровня), а затем выполняется.
В алфавит языков программирования высокого уровня могут входить буквы, цифры, математические символы и ключевые слова, например:
if (если);
then (тогда);
else (иначе) и так далее.
Из исходных символов по правилам синтаксиса происходит построение конструкций, которые обычно называются операторами.
Достоинства языков программирования высокого уровня:
- Алфавит языка программирования намного шире машинного, что делает его более выразительным и в разы повышает наглядность и понятность текста.
- Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается в соответствии с удобством формулирования алгоритмов решения задач определенного класса.
- Конструкции операторов отражают содержательные виды обработки данных и задаются в удобном для человека виде.
- Используется аппарат переменных и действий с ними.
- Поддерживается широкий набор типов данных.
Термин «парадигма программирования» включает совокупность идей и понятий, определяющих подход к программированию.
Считается, что язык поддерживает парадигму программирования, если он предоставляет средства, которые делают использование данной парадигмы удобным (простым, надежным и эффективным).
Поддержка парадигмы проявляется не только в наличии средств языка, позволяющих непосредственно использовать парадигму, но и в виде проверок в момент компиляции или выполнения на неумышленное отклонение от парадигмы. Например, проверка соответствия типов. Выявление неоднозначности и проверка во время выполнения также используются для расширения поддержки парадигмы.
То, что язык программирования поддерживает определенную парадигму программирования, означает, что:
- Все средства встроены в язык понятным и элегантным образом.
- Существует возможность комбинирования средств для решения задач, которые в противном случае потребовали бы отдельных средств.
- Должно быть как можно меньше средств «специального назначения»
- Реализация средства не должна приводить к значительным накладным расходам в не использующих его программах.
- Пользователь не обязан знать ничего, кроме того подмножества языка, которое он явно использует.[8]
В следующих параграфах будет рассмотрено несколько парадигм программирования и соответствующие им языки программирования.
1.2. Императивное программирование
Исторически сложилось так, что подавляющее большинство вычислительной техники, которую мы программируем, имеет состояние и программируется инструкциями, поэтому первые языки программирования по большей части были чисто императивными, то есть не поддерживали никаких парадигм, кроме императивной.
Это были машинные коды, языки ассемблера и такие высокоуровневые языки, как Fortran.
В императивном программировании вычисления описываются в виде инструкций, которые шаг за шагом изменяют состояние программы.
В низкоуровневых языках (например, ассемблер) состоянием могут быть память, регистры и флаги, а инструкциями команды, поддерживаемые целевым процессором.
В языках более высокого уровня (таких как Си) состояние — это только память, инструкции могут быть сложнее и вызывать выделение и освобождение памяти в процессе своей работы.
В высокоуровневых языках (таких как Python, который также поддерживает императивное программирование) состояние ограничивается лишь переменными, а команды могут представлять собой комплексные операции.[14]
Основные понятия императивного программирования:
- инструкция;
- состояние.
Порожденные понятия:
- присваивание;
- переход;
- память;
- указатель.
Языки, поддерживающие парадигму императивного программирования.
Как основную: языки ассемблера, Fortran, Algol, Cobol, Pascal, C, C++, Ada.
Как вспомогательную: Python, Ruby, Java, PHP, C#, Haskell.
Большая часть современных языков в той или иной степени поддерживает императивное программирование. Даже на чистом функциональном языке Haskell можно писать императивно.
1.3. Структурное программирование
Структурное программирование – парадигма программирования, которая была первым большим шагом в развитии программирования.
Основоположниками структурного программирования были Э. Дейкстра и Н. Вирт.
Первыми языками, поддерживающими технологию структурного программирования, были Fortran, Algol и B, позже их приемниками стали Pascal и C.
Эта парадигма вводит новые понятия, объединяющие часто используемые шаблоны написания императивного кода.
В структурном программировании по-прежнему оперируют состоянием и инструкциями, однако вводится понятие составной инструкции (блока), а также инструкций ветвления и цикла (рисунок 1).
Рис.1. Основные структуры
Основные понятия структурного программирования:
- блок;
- цикл;
- ветвление.[1]
Языки, поддерживающие парадигму структурного программирования:
Как основную: C, Basic, Pascal.
Как вспомогательную: Java, Python, C#, Ruby, JavaScript
Поддерживают частично: некоторые макроассемблеры (через макросы).
Большая часть современных языков поддерживают структурную парадигму.[14]
1.4. Процедурное программирование
Вся возрастающая сложность программного обеспечения заставила искать другие способы описания вычислений. Вследствие этого были введены новые понятия, которые позволили по-новому взглянуть на программирование. Такими понятиями были процедуры и функции.
В результате возникла новая методология написания программ, которая приветствуется настоящее время.
Исходная задача разбивается на меньшие (с помощью процедур) и это происходит до тех пор, пока решение всех конкретных процедур не окажется тривиальным. Процедура - самостоятельный участок кода, который можно выполнить как одну инструкцию.[3]
При процедурном программировании акцент делается на алгоритмах, требуемых для выполнения определенных вычислений.
Языки, поддерживающие парадигму процедурного программирования, предоставляют средства для передачи аргументов функциям и возврата значений из функций.
Пример программы, содержащей процедуру на рисунке 2.
Рис.2. Пример программы с процедурой
Основные понятия процедурного программирования:
- процедура;
- функция.
Производные понятия:
- вызов;
- возврат;
- аргументы;
- перегрузка;
- рекурсия.
Языки, поддерживающие данную парадигму:
Как основную: C, C++, Pascal, Object Pascal.
Как вспомогательную: C#, Java, Python, Ruby, JavaScript.[14]
1.5. Модульное программирование
С течением времени акцент при разработке программ сменился от проектирования процедур в сторону организации данных. Кроме того, это явилось отражением факта увеличения размеров программ.
Набор связанных процедур вместе с данными, которые они обрабатывают, называют модулем.[13]
Программа, описанная в стиле модульного программирования — это набор модулей. Что внутри, классы, императивный код или функции – не имеет значения.
Благодаря модулям впервые в программировании появилась возможность сокрытия данных (инкапсуляции) - использования каких-либо сущностей внутри модуля, не показывая их внешнему миру.
Модуль – это отдельная именованная сущность программы, которая объединяет в себе другие программные единицы, близкие по функциональности.
Например, файл List.mod включающий в себя класс List и функции для работы с ним – модуль.
Папка Geometry, содержащая модули Shape, Rectangle и Triangle – тоже модуль, хоть и некоторые языки разделяют понятие модуля и пакета (в таких языках пакет – набор модулей и/или набор других пакетов).
Модули можно импортировать (подключать) для того, чтобы использовать объявленные в них сущности.
Основные понятия модульного программирования:
- модуль;
- импортирование.
Порожденные понятия:
- пакет;
- инкапсуляция.
Языки, поддерживающие данную парадигму:
Как основную: Pascal, Haskell, Python.
Как вспомогательную: Java, C#.
Поддерживают частично: C, C++.
В некоторых языках для модулей введены отдельные абстракции, в других же для реализации модулей можно использовать заголовочные файлы (в C и C++), пространства имен, статические классы или динамически подключаемые библиотеки. [8,14]
1.6. Объектно-ориентированное программирование
В теории программирования объектно-ориентированное программирование определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию с наследованием свойств. Взаимодействие объектов в такой системе осуществляется путем передачи сообщений между объектами.[6]
В основу объектно-ориентированное программирование заложены следующие принципы:
Абстрагирование — это процесс выделения абстракций в предметной области задачи. Абстракция – совокупность существенных характеристик некоторого объекта, которые отличают его от других объектов и таким образом четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа. [4]
Иерархичность есть ранжированная или упорядоченная система абстракций.
Под типизацией понимаются те ограничения, которые накладываются на свойства объектов и препятствующие взаимозаменяемости абстракций разных типов (либо сильно сужающие такую возможность).
Реализация позднего связывания в языке программирования позволяет создавать переменные – указатели на объекты, принадлежащие разным классам (так называемые полиморфные объекты).
Параллелизм – свойство нескольких абстракций одновременно находиться в активном состоянии, т.е. выполнять несколько операций.
Устойчивость – свойство абстракции существовать во времени независимо от процесса, породившего программный объект и/или в пространстве, перемещаясь из одного адресного пространства, в котором он был задан в другое. [7]
Объектно-ориентированное программирование включает в себя три основных понятия: абстрактные типы данных, наследование, динамическое связывание.
Языки объектно-ориентированного программирования поддерживаются этой парадигмой с помощью классов, методов, объектов, передаваемые сообщений.[18]
Языки, поддерживающие парадигму объектно-ориентированного программирования:
Как основную: Smalltalk, Eiffel.
Гибридные языки: CLOS, Dylan, OCaml, Python, Ruby, Objective-C.
Как вспомогательную: Симула, C++, Visual Basic, Delphi, Модула, Модула-2, Java, C#, PHP.
2. Описание некоторых языков программирования высокого уровня
2.1. Язык программирования С#
С# - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java.
Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов, делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.
C# является объектно-ориентированным языком, но поддерживает также и компонентно-ориентированное программирование. Разработка современных приложений все больше тяготеет к созданию программных компонентов в форме автономных и самоописательных пакетов, реализующих отдельные функциональные возможности. Важная особенность таких компонентов – это модель программирования на основе свойств, методов и событий. Каждый компонент имеет атрибуты, предоставляющие декларативные сведения о компоненте, а также встроенные элементы документации. C# предоставляет языковые конструкции, непосредственно поддерживающие такую концепцию работы. Благодаря этому C# отлично подходит для создания и применения программных компонентов [16].
Вот лишь несколько функций языка C#, обеспечивающих надежность и устойчивость приложений:
- сборка мусора автоматически освобождает память, занятую уничтоженными и неиспользуемыми объектами;
- обработка исключений предоставляет структурированный и расширяемый способ выявлять и обрабатывать ошибки;
- строгая типизация языка не позволяет обращаться к неинициализированным переменным, выходить за пределы индексируемых массивов или выполнять неконтролируемое приведение типов.
В C# существует единая система типов. Все типы C#, включая типы-примитивы, такие как int и double, наследуют от одного корневого типа object. Таким образом, все типы используют общий набор операций, и значения любого типа можно хранить, передавать и обрабатывать схожим образом. Кроме того, C# поддерживает пользовательские ссылочные типы и типы значений, позволяя как динамически выделять память для объектов, так и хранить упрощенные структуры в стеке.
Чтобы обеспечить совместимость программ и библиотек C# при дальнейшем развитии, при разработке C# много внимания было уделено управлению версиями. Многие языки программирования обходят вниманием этот вопрос, и в результате программы на этих языках ломаются чаще, чем хотелось бы, при выходе новых версий зависимых библиотек. Вопросы управления версиями существенно повлияли на такие аспекты разработки C#, как раздельные модификаторы virtual и override, правила разрешения перегрузки методов и поддержка явного объявления членов интерфейса.
Плюсы C#:
- поддержка компанией Microsoft. В отличии от Java, которой не пошел на пользу переход в собственность Oracle, C# хорошо развивается благодаря усилиям Microsoft;
- в последнее время много совершенствуется. Так как C# был создан позже, чем Java и другие языки, он требовал больших доработок. Также это касается популяризации и бесплатности - было обещано открыть исходный код, а инструменты (Visual Studio, Xamarin) стали бесплатными для частных лиц и небольших компаний;
- много синтаксического сахара - конструкций, которые созданы для облегчения написания и понимания кода (особенно если это код другого программиста) и не играют роли при компиляции;
- средний порог вхождения. Синтаксис похожий на C, С++ или Java облегчает переход для других программистов. Для новичков это также один из самых перспективных языков для изучения;
- Xamarin. Благодаря покупке Xamarin на C# теперь можно писать под Android и iOS;
- добавлено функциональное программирование (F#);
- большое сообщество программистов;
- много вакансий на должность C# программиста в любом регионе [21].
Минусы C#:
- Данный язык ориентирован, в основном, только на .NET (на Windows платформу);
- бесплатность только для небольших компании, студентов, учащихся и программистов-одиночек. Для больших команд разработчиков покупка лицензий обойдется недешево.
2.2. Язык программирования Python
Python — это свободный интерпретируемый объектно-ориентированный расширяемый встраиваемый язык программирования очень высокого уровня.
– свободный означает, что все исходные тексты интерпретатора и библиотек доступны для любого использования;
– интерпретируемый, потому что использует «позднее связывание»;
– объектно-ориентированный, так как поддерживается классическая ОО модель, включая множественное наследование;
– расширяемый - имеет строго определенные API для создания модулей, типов и классов на C или C++;
– встраиваемый - имеет API для встраивания интерпретатора в другие программы;
– очень высокого уровня – поддерживается динамическая типизация, встроенные типы данных высокого уровня, классы, модули, механизм исключений.
Python универсальный язык программирования, который широко используют во всем мире для различных целей — базы данных и обработка текстов, встраивание интерпретатора в игры, программирование GUI и быстрое создание прототипов (RAD).
Также Python используется для программирования Web приложений: серверных (CGI), клиентских (роботы), Web-серверов и серверов приложений. Python обладает широкой стандартной библиотекой, и еще более широким набором модулей, написанных различными разработчиками. Python и приложения, написанные на нем, используют самые известные и крупные фирмы — IBM, Yahoo!, Google.com, Hewlett Packard, Infoseek, NASA, Red Hat, CBS MarketWatch, Microsoft [20].
К основным преимуществам языка программирования Python можно отнести:
- универсальность использования: на этом языке программирования можно писать разные типы приложений, потому вместе с его освоением открываются широкие возможности для применения языка;
- простота: изначально Python разрабатывался для упрощения работы с ним человека;
- популярность в среде программистов и востребованность на рынке труда языка программирования Python широко применяется в различных проектах;
- большое количество доступных библиотек расширяют возможности языка и делают его более универсальным;
- кроссплатформенность: один раз написанная программа будет работать на любой платформе, где есть интерпретатор языка Python;
- наличие качественной документации [23].
2.3. Язык программирования Ruby
Ruby - язык программирования, разработанный в Японии Юкихиро Мацумото. Ruby существует уже почти 20 лет и активно развивается, при поддержке сообщества программистов и его поклонников.
Мацумото хотел создать объектно-ориентированный язык, у которого был бы простой и понятный синтаксис и ему это удалось. В противоположность языкам, ориентированным на скорость выполнения программы машиной, Мацумото разработал Ruby, чтобы облегчить работу человеку. В Ruby используется принцип «наименьшей неожиданности». Это означает, что программа будет вести себя в соответствии с ожиданиями программиста.
Ruby придерживается концепции языка Smalltalk, когда любые типы данных считаются объектами, а значит для них можно задавать методы и переменные объекта. В этом его выгодное отличие от таких языков, как, С++.
Также стоит отметить гибкость языка. Например, вы можете переопределить операцию сложения и использовать обозначения, которые более удобны для вас. Например, определить, что сложение чисел будет работать при вводе слова plus (1 plus 2), а не символа (1+2). То, есть не вы подстраиваетесь под язык, а, наоборот, он подстраивается под вас
Плюсы языка Ruby
- ООП в стиле Smalltalk;
- поддержка сообщества программистов;
- простой и удобный синтаксис;
- поддержка новейших перспективных подходов в программировании;
- большое количество готовых решений.
К недостаткам Ruby можно отнести:
- плохую поддержку для Windows. Так как Ruby разрабатывался, в основном, для Linux, то не в Unix-подобной системе будет сложнее работать с IDE, устанавливать дополнительные библиотеки и.т.д
- отсутствие вакансий, если это не Ruby on Rails;
- мало документации на русском;
- потребление памяти.
Выводы.
В данной главе были рассмотрены одни из самых распространенных и популярный языков программирования высокого уровня.
Исходя из вышеизложенного, следует отметить, что развитие современных языков программирования высокого уровня идет в русле «дружественности» к программисту, простоты и понятности синтаксиса.
3. Разработка программы на языке C#
Постановка задачи.
Требуется разработать программную утилиту с оконным интерфейсом для мониторинга процессов.
Функционал программного средства:
вывод сведений обо всех процессах: имя процесса, PID – ID процесса, PPID - ID родительского процесса, определение процесса с наименьшим ID.
Для разработки программы использовался язык программирования C# и среда программирования Microsoft Visual Studio 2017.
Внешний вид приложения представлен на рисунке 3.
Рис. 3. Внешний вид окна приложения
При нажатии кнопки «Найти» выводится список с информацией о всех запущенных процессах. Информация о выбранном в списке процессе (имя процесса, PID, PPID) отображается в правом текстовом поле. Кроме того, выводится общее количество процессов, а также наименование процесса с наименьшим ID.
При нажатии кнопки «Очистить» происходит очистка всех полей.
При нажатии кнопки «Закрыть» осуществляется закрытие приложения.
В меню дублируются действия, доступные с помощью кнопок «Найти», «Очистить» и «Выход» (рисунок 4):
Рис. 4. Меню
Исходный код программы:
using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Management;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public void ProcessList() // вывод списка процессов
{
//Получаем массив типа System.Diagnostics.Process,
//предоставляющий данные обо всех процессах,
//выполняющегося на локальном компьютере.
System.Diagnostics.Process[] processlist =
System.Diagnostics.Process.GetProcesses();
//Выполняем поиск всех процессов в полученном массиве
int count = 0;
int minid = 999999999;
string minid_name = "";
foreach (System.Diagnostics.Process theprocess in processlist)
{
// Получаем ID родительского процесса
var query = string.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = {0}", theprocess.Id);
var search = new ManagementObjectSearcher("root\\CIMV2", query);
var results = search.Get().GetEnumerator();
results.MoveNext();
var queryObj = results.Current;
var parentId = (uint)queryObj["ParentProcessId"];
//Добавляем информацию о процессе в элемент управления ListBox1.
listBox1.Items.Add("ID: "+theprocess.Id +" Name: "+theprocess.ProcessName + " ParentID: "+parentId);
//подсчет количества процессов
count++;
// определение процесса с минимальным ID
if (theprocess.Id < minid)
{ minid = theprocess.Id;
minid_name = theprocess.ProcessName;
}
}
label2.Text = count.ToString();//вывод количества процессов
label3.Text = minid_name;//вывод наименьшего id
}
public Form1()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
this.Close();// закрыть форму
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();//очистка текста
label2.Text = "";
label3.Text = "";
richTextBox1.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
ProcessList();//вывод списка процессов
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
richTextBox1.Text=listBox1.Text; //вывод информации о выбранном процессе
}
}
}
ЗАКЛЮЧЕНИЕ
Разработка программных продуктов, отвечающих высоким требованиям к их качеству, невозможна без знания языков программирования.
Под языком программирования понимают формальную знаковую систему, предназначенную для описания алгоритмов в форме, удобной для исполнителя (например, компьютера). Язык программирования определяется набором лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять с ними при различных обстоятельствах.
В ходе работы были решены следующие задачи
- Изучить понятие языка программирования.
- Рассмотреть основные парадигмы программирования и соответствующие им языки программирования:
- императивное программирование;
- структурное программирование;
- процедурное программирование;
- модульное программирование;
- объектно-ориентированное программирование
- Рассмотреть особенности языков программирования С#, Python, Ruby.
- Разработать программу на языке C#.
Практическая значимость работы состоит в разработке программы на языке на языке C# - программной утилиты с оконным интерфейсом для мониторинга процессов.
Функционал программного средства: вывод сведений обо всех процессах: имя процесса, PID – ID процесса, PPID - ID родительского процесса, определение процесса с наименьшим ID.
Для разработки программы использовался язык программирования C# и среда программирования Microsoft Visual Studio 2017.
Перспективы работы:
- расширение функционала разработанного программного средства;
- дальнейшее изучение языков программирования высокого уровня.
Цель работы – произвести обзор языков программирования высокого уровня и разработать программу на одном из языков высокого уровня -достигнута. Все поставленные задачи выполнены.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Афанасьева Т.В. Алгоритмы и программы: учебное пособие / Т.В. Афанасьева, Ю.Е. Кувайскова, В.А. Фасхутдинова. – Ульяновск: УлГТУ, 2011. – 227 с.
- Губина Т.Н. Язык программирования Паскаль: лабораторный практикум. Часть 1 / Т.Н. Губина. – Елец: ЕГУ им. И.А. Бунина, 2012. – 102 с.
- Давыдова Н.А. Программирование: учебное пособие / Н.А. Давыдова, Е.В. Боровская. – М.: Лаборатория знаний, 2009. – 238 с.
- Дубров Д.В. Программирование: система построения проектов CMake: учебник для магистратуры / Д.В. Дубров. – М.: Юрайт, 2016. – 422 с.
- Иванова Г.С. Программирование: учебник / Г.С. Иванова. – М.: Кнорус, 2017. – 426 с.
- Круз Р.Л. Структуры данных и проектирование программ / Р.Л. Круз. – М.: Лаборатория знаний, 2012. – 765 с.
- Малыженков В.И. Информатика и вычислительная техника. Курс лекций по основам программирования / В.И. Малыженкова. – Нижний Новгород: Нижегородский госуниверситет, 2011. – 52 с.
- Страуструп Б. Язык программирования С++ / Б. Страуструп. – М.; СПб.: БИНОМ, 2017. – 1136 с.
- Трофимов В.В. Информационные технологии: учебник / В.В. Трофимов. – М: Дашков и К, 2016. – 542 с.
- Тузовский А.Ф. Высокоуровневые методы информатики и программирования: учебно-методическое пособие / А.Ф. Тузовский. – Томск: Томский политехнический университет, 2009. – 200 с.
- Внешние подпрограммы и модули. – URL: http://coderbook.ru/pascal-лекция-№12. (Дата обращения 27.04.2019).
- Вендров А.М. Журнал Jet Info Online. Библиотека портала CIT Forum современные технологии создания программного обеспечения: обзор / А.М. Вендров. URL: http://www.citforum.ru/programming/application/program. (Дата обращения 26.04.2019).
- Городняя Л.В. Парадигмы программирования: курс интернет-университета информационных технологий / Л.В. Городняя. URL: http://www.intuit.ru/department/se/paradigms. (Дата обращения 27.04.2019)
- «Забытые» парадигмы программирования. URL: https://habr.com/post/223253. (Дата обращения 27.04.2019).
- Интерактивное учебное пособие основы программирования и баз данных специальность 09.02.02 «Компьютерные сети». URL: http://coderbook.ru. (Дата обращения 26.04.2019).
- Краткий обзор языка C#. URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/tour-of-csharp. (дата обращения 25.04.2019).
- Непейвода Н.Н. Стили и методы программирования: курс интернет-университета информационных технологий / Н.Н. Непейвода. URL: http://www.intuit.ru/department/se/progstyles. (Дата обращения 26.04.2019).
- Павловская Т.А. Программирование на языке высокого уровня Паскаль / Т.А. Павловская. URL: https://www.intuit.ru/studies/courses /628/484/info. (Дата обращения 26.04.2019).
- Ружкников В.А. Технологии и методы программирования / В.А. Ружников. URL: http://tp.vruzh.ru/001-004.pdf. (Дата обращения 26.04.2019).
- Россум Г. Язык программирования Python / Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач. URL: http://rus-linux.net/MyLDP/BOOKS/python.pdf. (Дата обращения 27.04.2019).
- Язык программирования C#. URL: https://learn-code.ru/yazyki-programmirovaniya/c-sharp. (Дата обращения 27.04.2019).
- Язык программирования Ruby. URL: https://learn-code.ru/yazyki-programmirovaniya/ruby. (Дата обращения 28.04.2019).
- Язык программирования Python: основы, особенности и примеры URL: https://ruud.ru/it/47731-yazyk-programmirovaniya-python-osnovy-osobennosti-i-primery. (Дата обращения 28.04.2019).
- Применение процессного подхода для оптимизации бизнес-процессов (Процесс и процессный подход)
- Организация производства в предприятии быстрого обслуживания
- Гарантии прав и свобод человека и гражданина (Влияние конвенции о защите прав человека и основоположных свобод на права человека)
- Менеджмент человеческих ресурсов (Эволюция концепций менеджмента человеческими ресурсами)
- Основы работы с операционной системой Windows 7 (Описание операционной системы Windows 7)
- Применение объектно-ориентированного подхода при проектировании информационной системы (ЭТАПЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ КОМПЛЕКСОВ)
- Гарантии прав и свобод человека и гражданина. Природа и сущность прав и свобод человека и гражданина.
- Эволюция антимонопольного законодательства разных стран
- Налоговая система России: структура, принципы построения и виды налогов и сборов
- Человеческий фактор в управлении организацией (Сущность и роль человеческого фактора в управлении организацией)
- Спрос и предложение денег (Понятие денег и денежных агрегатов)
- Счета и двойная запись (Понятие о счетах и их классификация)