Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Основная терминология программирования).pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. Теоретические концепции языков программирования и программных сред

1.1. Основная терминология программирования

1.2. Классификация языков программирования по способу исполнения программ

1.3. Классификация языков программирования по уровню детализации

1.4. Классификация парадигм, реализуемых языками программирования

1.5. Критерии выбора сред и языков программирования

2. Некоторые современные языки программирования и их сравнение

2.1. Язык программирования C

2.2. Язык программирования C++

2.3. Язык программирования Java

2.4. Язык программирования Python

2.5. Язык программирования C#

2.6. Сравнительный анализ языков программирования с точки зрения одной из отраслей

3. Некоторые современные среды разработки и их сравнение

3.1. Среда разработки Microsoft Visual Studio

3.2. Среда разработки NetBeans

3.3. Среда разработки Eclipse

3.4. Сравнительный анализ сред разработки приложений с точки зрения одной из отраслей

ЗАКЛЮЧЕНИЕ

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

{

@Override

public double GetPower()//Полиморфизм через переопределение метода

{return randompower;}

//инкапсуляция посредством присвоения полям модификатора private

private double randompower = Math.random(), randomrisks = Math.random();

//из методов Get принято получать доступ к инкапсулированным данным

public double GetCurrentTraumaRisks()

{return randomrisks;}

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

public class NuclearBomb implements IWeapon, IExplosive

{

//усложнённый конструктор требует указание мощности

//и отдельный объект-детонатор, реализующий интерфейс

public NuclearBomb(double power, IUnsafeTechnology detonationDevice)

{

private_power = power;

detonator = detonationDevice;

}

//упрощённый конструктор принимает числовые значения

//он вызывает усложнённый конструктор

//аргумент-интерфейс инициализируется анонимной функцией

public NuclearBomb(double power, double detonationRisks)

{this(power, () -> detonationRisks);}

private double private_power;

private IUnsafeTechnology detonator;

public Boolean IsLethal()

{return true;}

public double GetPower()

{return private_power;}

public double GetCurrentTraumaRisks()

{return detonator.GetCurrentTraumaRisks();}

protected void finalize()//Финализатор

{private_power = 0;}

}

Приложение 2

Множественное наследование на Python

Статус: интерпретируется, работает (стандартный интерпретатор CPython).

from abc import ABCMeta, abstractmethod

class SmartPhone: #Абстрактный класс 1

__metaclass__ = ABCMeta

def __init__(self, number): # конструктор может наследоваться без переопределения

self.__contacts = dict()

self.__number = number #инкапсуляция того, что нельзя произвольно переназначать

GetContacts = lambda self: self.__contacts # упрощённая функция, возвращает contacts

def GetNumber(self): # классически объявленная функция, аналогичная предыдущей

return self.__number # возвращает номер

@abstractmethod # абстрактные методы помечаются специальными декораторами

def GetManufacturer(self):

pass # pass означает, что данный блок кода фактически не имеет содержимого

class ChineseSmartPhone(SmartPhone): # Абстрактный класс 2

__metaclass__ = ABCMeta

GetManufacturer = lambda self: "Designed in China. Assembled in China."

class IPhone(SmartPhone): # Реализуемый класс

GetManufacturer = lambda self: "Designed by Apple in California. Assembled in China."

class ChineseIPhone(ChineseSmartPhone, IPhone): # Наследуется китайский GetManufacturer

pass # класс использует данные своих прародителей, собственных данных у него нет


Приложение 3

Пример ООП в коде C++

Статус: компилируется, работает (GNU Compiler Collection, требуется точка входа).

#include <iostream>

#include <stdexcept>

using namespace std;

class Creature

{

public:

Creature(unsigned int age) //Конструктор

{local_age = age;}

unsigned int GetAge()

{return local_age;}

virtual bool IsAlive() = 0;//Абстрактный метод

virtual void GetDamage(unsigned char damage) = 0; //Абстрактный метод

private:

unsigned int local_age; //Сокрытие поля, изменение которого нежелательно

};

class Human: public Creature //Человек наследует от абстрактного живого существа

{

protected:

Human(string name, unsigned char age, unsigned char age_min, unsigned char age_max)

: Human(name, age) //Защищённый конструктор может быть унаследован потомками

{

if(name.size() < 1 || age < age_min || age > age_max)

throw invalid_argument("Неверный возраст"); //исключение

}

public:

Human(string name,unsigned char age)

: Creature(age)

{

if(name.size() < 1)

throw invalid_argument("Неверное имя");

local_name = name;

}

string GetName() {return local_name;}

bool IsAlive(){return hp != 0;}

void GetDamage(unsigned char damage) {IncHP(damage);}

~Human() //Деструктор

{IncHP(0xff);}

private:

string local_name;

unsigned char hp = 0xff;

friend class MedicalSupplies;

void IncHP(unsigned char inchp)

{hp = hp > 0 && hp > inchp ? hp - inchp : 0;}

};

class MedicalSupplies

{

private:

void Heal(Human h)

{

if(h.hp != 0)

h.hp = 0xff;

}

friend class Medic;

};

class Employee: public Human

{

public:

Employee(string name, unsigned char age, unsigned int pay)

: Human(name,age,18,70)

{return;}

unsigned long GetCash() {return cash;}

void Pay() {cash += paystandard;}

private:

unsigned long cash;

unsigned int paystandard;

};

class Medic: public Human

{

public:

Medic(string name, unsigned char age)

:Human(name,age,18,80)

{return;}

void GivePills(Human h)

{

MedicalSupplies m;

m.Heal(h);

}

virtual bool IsLegal() {return false;}

//Не практикующий врач не может выписывать таблетки

};

class MedicalPracticioner:public Medic,public Employee

{

public:

MedicalPracticioner(string name, unsigned char age)

:Medic(name, age),Employee(name,age,30000)

{return;}

bool IsLegal()

{return true;}//Перекрытый IsLegal

};

Приложение 4

Пример класса для проверки массива байтов на C#

Статус: компилируется, работает (.NET Framework 4.5.2, требуется точка входа).

using System;

using System.Linq;

namespace ConsoleApplication5

{

class ArrayChecker

{

public static void DeclarativeCheck(byte[] array, params byte[] searchpattern)

{

int[] i = new int[256];

foreach (byte x in array)

i[x]++;

// Декларативный LINQ-запрос, сортирующий коллекцию согласно условию

foreach (byte b in (from y in searchpattern where i[y] != 0 select y))

Print(b, i);

}

public static void FunctionalCheck(byte[] array, params byte[] searchpattern)

{

int[] i = new int[256];

Array.ForEach(array, x => i[x]++); // 2-й аргумент – анонимная функция

// LINQ-запрос в функциональном стиле

Array.ForEach(searchpattern.Where(y => i[y] != 0).ToArray(), b => Print(b, i));


}

private static void Print(byte b, int[] countData)

{ Console.WriteLine(b + " найден x" + countData[b]); }

}

}

Приложение 5

Простая иерархия классов, структур и интерфейсов в C#

Статус: компилируется, работает (.NET Framework 4.5.2, требуется точка входа).

using System;

namespace Hierarchy

{

interface IElectronicCard:IDisposable//Наследование интерфейсов

{ bool IsActive { get; } }

interface IKey

{

bool TryOpenTheDoor(string facilityName);

string Facility { get; }

}

struct Key:IKey//Реализация интерфейса структурой

{

public Key(string facilityName) //Конструктор структуры

{ facility = facilityName; }

public bool TryOpenTheDoor(string facilityName)

{ return Facility == facilityName; }

public string Facility

{ get { return facility == null || facility == "" ? "Общий доступ" : facility; } }

private string facility;

}

}

namespace Hierarchy

{

class KeyCard: IElectronicCard, IKey//Реализация 2-х интерфейсов

{

public KeyCard(string owner,string facilityName) //Конструктор класса

{

if (facilityName == null || facilityName == "")

throw new ArgumentException();

code = facilityName;

local_company = owner == null || owner == "" ? "Общий доступ" : owner;

}

public string Facility { get { return local_company; } }

public bool TryOpenTheDoor(string facilityName)

{ return IsActive && facilityName == local_company; }

public bool IsActive { get; private set; }

string code, local_company;

public void Dispose()

{

IsActive = false;//Деактивация карточки

code = null;

}

~KeyCard() //Финализатор класса

{ Dispose(); }

}

}

Приложение 6

Пример низкоуровневого обработчика массива байтов на Си

Статус: компилируется, работает (GNU Compiler Collection, требуется точка входа).

void charChecker

(

unsigned int length,

unsigned char data[length],

unsigned char pattern_length,

unsigned char pattern[pattern_length]

)

{

unsigned int result[256] = {0};

// Создание массива int для записи количества совпадений при поиске

for(register unsigned int i = 0; i < length; i++) // Цикл с регистровой переменной

result[data[i]]++; //Увеличение значения по индексу

for(register unsigned char ch = 0, index; ch <= pattern_length; index = pattern[ch++])

if(result[index] != 0)

printf("%d найдено %d раз \n", index, result[index]);

// Даже если pattern_length = 255, программа будет работать

// Переменная ch при переполнении просто превращается в 0

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

}

  1. Кадырова Г.Р. Основы алгоритмизации и программирования: учебное пособие. – Ульяновск: УлГТУ, 2014. – С. 6.

  2. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013. С. 4 – 31.

  3. Единая система программной документации: Сб. – М.: Стандартинформ, 2010. С. 22.

  4. Программирование и основы алгоритмизации. С. 4 – 31.

  5. Таненбаум Э. Архитектура компьютера. – 4-е изд. –СПб.: Питер, 2003. – С. 334.

  6. Таненбаум Э. Архитектура компьютера. С. 18.

  7. Единая система программной документации. С. 161.

  8. Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-е изд. Стандарт 3-го поколения. - СПб.: Питер, 2017. С. 157.

  9. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. – СПб.: БХВ-Петербург, 2005. С. 27 – 29.

  10. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 39

  11. ГОСТ 28397-89 (ИСО 2382-15-85). Языки программирования. Термины и определения // Информационная технология. Термины и определения: Сб. - М.: Стандартинформ, 2005. С. 229 – 236

  12. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. // «Новые информационные технологии». Тезисы докладов XVII Международной студенческой конференции-школы-семинара. – М.: МИЭМ, 2009. – С. 60.

  13. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 16.

  14. Единая система программной документации: Сб. - М.: Стандартинформ, 2010. С. 162 – 169.

  15. Таненбаум Э. Архитектура компьютера. С. 517.

  16. Орлов С. Теория и практика языков программирования. С.49.

  17. Blum R. Professional Assembly Language. - Wiley Publishing, Inc., 2005. P. 9.

  18. Таненбаум Э. Архитектура компьютера. С. 19 – 21.

  19. Орлов С. Теория и практика языков программирования. С. 41.

  20. Единая система программной документации. С. 162 – 163.

  21. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 17

  22. Орлов С. Теория и практика программирования. С. 40 – 42.

  23. Blum R. Professional Assembly Language. pp. 7 – 8.

  24. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 16.

  25. Орлов С. Теория и практика программирования. С. 40 – 42.

  26. Таненбаум Э. Архитектура компьютера. С. 50 – 52.

  27. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 18.

  28. Орлов С. Теория и практика программирования. С. 78.

  29. Орлов С. Теория и практика программирования. С. 50.

  30. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. — 4-е изд. — СПб.: Питер, 2013. — С. 37 – 43.

  31. Единая система программной документации: Сб. - М.: Стандартинформ, 2010. С. 162.

  32. Blum R. Professional Assembly Language. P. 6.

  33. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 14.

  34. Приходько О. В. Компьютерный практикум : учеб. пособие для будущих специалистов по управлению персоналом / О. В. Приходько, М. А. Токарева. - Оренбург: ГОУ ОГУ, 2008. – С. 103.

  35. Таненбаум Э. Архитектура компьютера. С. 18.

  36. Таненбаум Э. Архитектура компьютера. С. 518.

  37. Единая система программной документации. С. 162.

  38. Blum R. Professional Assembly Language. P. 10.

  39. Таненбаум Э. Архитектура компьютера. С. 551 – 552.

  40. Obfuscator-LLVM — Software Protection for the Masses. / P. Junod, J. Rinaldini, J. Wehrli, J. Michielin. - Software Protection (SPRO), 2015 IEEE/ACM 1st International Workshop on. – IEEE, 2015. –pp. 4 – 6.

  41. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 38.

  42. Blum R. Professional Assembly Language. P. 6.

  43. Приходько О. В. Компьютерный практикум. С. 103.

  44. Таненбаум Э. Архитектура компьютера. С.24.

  45. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. ACM HOPL-III, June 2007. – pp. 25 – 26.

  46. Приходько О. В. Компьютерный практикум. С. 103.

  47. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. С.16 – 19.

  48. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 15.

  49. Орлов С. Теория и практика языков программирования. С. 62.

  50. Программирование и основы алгоритмизации. С. 8.

  51. Орлов С. Теория и практика языков программирования. С. 55.

  52. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 15.

  53. Орлов С. Теория и практика программирования. С. 59.

  54. Программирование и основы алгоритмизации. С. 33.

  55. Barendregt, H. The Impact of the Lambda Calculus in Logic and Computer Science // The Bulletin of Symbolic Logic. 1997. Vol. 3. №.2.- P. 194.

  56. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. С.18.

  57. Barendregt H. The impact of the lambda calculus in logic and computer science. P. 194.

  58. Functional Programming vs. Imperative Programming (C#) // Microsoft Docs. URL: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/functional-programming-vs-imperative-programming (дата обращения: 26.01.2018).

  59. Орлов С. Теория и практика языков программирования. С. 62.

  60. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. С.18.

  61. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 28.

  62. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 542.

  63. Орлов С. Теория и практика языков программирования. С. 66.

  64. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#.

    С. 263.

  65. Cardelli L., Wegner P. On understanding types, data abstraction, and polymorphism //ACM Computing Surveys (CSUR). 1985. Vol. 17. №. 4. – pp. 471-523.

  66. Cardelli L., Wegner P. On understanding types, data abstraction, and polymorphism. pp. 475 – 479

  67. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 61.

  68. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 60.

  69. Grid℠ for Integrated Development Environment (IDE) - Winter 2017 // G2 Crowd. – Систем. требования: браузер с поддержкой JS. URL: http://www.g2crowd.com/grid_report/documents/grid-for-integrated-development-environment-ide-winter-2017 (дата обращения: 26.01.2018).

  70. Кизянов А. О., Лучанинов Д. В. Анализ программных средств, реализующих язык программирования Python // Постулат. 2016. №8. URL: http://e-postulat.ru/index.php/Postulat/article/view/177/202 (дата обращения: 26.01. 2018).

  71. Лучанинов Д.В., Ленкин А.В. Анализ сред разработки программного обеспечения на языке С++ // Современные научные исследования и инновации. 2016. № 8. URL: http://web.snauka.ru/issues/2016/08/70888 (дата обращения: 26.01.2018).

  72. Кизянов А. О., Лучанинов Д. В. Анализ программных средств, реализующих язык программирования Python.

  73. Орлов С. Теория и практика языков программирования. С. 30 – 40.

  74. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. С. 19 – 25.

  75. Свердлов С. Арифметика синтаксиса // PC Week/RE. 1998. №42-43. URL: https://www.itweek.ru/themes/detail.php?ID=49177 (дата обращения: 26.01.2018).

  76. Орлов С. Теория и практика языков программирования. С. 37 – 38.

  77. Вишнеков А.В., Иванова Е.М. Принятие решений при администрировании сложных технических проектов // Системный администратор. 2015.  №7-8 (152-153). URL: http://samag.ru/archive/article/3009 (дата обращения: 26.01.2018).

  78. Орлов С. Теория и практика языков программирования. С. 28 – 29.

  79. Кадырова Г.Р. Основы алгоритмизации и программирования: учебное пособие. С. 29 – 30.

  80. Barendregt H. The impact of the lambda calculus in logic and computer science. P.196

  81. Таненбаум Э. Архитектура компьютера. С. 23.

  82. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 18.

  83. Таненбаум Э. Архитектура компьютера. С. 50.

  84. Орлов С. Теория и практика языков программирования. С. 28.

  85. Программирование и основы алгоритмизации. С. 32.

  86. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. - P.4.

  87. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. С. 31 – 32.

  88. Орлов С. Теория и практика языков программирования. С. 57 – 59.

  89. Шилдт Г. Java. Полное руководство, 8-е изд.: Пер. с англ. — М: Вильямс, 2012. С. 39.

  90. Орлов С. Теория и практика языков программирования. С. 65 – 66.

  91. Керниган Б. У., Ритчи Д. М. Язык программирования C, 2-е изд. С. 112.

  92. Орлов С. Теория и практика языков программирования. С. 66.

  93. Лучанинов Д.В., Ленкин А.В. Анализ сред разработки программного обеспечения на языке С++.

  94. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P.3.

  95. Cardelli L., Wegner P. On understanding types, data abstraction, and polymorphism. pp. 475 – 479.

  96. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 5.

  97. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 2.

  98. Программирование и основы алгоритмизации. С. 32 – 35.

  99. Программирование и основы алгоритмизации. С. 32 – 35.

  100. Программирование и основы алгоритмизации. С. 82 – 88.

  101. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 5.

  102. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 35.

  103. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 3.

  104. Свердлов С. Арифметика синтаксиса.

  105. Программирование и основы алгоритмизации. С. 142 - 147.

  106. Орлов С. Теория и практика языков программирования. С. 477 – 484.

  107. Программирование и основы алгоритмизации. С. 130.

  108. Керниган Б. У., Ритчи Д. М. Язык программирования C, 2-е изд. С. 112.

  109. C++ Standard Library Header Files // Microsoft Developer Network. URL: https://msdn.microsoft.com/en-us/library/a7tkse1h (дата обращения: 26.01.2018).

  110. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 10.

  111. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 53.

  112. Таненбаум Э. Архитектура компьютера. С. 50 – 51.

  113. Орлов С. Теория и практика языков программирования. С. 494.

  114. Шилдт Г. Java. Полное руководство. — С. 208 – 237.

  115. Эванс Б, Вербург М. Java. Новое поколение разработки. — СПб.: Питер, 2014. С. 509 – 512.

  116. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 62.

  117. Таненбаум Э. Архитектура компьютера. С. 51.

  118. Шилдт Г. Java. Полное руководство. С. 43.

  119. Таненбаум Э. Архитектура компьютера. С. 51.

  120. Свердлов С. Арифметика синтаксиса.

  121. Шилдт Г. Java. Полное руководство. — С. 161 – 162.

  122. Overview (Java SE 9 & JDK 9). // Oracle Help Center. URL: https://docs.oracle.com/javase/9/docs/api/overview-summary.html (дата обращения: 26.01.2018).

  123. Package Index // Android Developers. URL: https://developer.android.com/reference/packages.html (дата обращения: 26.01.2018).

  124. Таненбаум Э. Архитектура компьютера. С. 51.

  125. Diakopoulos N., Cass S. Interactive: IEEE Spectrum Top 2017 // IEEE Spectrum. URL: https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017 (дата обращения: 26.01.2018).

  126. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 19.

  127. The Python Tutorial // Python 3.6.4 documentation. URL: https://docs.python.org/3/tutorial/index.html (дата обращения: 26.01.2018).

  128. The Python Tutorial // Python 3.6.4 documentation. URL: https://docs.python.org/3/tutorial/index.html (дата обращения: 26.01.2018).

  129. Кизянов А. О., Лучанинов Д. В. Анализ программных средств, реализующих язык программирования Python.

  130. Буйначев С.К. Основы программирования на языке Python : учебное пособие. / С. К. Буйначев, Н. Ю. Боклаг. – Екатеринбург : Изд-во Урал. ун-та, 2014. – С. 45 – 49.

  131. The Python Tutorial // Python 3.6.4 documentation. URL: https://docs.python.org/3/tutorial/index.html (дата обращения: 26.01.2018).

  132. Буйначев С.К. Основы программирования на языке Python. С. 5 – 6.

  133. The Python Language Reference // Python 3.6.4 documentation. URL: https://docs.python.org/3/reference/index.html (дата обращения: 26.01.2018).

  134. Эванс Б, Вербург М. Java. Новое поколение разработки. С. 271 – 272.

  135. The Python Standard Library // Python 3.6.4 documentation. URL: https://docs.python.org/3/library/index.html (дата обращения: 26.01.2018).

  136. Буйначев С.К. Основы программирования на языке Python. С. 31 – 40.

  137. Кизянов А. О., Лучанинов Д. В. Анализ программных средств, реализующих язык программирования Python.

  138. Бизли Д. Python. Подробный справочник. – Пер. с англ. – СПб.: Символ-Плюс, 2010. С. 769.

  139. Эванс Б, Вербург М. Java. Новое поколение разработки. С. 271.

  140. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 21

  141. About Mono // Mono Project. URL: http://www.mono-project.com/docs/about-mono/ (дата обращения: 26.01.2018).

  142. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 28 – 29.

  143. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 34.

  144. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 45.

  145. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 216 – 226.

  146. Орлов С. Теория и практика языков программирования. С. 496 – 497.

  147. Подбельский В. В. Язык C#. Базовый курс: учеб. пособие. - 2-е изд. перераб. и доп. – М.: Финансы и статистика, 2013. – С. 267 – 291.

  148. Подбельский В. В. Язык C#. Базовый курс. С. 175.

  149. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 198.

  150. Подбельский В. В. Язык C#. Базовый курс. С. 255 – 266.

  151. Functional Programming vs. Imperative Programming (C#) // Microsoft Docs. URL: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/functional-programming-vs-imperative-programming (дата обращения: 26.01.2018).

  152. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 434 – 463.

  153. Подбельский В. В. Язык C#. Базовый курс. С. 341 – 359.

  154. Functional Programming vs. Imperative Programming (C#) // Microsoft Docs. URL: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/functional-programming-vs-imperative-programming (дата обращения: 26.01.2018).

  155. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 775 – 779.

  156. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 64.

  157. Подбельский В. В. Язык C#. Базовый курс. С. 212 – 214.

  158. Fundamentals of Garbage Collection // Microsoft Docs. URL: https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#the_managed_heap (дата обращения: 26.01.2018).

  159. .NET Framework Class Library // Microsoft Developer Network. URL: https://msdn.microsoft.com/en-us/library/mt472912.aspx (дата обращения: 26.01.2018).

  160. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 580.

  161. About Mono // Mono Project. URL: http://www.mono-project.com/docs/about-mono/ (дата обращения: 26.01.2018).

  162. .NET Framework Class Library // Microsoft Developer Network. URL: https://msdn.microsoft.com/en-us/library/mt472912.aspx (дата обращения: 26.01.2018).

  163. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 775 – 779.

  164. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 19.

  165. Орлов С. Теория и практика языков программирования. С. 29.

  166. Таненбаум Э. Архитектура компьютера. С. 23.

  167. Таненбаум Э. Архитектура компьютера. С. 480 – 489.

  168. Вишнеков А.В., Иванова Е.М. Принятие решений при администрировании сложных технических проектов.

  169. Орлов С. Теория и практика языков программирования. С. 39.

  170. Кадырова Г.Р. Основы алгоритмизации и программирования. С. 20.

  171. Таненбаум Э. Архитектура компьютера. С. 50.

  172. Stroustrup B. Evolving a language in and for the real world: C++ 1991-2006. P. 2.

  173. Лучанинов Д.В., Ленкин А.В. Анализ сред разработки программного обеспечения на языке С++.

  174. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 64.

  175. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 58 – 92.

  176. IntegraStudio User Manual // SOFT-ERG website. URL: http://www.softerg.com/integra/docs/pages/is_intro.htm (дата обращения: 26.01.2018).

  177. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 58 – 92.

  178. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 64.

  179. Рихтер Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. С. 31.

  180. Лучанинов Д.В., Ленкин А.В. Анализ сред разработки программного обеспечения на языке С++.

  181. Интегрированная среда разработки Visual Studio // Microsoft Developer Network. URL: https://msdn.microsoft.com/library/dn762121 (дата обращения: 26.01.2018).

  182. Configuring NetBeans IDE 8.0 for C/C++/Fortran // NetBeans Docs & Support. URL: https://netbeans.org/community/releases/80/cpp-setup-instructions.html (дата обращения: 26.01.2018).

  183. Configuring NetBeans IDE 8.0 for C/C++/Fortran // NetBeans Docs & Support. URL: https://netbeans.org/community/releases/80/cpp-setup-instructions.html (дата обращения: 26.01.2018).

  184. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 64 – 67.

  185. Лучанинов Д.В., Ленкин А.В. Анализ сред разработки программного обеспечения на языке С++.

  186. Любимцев Р.Г. Среда Eclipse для разработки программ на языке Java. / Под науч. рук. к.п.н. И.А. Буяковской // Информационно-коммуникационные технологии в педагогическом образовании. 2014. 02 (30). URL: http://infed.ru/articles/155/ (дата обращения: 26.01.2018).

  187. Кизянов А. О., Лучанинов Д. В. Анализ программных средств, реализующих язык программирования Python.

  188. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 65.

  189. Любимцев Р.Г. Среда Eclipse для разработки программ на языке Java.

  190. Лучанинов Д.В., Ленкин А.В. Анализ сред разработки программного обеспечения на языке С++.

  191. Любимцев Р.Г. Среда Eclipse для разработки программ на языке Java.

  192. Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. С. 65.

  193. Blum R. Professional Assembly Language. P. 29.