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

Классификация языков высокого уровня

Содержание:

ВВЕДЕНИЕ

Причиной выбора темы данной курсовой работы «Классификация языков программирования высокого уровня» по дисциплине «Основы алгоритмизации и программирования» послужила её актуальность.

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

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

- рассмотреть общие характеристики и уровни языков программирования;

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

- рассмотреть современные языки.

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

-собрать информацию по теме курсовой работы;

-познакомиться с общим понятием алгоритма, языка программирования;

-познакомиться с языками программирования высокого уровня;

-понять как языки высокого уровня используются и на какие группы делятся;

-познакомиться с современными языками;

- сделать вывод.

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

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

1.1 Классификация языков программирования и история их формирования

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

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

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

При записи алгоритма в виде блок-схемы, на псевдокоде или в словесной форме позволителен определенный произвол при представлении команд. Такая запись настолько точна, что дает нам понять суть дела и выполнить алгоритм. Впрочем, на деле исполнителями алгоритмов являются компьютеры. В связи с этим алгоритм должен быть записан на «понятном» для компьютера языке. Здесь первоочередной необходимостью является точность записи команд, не оставляющая места для спонтанного истолкования их исполнителем. Исходя из этого, язык для алгоритмической записи должен быть формализован. Этот язык и есть язык программирования, а записанный на данном языке алгоритм— компьютерная программа.[[3]]

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

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

В связи с этим выделяют:

-машинные;

-машинно-ориентированные (ассемблеры);

-машинно-независимые (языки высокого уровня).[[5]]

Машинный язык и языки программирования относят к алгоритмическим языкам.[[6]]

Ранним действительным языком программирования считается язык Short Code (Короткий код) созданный в 1949г. под руководством Мочли. С его помощью можно было записывать уравнения не в двоичном коде, а двухсимвольными комбинациями.[[7]]

В самом начале второй половины двадцатого века, когда появились компьютеры на электронных лампах, началось масштабное развитие языков программирования. Запись производилась напрямую в виде машинных команд, что и стало началом программирования. Поскольку стоимость компьютеров сильно превосходила стоимость разработки любой программы, требовался высокоэффективный код. Для того, чтобы упростить процесс кодирование был создан машинно-ориентированный язык Ассемблера. Он позволял в символическом виде записывать машинные команды. Данный язык был зависим от каждого отдельного компьютера, точнее от системы команд. Но был достаточно удобен для программирования небольших задач, где требовалась максимальная скорость выполнения. Гораздо более труднее обстояло дело с крупными проектами. Главной проблемой при разработке программы на Ассемблере была привязка к архитектуре определенного компьютера. Это полностью исключало перенос данной программы на другие машины. По мере усовершенствования компьютера, такие программы нуждались в переписывании заново.[[8]]

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

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

Ясен тот факт, что человеку трудно писать и читать алгоритмы на языке машины.[[10]] Для человека ближе и понятнее языки способные имитировать естественные. Именно такими являются языки программирования высокого уровня. Эти языки очень удобны для программистов, ведь за счет использования в них некоторых слов разговорного языка и распространенных математических символов, разрабатывать программы на них значительно проще.

К языкам высокого уровня относятся:

- Фортран,

- Кобол,

- Бейсик,

- Алгол,

-Си,

-Паскаль,

-Пролог и т.д.[[11]]

Поскольку в данных языках нет привязки к особенностям конкретных компьютерных архитектур, программы, которые создаются на уровне исходных текстов, легко переносимы на другие платформы, для которых создан транслятор. Разрабатывать программы на языках высокого уровня благодаря понятным и мощным командам не только гораздо проще, но и ошибок при их создании допускается в разы меньше. [[12]]

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

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

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

Лишь Алгол-68 и APL можно назвать языками сверхвысокого уровня. Поднятие их уровня произошло посредством введения сверхмощных операций и операторов.

Существует так же классификация, которая делит языки на вычислительные и языки символьной обработки. К вычислительному типу можно отнести языки: Фортран, Алгол, Паскаль, Бейсик, Си. А к языкам символьной обработки –Снобол, Лисп, Пролог и др.

Кроме того, можно выделить еще два основных направления развития языков программирования в современной информатике: процедурное и непроцедурное.[[15]]

Процедурные или алгоритмические языки необходимы для создания программ, которые представляют собой систему предписаний для решения конкретной задачи (выполнение команд определяется их очередностью, командами перехода, цикла или обращениями к процедурам).Здесь компьютер лишь механически выполняет эти предписания.[[16]]

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

Процедурные языки также можно разделить на структурные и операционные. В структурных языках одним оператором могут быть записаны целые алгоритмические структуры: циклы, ветвления и т.д.. В операционных же языках для этого необходимо использовать несколько операций. Достаточно широкую популярность получили структурные языки как: Ада, Паскаль, ПЛ\1, Си.

Среди операционных наиболее известны: Бейсик, Фокал, Фортран.[[17]]

В начале 70-х годов 20 века сформировалось декларативное (непроцедурное) программирование, а в 80-е годы с появлением японского проекта создания ЭВМ пятого поколения ( цель которого, заключалась в создании основы для проектирования интеллектуальных машин), началось его более стремительное развитие. Логические и функциональные языки относят к непроцедурному программированию.[[18]]

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

