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

Обзор языков программирования высокого уровня (языки и парадигмы программирования)

Содержание:

ВВЕДЕНИЕ

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

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

Объект исследования данной курсовой работы – языки программирования высокого уровня.

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

Цель работы – произвести обзор языков программирования высокого уровня и разработать программу на одном из языков высокого уровня.

Для достижения поставленной цели необходимо решить следующие задачи:

  1. Исследовать понятие языка программирования.
  2. Рассмотреть основные парадигмы программирования и соответствующие им языки программирования:
  • императивное программирование;
  • структурное программирование;
  • процедурное программирование;
  • модульное программирование;
  • объектно-ориентированное программирование
  1. Рассмотреть особенности языков программирования высокого уровня: С#, Python, Ruby.
  2. Разработать программу на языке C#.

В данной главе приведена постановка задачи и листинг программного кода, скриншоты программы.

В Заключении представлены основные выводы по проделанному исследованию.

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

1. Языки и парадигмы программирования

1.1. Основные понятия

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

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

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

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

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

Каждый язык программирования, также, как и «естественный язык» имеет:

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

При описании языка программирования и его применении используют понятия языка.

Понятие языка – некоторая синтаксическая конструкция и определяемые ею свойства программных объектов или процесса обработки данных.

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

В отличие от естественных языков, правила грамматики и семантики для языков программирования должны быть явно, однозначно и четко сформулированы [5].

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

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

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

if (если);

then (тогда);

else (иначе) и так далее.

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

Достоинства языков программирования высокого уровня:

  1. Алфавит языка программирования намного шире машинного, что делает его более выразительным и в разы повышает наглядность и понятность текста.
  2. Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается в соответствии с удобством формулирования алгоритмов решения задач определенного класса.
  3. Конструкции операторов отражают содержательные виды обработки данных и задаются в удобном для человека виде.
  4. Используется аппарат переменных и действий с ними.
  5. Поддерживается широкий набор типов данных.

Термин «парадигма программирования» включает совокупность идей и понятий, определяющих подход к программированию.

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

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

То, что язык программирования поддерживает определенную парадигму программирования, означает, что:

  1. Все средства встроены в язык понятным и элегантным образом.
  2. Существует возможность комбинирования средств для решения задач, которые в противном случае потребовали бы отдельных средств.
  3. Должно быть как можно меньше средств «специального назначения»
  4. Реализация средства не должна приводить к значительным накладным расходам в не использующих его программах.
  5. Пользователь не обязан знать ничего, кроме того подмножества языка, которое он явно использует.[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; //вывод информации о выбранном процессе

}

}

}

ЗАКЛЮЧЕНИЕ

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

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

В ходе работы были решены следующие задачи

  1. Изучить понятие языка программирования.
  2. Рассмотреть основные парадигмы программирования и соответствующие им языки программирования:
  • императивное программирование;
  • структурное программирование;
  • процедурное программирование;
  • модульное программирование;
  • объектно-ориентированное программирование
  1. Рассмотреть особенности языков программирования С#, Python, Ruby.
  2. Разработать программу на языке C#.

Практическая значимость работы состоит в разработке программы на языке на языке C# - программной утилиты с оконным интерфейсом для мониторинга процессов.

Функционал программного средства: вывод сведений обо всех процессах: имя процесса, PID – ID процесса, PPID - ID родительского процесса, определение процесса с наименьшим ID.

Для разработки программы использовался язык программирования C# и среда программирования Microsoft Visual Studio 2017.

Перспективы работы:

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