Программа в логических языках совсем не описывает действий, лишь задает данные и соотношения меж ними. Вопросы системе можно задавать только после этого. Обрабатывая известные и заданные в программе данные, машина находит ответ на поставленный вопрос. Самим языком не явно задается порядок обработки, который в программе не описывается. Язык классического логического программирования - Пролог. Совсем не требует алгоритмического мышления построение логической программы, данная программа описывает статические отношения объектов, а динамика скрыта от программиста и находится в механизме перебора.[[19]]

Объектно-ориентированный язык создает фон в виде большого числа независимых объектов. Здесь любой объект ведёт себя сродни отдельному компьютеру, который не вникая во внутренние механизмы их работы, можно использовать для решения задач.[[20]] Среди профессионалов наиболее популярны, такие языки объектного программирования как Си ++. Среды типа Delphi и Visual Basic предпочитает использовать более широкий круг программистов.[[21]]

Помимо прочего языки могут делиться на компилируемые и интерпретированные.[[22]]

1.2 Трансляторы

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

Выполняя программу на языке высокого уровня, первым делом ее нужно перевести на язык машинных команд. Для этого была создана соответствующая программа – транслятор или компилятор.[[23]]

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

Ассемблер - это транслятор, у которого отправным языком является символическое представление машинного кода, а объектным языком является некая форма машинного языка отдельного реального компьютера.

Компилятор — транслятор, для которого начальным служит язык высокого уровня, а его объектный язык близок к машинному языку реального компьютера. Им может быть язык ассемблера или другая версия машинного языка.[[24]]

Компиляция программы состоит из двух действий: анализа или выявление точности записи первоначальной программы в соответствии с принципами построения языковых конструкций входного языка, и синтеза – порождения равноценной программы в машинных кодах.[[25]] Для трансляции программы компилятор производит анализ текста. При наличии ошибок объектный код не строится. Если программа состоит из нескольких частей или использует библиотеки, то её объектный код не содержит всех необходимых команд. Компоновщик связывает все составные части программы в единое целое и создает выполняемый файл.[[26]]

Компьютером выполняется уже оттранслированная программа .Также можно перевести программу на промежуточный язык, максимально приближенный к языку машинных команд, который был бы независим от архитектуры конкретного компьютера. В дальнейшем программа на промежуточном языке может быть исполнена специальной программой - интерпретатором. Существует также вариант  " компиляции на лету", когда фрагмент программы, который должен быть исполнен непосредственно перед выполнением переводится с промежуточного языка на язык машинных команд. [[27]]

Потеря информации о программе это главный недостаток трансляции. Очень сложно порой найти ошибку, так как трудно определить какой из операторов программы выполнялся на начальном языке, и что за объекты данных использовались в нем. Кроме того, в отличии от команды машинного языка, оператор на языке высокого уровня содержит гораздо больше информации, поэтому исполняемая форма программы занимает большой объем места в памяти.[[28]]

Интерпретация предполагает пооператорную трансляцию и последующее исполнение оттранслированного оператора начальной программы. Исходя из этого, можно отметить два существенных недочета метода интерпретации. Во-первых, данная программа в течение всего процесса выполнения первоначальной программы должна находиться в памяти ЭВМ, тем самым занимая достаточный объем памяти. Во-вторых, существенно снижается производительность работы программы, из-за процесса трансляции одного и того же оператора, который повторяется столько раз, сколько раз должна быть исполнена эта команда в программе.[[29]]

Метод, когда посредством программы (интерпретатора), выполняемой на аппаратном компьютере, создается виртуальный компьютер с машинным языком высокого уровня, называется программной имитацией. Интерпретатор декодирует и исполняет каждый оператор программы на языке высокого уровня в определенной очередности и производит вывод результирующих данных, определяемый этой программой.[[30]]

Так как трансляторы-интерпретаторы удобны при разработке и отладке исходных программ, несмотря на свои недостатки, они получили достаточное распространение.[[31]]

1.3 Языки программирования и сеть Интернет

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

Характерные особенностями состоят в том, что они являются интерпретируемыми, программы- в начальных текстах, а интерпретаторы для них распространяются бесплатно. Эти языки называют скрипт-языками.[[32]]

Основное предназначение языков веб – программирования эта работа с веб - технологиями. Условно их можно разделить на серверные и клиентские.

Программы на клиентских языках обрабатываются на языке пользователя, зачастую выполняются браузером. В этом и заключается главная проблема клиентских языков – результат выполнения программы (скрипта) полностью зависит от браузера пользователя. Говоря иначе, если пользователь запретил выполнять клиентские программы, они исполняться не будут, как бы того не желал программист. Помимо этого, бывает, что в разных браузерах или в разных версиях одного и того же браузера, может выполняться по-разному один и тот же скрипт. Существуют и положительные стороны, если программист возлагает большие надежды на серверные программы, то может упростить их работу, снизив нагрузку на сервер за счет программ, которые исполняются на стороне клиента, так как перезагрузки страницы они требуют не всегда.

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

-HTML;

-CSS;

-JavaScript;

VBScript;

-ActionScript;

-Java.[[33]]

Браузер – (он же веб-обозреватель) специальная программа, созданная для просмотра веб-сайтов.[[34]]

Когда пользователь запрашивает какую-либо страницу (переходит на эту страницу по ссылке или вводит адрес в адресной строке своего браузера), то она сначала обрабатывается на сервере, т.е. выполняются все программы, связанные с этой страницей, и только потом она возвращается к посетителю по сети в виде файла. Данный файл может иметь одно их перечисленных расширений: HTML, PHP, ASP, ASPX, Perl, SSI, XML, DHTML, XHTML.

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

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

-PHP;

-Perl;

-Python;

-Ruby;

- любой .NET язык программирования (технология ASP.NET);

-Java;

-Groovy.[[35]]

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

2 Языки программирования высокого уровня

2.1 Основные компоненты языка

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

Под наглядностью понимается по возможности использование в языке уже существующих символов, которые понятны и хорошо известны программисту и любому обывателю. Что же касается единства, то тут речь идёт об использовании родственных или одних и тех же понятий в различных частях алгоритма. По возможности число таких символов должно быть минимальным. Ещё одним требованием к языку является его гибкость, или возможность сравнительно несложного и удобного описания наиболее часто используемых приёмов математических вычислений при помощи существующего в языке доступного набора изобразительных средств. Модульность это средство описания сложных алгоритмов в виде совокупности простых модулей, составленных отдельно и использованных в разнообразных сложных алгоритмах. Под однозначностью понимается недвусмысленность записи любого алгоритма. Её отсутствие при решении задач может привести к неправильным ответам.

Лексическая структура языка программирования – это набор элементарных правил, определяющих, как пишутся программы на этом языке. Данный набор задает вид имен переменных, символы, используемые для комментариев, и правила отделения одной инструкции от другой.[[36]]

Под элементами языка понимают его основополагающие конструкции, которые используются для написания программ.[[37]] Основными составляющими любого языка являются алфавит, семантика и синтаксис.[[38]]

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

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

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

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

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

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

Так, с помощью оператора присваивания можно задать начальные условия задачи. Условный оператор (оператор ветвления) позволяет выбрать то или иное действие, в зависимости от заданных условий или начальных значений и является аналогом конструкции русского языка «если…,то…,иначе». Циклические операторы позволяют для каждого действия или набора действий задать, сколько раз их необходимо выполнить, и избавляют программистов от многократной записи одних и тех же действий для разных значений.

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

Модули могут включать в себя наборы операторов, отдельные функции, классы.[[42]]

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

Язык FORTRAN (FORmula TRANslating system – система трансляции формул); старейший язык, который используется в решении задач математической ориентации. Классический язык для программирования на ЭВМ инженерных и математических задач.[[43]]

Язык был разработан для фирмы IBM под руководством Джона Бэкуса в

1954 году. Значение этого события огромно. Фортран первый язык программирования высокого уровня. Наконец-то программист стал независим от особенностей машинной архитектуры.[[44]] Хотя уже существовали разработки языков, которые выполняли преобразование арифметических выражений в машинный код, создание языка Фортран, предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало отправной точкой эры языков программирования высокого уровня.

На язык Фортран возлагались огромные надежды по созданию высокоэффективного кода. Именно по этой причине большое число конструкций языка изначально разрабатывались с учетом архитектуры IBM407. Успехом разработки данного языка явилось то, что производители других вычислительных систем стали создавать свои версии трансляторов. С целью создать некоторую унификацию, язык FORTRAN IV, который был разработан в 1966 году, стал первым стандартом, именуемым FORTRAN 66.[[45]]

Язык Фортран и сегодня используется для научных вычислений.[[46]] Он имеет изъяны в виде отсутствия многих знакомых языковых конструкций и атрибутов, компилятор практически не проверяет синтаксически правильную программу с точки зрения семантической коррекции (соответствие типов и пр.). В нем не поддерживаются современные способы структурирования кода и данных. Это понимали и сами разработчики. Как признавался позже и сам Бэкус, ими разрабатывался скорее компилятор, нежели язык.

Внедрение Фортрана подверглось еще более яростным критическим нападкам, чем появление ассемблера. Программисты боялись, снижения эффективности программ из-за использования промежуточного звена - компилятора. Действительно, уважающий себя программист, при решении какой-либо небольшой задачи самостоятельно напишет код, который будет работать быстрее, чем код, полученный в результате компиляции. И только через некоторое время пришло понимание того, что без применения языков высокого уровня реализация больших проектов невозможна.[[47]] Вычислительные машины становились мощнее, и с тем падением эффективности, которое раньше считалось опасным, теперь стало возможно смириться. Преимущества языков высокого уровня со временем стали настолько очевидными, что подтолкнули разработчиков к созданию еще более совершенных языков. [[48]]

Альтернативой языку Фортран, который был ориентирован на архитектуру IBM, в конце 50- х годов, под руководством Питера Наура был создан язык ALGOL (ALGOrithmic Language). Главной целью, которую преследовали разработчики, была независимость от конкретной архитектуры вычислительной системы. Помимо этого, они хотели создать язык, удобный для описания алгоритмов и использующий систему обозначений, родственную той, что принята в математике.

Язык PL/I, первые версии которого появились в начале 60-х годов, вначале был ориентирован на IBM 360, расширяя возможности языка Фортран некоторыми средствами COBOL, который был разработан в эти же годы. Невзирая на определенную популярность языка PL/I среди программистов, работавших на компьютерах IBM и машинах серии ЕС, на сегодняшний день он представляет чисто теоретический интерес.

Язык Simula-67, применяющий концепцию пользовательских типов данных, был разработан в конце 60-х годов под началом Найарда и Дала. Это первый язык, который применял понятие классов.[[49]]