Цель работы – произвести обзор языков программирования высокого уровня и разработать программу на одном из языков высокого уровня -достигнута. Все поставленные задачи выполнены.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Афанасьева Т.В. Алгоритмы и программы: учебное пособие / Т.В. Афанасьева, Ю.Е. Кувайскова, В.А. Фасхутдинова. – Ульяновск: УлГТУ, 2011. – 227 с.
  2. Губина Т.Н. Язык программирования Паскаль: лабораторный практикум. Часть 1 / Т.Н. Губина. – Елец: ЕГУ им. И.А. Бунина, 2012. – 102 с.
  3. Давыдова Н.А. Программирование: учебное пособие / Н.А. Давыдова, Е.В. Боровская. – М.: Лаборатория знаний, 2009. – 238 с.
  4. Дубров Д.В. Программирование: система построения проектов CMake: учебник для магистратуры / Д.В. Дубров. – М.: Юрайт, 2016. – 422 с.
  5. Иванова Г.С. Программирование: учебник / Г.С. Иванова. – М.: Кнорус, 2017. – 426 с.
  6. Круз Р.Л. Структуры данных и проектирование программ / Р.Л. Круз. – М.: Лаборатория знаний, 2012. – 765 с.
  7. Малыженков В.И. Информатика и вычислительная техника. Курс лекций по основам программирования / В.И. Малыженкова. – Нижний Новгород: Нижегородский госуниверситет, 2011. – 52 с.
  8. Страуструп Б. Язык программирования С++ / Б. Страуструп. – М.; СПб.: БИНОМ, 2017. – 1136 с.
  9. Трофимов В.В. Информационные технологии: учебник / В.В. Трофимов. – М: Дашков и К, 2016. – 542 с.
  10. Тузовский А.Ф. Высокоуровневые методы информатики и программирования: учебно-методическое пособие / А.Ф. Тузовский. – Томск: Томский политехнический университет, 2009. – 200 с.
  11. Внешние подпрограммы и модули. – URL: http://coderbook.ru/pascal-лекция-№12. (Дата обращения 27.04.2019).
  12. Вендров А.М. Журнал Jet Info Online. Библиотека портала CIT Forum современные технологии создания программного обеспечения: обзор / А.М. Вендров. URL: http://www.citforum.ru/programming/application/program. (Дата обращения 26.04.2019).
  13. Городняя Л.В. Парадигмы программирования: курс интернет-университета информационных технологий / Л.В. Городняя. URL: http://www.intuit.ru/department/se/paradigms. (Дата обращения 27.04.2019)
  14. «Забытые» парадигмы программирования. URL: https://habr.com/post/223253. (Дата обращения 27.04.2019).
  15. Интерактивное учебное пособие основы программирования и баз данных специальность 09.02.02 «Компьютерные сети». URL: http://coderbook.ru. (Дата обращения 26.04.2019).
  16. Краткий обзор языка C#. URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/tour-of-csharp. (дата обращения 25.04.2019).
  17. Непейвода Н.Н. Стили и методы программирования: курс интернет-университета информационных технологий / Н.Н. Непейвода. URL: http://www.intuit.ru/department/se/progstyles. (Дата обращения 26.04.2019).
  18. Павловская Т.А. Программирование на языке высокого уровня Паскаль / Т.А. Павловская. URL: https://www.intuit.ru/studies/courses /628/484/info. (Дата обращения 26.04.2019).
  19. Ружкников В.А. Технологии и методы программирования / В.А. Ружников. URL: http://tp.vruzh.ru/001-004.pdf. (Дата обращения 26.04.2019).
  20. Россум Г. Язык программирования Python / Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач. URL: http://rus-linux.net/MyLDP/BOOKS/python.pdf. (Дата обращения 27.04.2019).
  21. Язык программирования C#. URL: https://learn-code.ru/yazyki-programmirovaniya/c-sharp. (Дата обращения 27.04.2019).
  22. Язык программирования Ruby. URL: https://learn-code.ru/yazyki-programmirovaniya/ruby. (Дата обращения 28.04.2019).
  23. Язык программирования Python: основы, особенности и примеры URL: https://ruud.ru/it/47731-yazyk-programmirovaniya-python-osnovy-osobennosti-i-primery. (Дата обращения 28.04.2019).