Язык BASIC (Beginner's All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих); несмотря на множество недостатков и изобилие плохо взаимодействующих между собой 20 версий –остается самым популярным по числу пользователей. Он широко применяется при написании простых программ.[[50]] BASIC язык программирования высокого уровня, который был разработан в 1963-1964 годах в Дартмутском колледже Томасом Куртом и Джоном Кемени. Изначально использовался как язык для обучения программированию. Он отличается своей простотой, ему легко обучаются начинающие программисты. Во многом это происходит благодаря наличию упрощенных конструкций языка Фортран и встроенных математических функций, алгоритмов и операторов. Существует множество версий Бейсика, которые не вполне совмещаются друг с другом. Некоторые Бейсики включают средства обработки данных и наборов данных.

Многие версии Бейсика используют интерпретатор, который преобразует его компоненты в машинный код, это дает возможность запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика используют для этой цели трансляторы. На IBM PC широко применяются Quick Basic фирмы Microsoft, Turbo Basik фирмы Borland и Power Basic (модернизированная версия Turbo Basic, распространяемая фирмой Spectra Publishing). В начале 1999 года фирма Microsoft выпустила версию языка Visual Basic 6.0 (VB6.0), которая предназначена для создания многокомпонентных программных приложений для систем уровня предприятий.[[51]]

В 1968-1971 годах Никлаусом Виртом в Цюрихском Институте Информатики (Швейцария) разработан язык Pascal.[[52]] Паскаль – процедурно-ориентированный язык. Свое название язык получил в честь французского математика 17 века Блеза Паскаля.[[53]] Цель разработки Паскаля заключалась в том, чтобы создать инструмент для обучения программированию как систематической дисциплине. Последующие доработки сделали язык Паскаль хорошим универсальным языком, который широко используется, в том числе и для написания объемных и сложных программ. Помимо того, что язык Паскаль достаточно простой в использовании ,в нем обнаружилась эффективность при применении и надежность программирования.

Паскаль ориентирован на машину фон-неймановсого типа; такой язык называют императивным (imperative –содержащий указания на выполнение некоторого действия).[[54]]

Существует несколько версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal) и систем программирования для разных типов компьютеров.[[55]]

Систему Турбо-Паскаль разработал Филип Кан. Суть идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо-Паскаля заполнили собой практически все образовательные учреждения, частные фирмы и программистские центры. На базе языка Паскаль было создано несколько еще более мощных языков (Модула, Ада, Дельфи).[[56]]

В настоящее время используются в основном системы программирования Free Pascal и Pascal ABC, а также последняя версия Pascal ABC.NET, сочетающая простоту языка Паскаль и огромные возможности платформы .NET.[[57]]

По инициативе Министерства обороны США был создан языка высокого уровня, получивший название Ada – в честь Огасты Ады Лавлейс, программистки и дочери лорда Байрона. В мае 1979 г. он победил в конкурсе по разработке универсального языка, который проводился Пентагоном с 1975 году.

С определения требований и выработки спецификаций началось создание языка. Над этим проектом работали четыре независимые группы( во главе с Жаном Ихбиа), но все они как основу использовали язык Pascal. В начале 80-х годов был создан первый промышленный компилятор языка Ada.[[58]]

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

Дельфи (Delphi) язык объектно-ориентированного «визуального» программирования, на сегодняшний день весьма популярен. Был создан на базе языка Паскаль специалистами фирмы Borland язык Delphi, обладая мощностью и гибкостью языков Си и Си++, превосходящий их по простоте и удобству интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.

Основные операторы в языках Дельфи и Паскаль одинаковы. Но Дельфи обладает средствами работы с разнообразными графическими объектами, а также для обработки сложных структур данных. Это обуславливает его популярность при разработке различных Windows - приложений.[[60]]

В 1972 году Деннисом Ритчи в ходе разработки операционной системы (OC) Unix был создан язык Си. Практически вся ОС написана на языке Си, потому она не зависит от конкретного компьютера.[[61]] Прообразом языка Си стал язык Би, который был разработан Кеном Томпсоном.[[62]] Быстрому распространению этого языка способствовали большие выразительные способности и легкость расширения. Компиляторы для Си на данный момент доступны практически для всех ОС и платформ.[[63]]

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

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

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

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

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

Язык Си вполне структурирован, для поддержания хорошего стиля программирования, не создает помех в виде ограничений. [[64]]

Си разработан не теоретиками, а практическими программистами, которые при этом обладали высокой математической культурой.[[65]]

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

В отличии от других языков высокого уровня , таких как Ада, Алгол и др., которые вводили в эксплуатацию только после соответствующих стандартов на них, Си не претендовал на общественное использование, а был создан как рабочий инструмент эффективного кодирования . Спецификация языка была определена в книге Кернигана Б. и Ритчи Д. Она же оставалась неформальным стандартом для языка Си вплоть до 1989года, до того как был принят стандарт ANSI. На сегодняшний день существует еще ISO-стандарт на этот язык.[[67]]

Большинство программ сегодня пишется на языках Си и C++.[[68]] Множество фирм, которые производят программное обеспечение, чаще и чаще обращаются к языку Си как к языку наиболее удобному для реализации своих проектов, поскольку давно уже не секрет, что Си позволяет получить компактные и эффективные программы. Кроме того, эти программы можно легко модифицировать и адаптировать к новым моделям компьютеров! Такие языки программирования как С++, Java, C#, UML и т.д. имеют семантику Си.[[69]]

Си это язык компилируемого типа и основным его достоинством является простота и отсутствие псевдонаучных решений (таких, как вложенность блоков программ друг в друга: в Си функция не может содержать внутри себя другую функцию, а переменные четко разделяются на глобальные и локальные - не так, как в Алголе, где локальные переменные подпрограммы являются глобальными для всех вложенных в нее подпрограмм). Очень просто и доступно описан механизм передачи параметров в функцию (только по значению). Программист, который работает над созданием программ на языке Си, всегда ясно видит наперед, как данная программа будет выполнена. Программы на Си эффективны и удобны для отладки потому, что понятие указателя, статические и автоматические (стековые) переменные языка Си максимально близко отражают устройство любого современного ЭВМ.[[70]]

В Си есть черты не только языка высокого уровня, но и черты машинно-ориентированного языка, что дает программисту доступ ко всем машинным ресурсам, в отличие от таких языков, как Бейсик и Паскаль.[[71]]

С++ язык программирования высокого уровня, который был создан Бьярном Страустрапом на основе языка Си. Этот язык, по сравнению с Си, обладает набором качеств, делающих его более совершенным языком. Но важнее то, что он обеспечивает возможность объектно-ориентированного программирования. Объектно-ориентированное программирование значительно увеличивает производительность разработчиков по сравнению с традиционными методами. Объектно-ориентированные программы легче корректировать, модифицировать и понимать. С++ язык предоставляющий возможность программировать в стиле Си, в объектно-ориентированном стиле и в обоих стилях сразу, что делает его гибридным языком.[[72]]

В 1990-х годах С++ оказался одним из наиболее широко применяемых языков программирования общего назначения. Создавая язык Си++ разработчики стремились сохранить совместимость с языком Си. Большинство программ на Си смогут исправно работать с компилятором Си++. Си++ имеет синтаксис, основанный на синтаксисе Си. [[73]]

В наши дни подавляющая часть программ пишется на языках Си и C++. Интерфейс любой операционной системы (так называемый API - Application Program Interface), т.е. набор системных вызовов, предназначенных для разработчиков прикладных программ, как правило, представляет собой набор функций на языке Си. Наконец, современные объектно-ориентированные языки также основаны на языке Си. Это язык C++, занимающий промежуточное положение между традиционными и объектно-ориентированными языками, а также объектно-ориентированные языки Java и C#.[[74]]

Ява платформенно-независимый язык объектно-ориентированного программирования, наиболее подходящ для создания интерактивных веб-страниц. Он был создан на основе Си++ компанией Sun в начале 90-х годов. Он был направлен на упрощение разработки приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.[[75]]

С# (си шарп) – разработан группой инженеров под руководством Андерса Хейлсберга в компании Microsoft в 1998-2001годах, как основной язык разработки приложений для платформы Microsoft.NET.

Компилятор в С# входит в стандартную установку самой .NET, благодаря чему программы на нем могут создаваться и компилироваться даже без инструментальных средств, вроде Visual Studio.[[76]]

С# принадлежит к семье языков с С-подобным синтаксисом. Его синтаксис при этом наиболее близок к С++ и Java.

Перед авторами С# стояла задача создать язык , который бы сочетал выразительность и простоту современных объективно-ориентированных языков (таких, как Java) с мощностью и богатством возможностей С++.

Основываясь на практике использования языков C++, Модула, Java, Delphi, и Smalltalk –C# исключает те модели, которые при разработке программных систем зарекомендовали себя как проблематичные.[[77]]

Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе, операторов явного и неявного типа), делегаты, атрибуты, события, свойства, обобщенные типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. Переняв многое от своих предшественников – языков C++, Java, Delphi, Модула и Smalltalk – С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем. Так, С# не поддерживает множественное наследование классов (в отличии от С++).[[78]]

Проект С# взял свое начало в декабре 1998 года под кодовым названием COOL (C-style Object Oriented Language). Версия 1.0 появилась вместе с платформой .NET в июне 2000 года, тогда же появилась первая общедоступная бета-версия. С# 1.0 окончательно вышел Microsoft Visual Studio.NET в феврале 2002 года. В дальнейшем язык развивался, появились новые версии: С# 2.0 – 2005 год, С# 3.0 – 2008 год, С# 4.0 - 2010 год, С# 5.0 – 2012 год , С# 6.0 – 2015 год .[[79]]

Оберон это язык общего назначения, который был создан автором Pascal и Modula-2 Никлаусом Виртом (Niklaus Wirth) и его коллегами из Швейцарского федерального технического института г. Цюрих (ETH Zurich) в ходе разработки одноименной операционной системы для однопользовательской рабочей станции Ceres. Языку и операционной системе присвоено имя одного из спутников планеты Уран – Оберона.[[80]] Являясь наследником таких языков как Algol 60 (1960), Pascal (1970) и Modula (1979), Oberon синтезировал более четверти века исследований Н.Вирта по методологии и языкам программирования. Ему и его ученикам удалось достичь точного синтеза «старых» достижений структурного и модульного программирования с «новыми» объектными методами. Вот, как сам Вирт отзывался о своем «детище»: «Он (Оberon) включает в себя средства, необходимые для объектно-ориентированного программирования, сохраняя стиль Паскаля, и является результатом моего стремления к простоте без потери выразительности. В этом должна состоять сущность языка, равно пригодного как для учебной аудитории, так и для профессиональной деятельности. » И не удивительно, что в качестве эпиграфа к сообщению о языке Oberon Н. Вирт выбрал высказывание А.Эйнштейна: «Сделай так просто, как возможно, но не проще того». Наращивание мощи языка без его усложнения – 23 принцип, которому неуклонно следует Н. Вирт. В 1992 году в результате сотрудничества Н.Вирта с Ханспетером Мёссенбёком (Hanspeter Mössenböck) в язык добавился ряд новых средств. Эта версия получила название Оberon-2. Оберон-2 представляет собой почти правильное расширение Оберона и фактически является стандартом языка, поддерживаемого большинством современных Оберон-систем.[[81]]

В конце 1950-х годов Джон Маккарти разработал язык Лисп, который стал первым функциональным языком программирования и многие годы оставался единственным таковым.[[82]] Лисп все еще используется, после многих лет эволюции он удовлетворяет нынешним запросам, которые заставляют разработчиков программ взваливать как можно большую ношу на компилятор, облегчив тем самым свой труд. Нужда в этом возникла из-за все более возрастающей сложности программного обеспечения.[[83]]

Лисп направлен на структуру данных в форме списка и позволяет организовать эффективную обработку немалых объемов текстовой информации.[[84]]

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

Существует и активно используется свыше трехсот диалектов Лиспа и родственных ему языков: Interlisp, Clisp, muLisp, Scheme, Cmucl, ML, Logo, Hope, Haskell, Sisal, Miranda и др.[[85]]

В 1971 году в Марсельском университете был разработан Пролог. Однако лишь к началу 80-х годов он стал завоевывать популярность, когда благодаря усилиям математиков был обоснован его логический базис, а также в силу того, что в проекте японских разработчиков вычислительных систем 5 поколения Пролог был выбран в качестве основного для машины вывода. В настоящее время язык Пролог по праву занял свою нишу.[[86]]

Пролог (PROgramming in LOGic – логическое программирование). Его основное назначение заключается в разработке интеллектуальных систем и программ. Пролог – язык, который был создан специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В Прологе реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода. Если предположение не подтвердится, то будет выполнен возврат и выдвинется новое предположение. В его основу положена математическая модель теории исчисления предикатов.[[87]]

На основании выше изложенного можно сделать вывод, что все алгоритмические языки основаны на алфавите, синтаксисе и семантике. Большинство языков используемых нами сейчас являются усовершенствованными языками 20 века. Язык Фортран дал начало развития эры языков программирования высокого уровня. Подавляющее большинство программ в наше время пишется на языках Си и Си++, поэтому любому специалисту в области программирования необходимо освоить эти языки.

ЗАКЛЮЧЕНИЕ

Создание языков программирования высокого уровня позволило человеку общаться с машиной на более понятном языке. Процесс создания программ значительно упрощается, посредством независимости их от определенной архитектуры, что позволяет взаимодействовать с компьютером всё более и более продуктивно. Язык Фортран стал основополагающим языком в становлении языков программирования высокого уровня. Отрасль создания языков программирования высокого уровня снова выходит на новый виток своего развития, ведь она, важнейшая составляющая современной жизни, не имеет рамок в своём совершенствовании. Она - не конечный результат, а своего рода убегающий вперед горизонт, увлекающий и побуждающий разработчиков и специалистов этой области добиваться новых, под час даже непредугаданных результатов. И кто знает, может быть в ближайшем будущем, мы сможем управлять компьютером посредством мысли.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ:

1.Белов П.М. Основы алгоритмизации в информационных системах:

Учебн. Пособие.- Спб.: СЗТУ, 2003. – 85с. Режим доступа:

http://www.ict.edu.ru/ft/005406/nwpi225.pdf

2.Введение в программирование :учебное пособие /Т.И.Волкова.Москва.Берлин:Директ-Медиа,2018.с.138

3.Гвоздева В.А. Информатика. Часть 1. Курс лекций. М.,Альтаир- МГАВТ,2009.-с.131

4.Гвоздева В.А.,Володин А.Б. Интеллектуальные технологии и системы на водном транспорте Альтаир-МГАВТ ,2016.с.294

5.Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.48

6.Информатика: учебно-практическое пособие/ Г.Р.Кадырова; Ульян.гос.техн.ун-т- 2-е изд.,доп.и перераб.- Ульяновск: УлГТУ,2013.-с.228

7.Макаров В.Л.Программирование и основы алгоритмизации: Учебное пособие. –СПб.: СЗТУ,2003.- с.

8.Математика и информатика в вопросах и ответах [Электронный ресурс]: учеб.-метод.пособие / И.И.Боброва. – 2-е изд.,испр.и доп. – М.:ФЛИНТА,2014-с.230

9.Новейший самоучитель работы на ПК и ноутбуке. Наглядно, понятно и очень просто/А.Г.Красичкова .-М.:РИПОЛ классик,2015.- с.256

10Обухова О.В. Информатика. Учеб.пособие. – Изд.2-е, перераб.и дополн.- М.: Альтаир- МГАВТ,2008.-с.101

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

12.Основы алгоритмизации и программирования. Курс лекций. с .8 Режим доступа:

13.Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск: Изд-во Тихоокеан. гос.ун-та, 2011. – с.56

14.Основы алгоритмизации и программирования: учеб.пособие /Т.В.Лубашева, Б.А.Железко.- Минск:РИПО,2016.-с.378

15.Основы программирования для автоматизированных систем проектирования и управления инновациями: учебное пособие для студентов, обучающихся по направлению подготовки бакалавров «Инноватика»/ А.В.Романенко, А.И.Попов.- Тамбов: Изд-во ФГБОУ ВПО «ТГТУ», 2014.- с.96

16.Основы разработки программного обеспечения на примере языка С/С.В.Синицын, О.И.Хлытчиев-М.:Национальный Открытый Университет «ИНТУИТ»,2016.-с.212

17.Основы функционального программирования/Л.В.Городняя- М.: Национальный Открытый Университет «ИНТУИТ»,2004.с.207

18.Программирование : учебное пособие/ В.М. Зюзьков. –Томск :Эль-Контент,2013.с. 186

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

20.Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.84

21.Функциональное программирование интеллектуальные системы : учебное пособие/ Н.Ю.Салмина.Томск: ФДО, ТУСУР,2016.с.100

22.Язык программирования высокого уровня Pithon. Функции, структуры данных, дополнительные модули: учебное пособие/ В.М.Шелудько ; Южный федеральный университет.- Ростов-на-Дону; Таганрог:Издательство Южного федерального университета,2017. С.107

23.Язык Си и особенности работы с ним/ Костюкова Н.И., Калинина Н.А.-М.: Национальный Открытый Университет »ИНТУИТ»,2006 (Основы информационных технологий).- с.207

  1. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.9-11

  2. Макаров В.Л. Программирование и основы алгоритмизации: учебн.

    пособие. СПб, СЗТУ, 2003, - с.4

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

  4. Математика и информатика в вопросах и ответах [Электронный ресурс]: учеб.-метод.пособие / И.И.Боброва. – 2-е изд.,испр.и доп. – М.:ФЛИНТА,2014-с.113

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

  6. 5. Белов П.М. Основы алгоритмизации в информационных системах:

    Учебн. Пособие.- Спб.: СЗТУ, 2003. –с.25

  7. Гвоздева В.А. Информатика. Часть 1. Курс лекций. М.,Альтаир- МГАВТ,2009.-с.58

  8. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.10

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

  10. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск: Изд-во Тихоокеан. гос.ун-та, 2011. – с.11

  11. Математика и информатика в вопросах и ответах [Электронный ресурс]: учеб.-метод.пособие / И.И.Боброва. – 2-е изд.,испр.и доп. – М.:ФЛИНТА,2014-с.115

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

  13. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.64

  14. ? Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.64-65

  15. Математика и информатика в вопросах и ответах [Электронный ресурс]: учеб.-метод.пособие / И.И.Боброва. – 2-е изд.,испр.и доп. – М.:ФЛИНТА,2014-с.114

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

  17. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.65

  18. ? Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.65

  19. Математика и информатика в вопросах и ответах [Электронный ресурс]: учеб.-метод.пособие / И.И.Боброва. – 2-е изд.,испр.и доп. – М.:ФЛИНТА,2014-с.114,115

  20. Информатика: учебно-практическое пособие/ Г.Р.Кадырова; Ульян.гос.техн.ун-т- 2-е изд.,доп.и перераб.- Ульяновск: УлГТУ,2013.-с.175

  21. ? Информатика: учебно-практическое пособие/ Г.Р.Кадырова; Ульян.гос.техн.ун-т- 2-е изд.,доп.и перераб.- Ульяновск: УлГТУ,2013.-с.175

  22. ? Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.67

  23. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с. 9,10

  24. Основы алгоритмизации и программирования. Курс лекций. с .8 Режим

    доступа:

    http://lib.ssga.ru/fulltext/UMK/исходные%20для%20Кацко/заменить%20полно

    стью/Информатика/лекции/13%20Основы%20алгоритмизации%20и%20прог

    раммирования.pdf

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

  26. Основы алгоритмизации и программирования: учеб.пособие /Т.В.Лубашева, Б.А.Железко.- Минск:РИПО,2016.-с.13

  27. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.9-11

  28. Основы алгоритмизации и программирования. Курс лекций. с.8,9 Режим

    доступа:

    http://lib.ssga.ru/fulltext/UMK/исходные%20для%20Кацко/заменить%20полно

    стью/Информатика/лекции/13%20Основы%20алгоритмизации%20и%20прог

    раммирования.pdf

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

  30. 4. Основы алгоритмизации и программирования. Курс лекций. с.8,9Режим

    доступа:

    http://lib.ssga.ru/fulltext/UMK/исходные%20для%20Кацко/заменить%20полно

    стью/Информатика/лекции/13%20Основы%20алгоритмизации%20и%20прог

    раммирования.pdf

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

  32. Информатика: учебно-практическое пособие/ Г.Р.Кадырова; Ульян.гос.техн.ун-т- 2-е изд.,доп.и перераб.- Ульяновск: УлГТУ,2013.-с.176

  33. Информатика: учебно-практическое пособие/ Г.Р.Кадырова; Ульян.гос.техн.ун-т- 2-е изд.,доп.и перераб.- Ульяновск: УлГТУ,2013.-с.176

  34. Новейший самоучитель работы на ПК и ноутбуке. Наглядно, понятно и очень просто/А.Г.Красичкова .-М.:РИПОЛ классик,2015.- с.173

  35. Информатика: учебно-практическое пособие/ Г.Р.Кадырова; Ульян.гос.техн.ун-т- 2-е изд.,доп.и перераб.- Ульяновск: УлГТУ,2013.-с.176

  36. Основы алгоритмизации и программирования: учеб.пособие /Т.В.Лубашева, Б.А.Железко.- Минск: РИПО,2016.-с.27

  37. Макаров В.Л.Программирование и основы алгоритмизации: Учебное пособие. –СПб.: СЗТУ,2003.- с.29

  38. Программирование : учебное пособие/ В.М. Зюзьков. –Томск :Эль-Контент,2013.с. 15

  39. Основы программирования для автоматизированных систем проектирования и управления инновациями: учебное пособие для студентов, обучающихся по направлению подготовки бакалавров «Инноватика»/ А.В.Романенко, А.И.Попов.- Тамбов: Изд-во ФГБОУ ВПО «ТГТУ», 2014.- с.4

  40. Обухова О.В. Информатика. Учеб.пособие. – Изд.2-е, перераб.и дополн.- М.: Альтаир- МГАВТ,2008.-с.72

  41. Язык программирования высокого уровня Pithon. Функции, структуры данных, дополнительные модули: учебное пособие/ В.М.Шелудько ; Южный федеральный университет.- Ростов-на-Дону; Таганрог:Издательство Южного федерального университета,2017. С.9-11

  42. Язык программирования высокого уровня Pithon. Функции, структуры данных, дополнительные модули: учебное пособие/ В.М.Шелудько ; Южный федеральный университет.- Ростов-на-Дону; Таганрог:Издательство Южного федерального университета,2017. С.10-12

  43. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.19

  44. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.75

  45. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.9-18

  46. ? Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.19

  47. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.75

  48. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.75

  49. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.10-15

  50. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.19-20

  51. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.76

  52. Программирование : учебное пособие/ В.М. Зюзьков. –Томск :Эль-Контент,2013.с. 24

  53. Введение в программирование:учебное пособие/Т.И.Волкова.-Москва;Берлин:Директ-Медиа,2018. с.13

  54. Программирование : учебное пособие/ В.М. Зюзьков. –Томск :Эль-Контент,2013.с. 24

  55. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.75

  56. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.20

  57. Введение в программирование:учебное пособие/Т.И.Волкова.-Москва;Берлин:Директ-Медиа,2018. с.13

  58. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.12

  59. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с. 20

  60. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.75

  61. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.9-18

  62. Язык Си и особенности работы с ним/ Костюкова Н.И., Калинина Н.А.-М.: Национальный Открытый Университет »ИНТУИТ»,2006 (Основы информационных технологий).- с.12-13

  63. Основы разработки программного обеспечения на примере языка С/С.В.Синицын, О.И.Хлытчиев-М.:Национальный Открытый Университет «ИНТУИТ»,2016.-с.61

  64. Язык Си и особенности работы с ним/ Костюкова Н.И., Калинина Н.А.-М.: Национальный Открытый Университет »ИНТУИТ»,2006 (Основы информационных технологий).- с.13

  65. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М., с.10-12

  66. ? Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.71

  67. Основы разработки программного обеспечения на примере языка С/С.В.Синицын, О.И.Хлытчиев-М.:Национальный Открытый Университет «ИНТУИТ»,2016.-с.61

  68. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М.;с.9-18

  69. Язык Си и особенности работы с ним/ Костюкова Н.И., Калинина Н.А.-М.: Национальный Открытый Университет »ИНТУИТ»,2006 (Основы информационных технологий).- с.13

  70. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М.;с.9-18

  71. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.19

  72. Программирование и основы алгоритмизации: Для инженерных

    специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А.

    Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского

    национального исследовательского технического ун-та - КАИ, 2013, с.32

  73. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.71-72

  74. Голиков В.А. Теория программирования. / Московская финансово-промышленная академия. – М.;с.10

  75. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с. 21

  76. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.73

  77. Введение в программирование :учебное пособие /Т.И.Волкова.-Москва.Берлин:Директ-Медиа,2018.с.34

  78. Современные компьютерные технологии: учебное пособие / Р.Г.Хисматов [и др.]; М-во образ. и науки России, Казан.нац. исслед.технол.ун-т.- Казань: Изд-во КНИТУ,2014. –с.73

  79. Введение в программирование :учебное пособие /Т.И.Волкова.-Москва.Берлин:Директ-Медиа,2018.с.34

  80. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.22

  81. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.22

  82. Основы функционального программирования/Л.В.Городняя- М.: Национальный Открытый Университет «ИНТУИТ»,2004.с.6

  83. Функциональное программирование интеллектуальные системы : учебное пособие/ Н.Ю.Салмина.Томск: ФДО, ТУСУР,2016.с.10

  84. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.23

  85. Основы функционального программирования/Л.В.Городняя- М.: Национальный Открытый Университет «ИНТУИТ»,2004.с.6

  86. Гвоздева В.А.,Володин А.Б. Интеллектуальные технологии и системы на водном транспорте Альтаир-МГАВТ ,2016.с.120

  87. Основы алгоритмизации и программирования : учебное пособие / Г.

    Р. Кадырова. – Ульяновск : УлГТУ, 2014. – с.23