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

Классификация языков программирования высокого уровня (Первые языки программирования)

Содержание:

Введение

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

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

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

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

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

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

Глава 1. Краткая характеристика программирования

1.1. История развития языков программирования

Активное развитие программирования началось в 50-ые гг. XX века. Однако, еще намного ранее появились предпосылки к появлению языков программирования. Первые мысли о строении вычислительных машин принадлежат Чарльзу Беббиджу – английскому математику-изобретателю. Он являлся Иностранным членом-корреспондентом Императорской академии наук в Санкт-Петербурге. Также он является отцом компьютеров, так как именно он изобрел первую аналитическую вычислительную машину в 1833 г.

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

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

В 1819 г. Беббидж занялся разработкой малой разностной машины. Разностная машина – это автомат, роль которого заключается в автоматизации вычислений путём аппроксимации функций многочленами и вычисления конечных разностей. За создание данной машины Чарльза Беббиджа наградили золотой медалью Астрономического общества.

Спустя 3 года, в 1822 г. Беббиджа посетили мысли о создании большой разностной машины. С ее помощью можно было сэкономить на оплате труда, так как эта машина могла бы заменить большое количество людей. Однако, из-за обстоятельств большая машина не была достроена. Хотя, в последующем, после его смерти, труды Чарльза Беббиджа были воплощены полностью.

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

Наряду с развитием мысли Чарльза Беббиджа об аналитической машине создавалось и ее описанием, автором которого является английский математик, графиня Ада Лавлейс. Она первый в мире человек, создавший программу. Ее считают первым программистом в истории.

Первой программой в мире считается описание алгоритма вычисления чисел Бернулли на аналитической машине. Программа Ады Лавлейс специально была реализована для воспроизведения на компьютерах. Графиня впервые ввела такие термины, как цикл и ячейка. Ада Лавлейс фактически истолковала работы Чарльза Беббиджа, показав миру принципы работы аналитической машины. После смерти Чарльза, его сын продолжил работы отца.

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

1.2 Первые языки программирования

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

В эти годы работа происходила с простыми машинными кодами. Код программы выглядел в виде набора цифр. Например:

01 10 15 02 11 29 01 10 11…, где

01 x y – добавление содержимого ячейки памяти y к ячейке x;

02 x y – аналогичная процедура с вычитанием.

Инженеры-программисты учили машинные команды, затем писали код. Допускалось очень много ошибок. В последующем нехватка кадров стала тормозить развитие машин, поэтому необходимо было искать альтернативу. Так, появился язык Ассемблер. Он представлял собой переведенные цифровые значения в буквенные. Конкретного изобретателя языка Ассемблера нет. Предположительно, что он появился одновременно в нескольких местах, однако, ответственными считают авторов книги «The preparation of programs for a digital computer» Уилкса, Уилера и Гилла.

Ассемблер в переводе с английского означает «собирать, монтировать». Это точное описание процесса. В дальнейшем символы стали касаться не только основных операций, но и адресации, отчего стало проще читать код вдвойне.

Язык Ассембелера является языком низкого уровня. Суть его состояла в том, чтобы перевести двоичный код в буквенный. Например, при а языке ассемблера команда сложения двух чисел обозначается словом add, тогда как ее машинный код может быть таким: 000010. Это намного упростило работу.

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

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

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

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

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

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

2.1. Характеристика языков высокого уровня и их виды

Вторая половина 50-х гг. XX века характеризуется активным развитием программирования. На смену существовавшим языкам программирования пришло третье поколение – языки высокого уровня. Машинный код практически ушел на последний план. Языки высокого уровня более просты в описании задач и легко воспринимаются программистами. Такие языки не привязаны к конкретной ЭВМ и для их перевода в машинный код требуются интерпретаторы или трансляторы.

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

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

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

К популярным универсальным языкам относятся языки C#, C++, Basic, Pascal (Delphi). К проблемно-ориентированным - PHP, Perl, JavaScript, VBScript.

Другая классификация языков представлена в таблице 1.

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

Программирование

Процедурное

Непроцедурное

Операциональное

Структурное

Объектное

Декларативное

Ассемблеры, Фортран, Бэйсик, Си

Паскаль, модула

Смолток, С++, Делфи

Логическое

Функциональное

Пролог

Лисп

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

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

Языки высокого уровня – это третье, четвертое и пятое поколение языков с момента начала появления программирования. Достаточно популярным языком третьего поколения является Basic (Бейсик). Для него имеются и компиляторы, и интерпретаторы. Од достаточно легок в изучении. Помимо него существуют Алгол, Кобол и др.

Языки четвертого поколения появились с конца 70-х гг. XX века. Их чаще используют в крупных проектах, чтобы они были надёжными и быстрыми. К данному поколению относятся языки: Pascal (Паскаль), С (Си), C++ (Си++), Java (Джава, Ява).

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

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

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

Язык Ява был создан в начале 90-х годов XX века компанией Sun на основе Си++. В этом языке исключены все низкоуровневые возможности языка Си++. Главной особенностью языка Ява является то, что компиляция происходит не в машинный код, а в платформо-независимый байт-код (каждая команда занимает один байт). По популярности этот язык сегодня занимает второе место в мире после Бейсика.

К концу 90-х годов XX века появились языки пятого поколения. Они классифицируются как объектно-ориентированные. К ним относятся системы автоматического создания прикладных программ используя визуальные средства разработки. В такой ситуации необязательно знание базы программирования. Главная особенность данных языков, - возможность автоматического формирования итогового текста на универсальных языках программирования. Итоговый текст в дальнейшем подвергается компиляции. Инструкции в компьютер вводятся в максимально наглядном виде используя методы, наиболее удобных для человека, который не сталкивался с программированием. Из этого поколения наиболее популярны следующие визуальные системы (среды) быстрого проектирования программ для MS Windows:

• Visual Basic for Applications (VBA) на базе языка программирования Бейсик;

• Borland Delphi (Делфи) на базе языка программирования Паскаль;

• Borland C++ Builder на базе языка программирования C++;

• Symantec Cafe на базе языка программирования Ява.

Для разработки серверных и распределенных приложений создана система программирования Microsoft Visual C++.

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

Одним из первых языков высокого уровня стал Фортран. Полное название Фортрана – The IBM Formula Translating System, или FORmula TRANslator. Он создавался в период с 1954 по 1957 гг. Его предназначение заключалось в научных и технических расчетах.

Несмотря на 60-летний возраст, он остаётся одним из самых популярных языков программирования и невероятно востребован в Data Science. За это время мы видели множество версий: Fortran 1, II, 66, 77, 90, 95, 2008, а в следующем году выйдет ещё одна (планировался Fortran 2015, но из-за задержек название может смениться на 2018). Именно в Фортране впервые были одновременно реализованы многие атрибуты языка высокого уровня, среди которых:

  • арифметические и логические выражения;
  • цикл DO (ранняя форма цикла FOR);
  • условный оператор IF;
  • подпрограммы;
  • массивы.

Ещё одним важным наследием Фортрана, о котором даже не догадываются современные программисты, является использование ограничений для переменных для целых чисел. Все они должны были начинаться с одного из 6 символов I, J, K, L, M, N (происходит от I-Nteger). Именно отсюда взялась привычка для перечислений брать переменные i, j и т.д.

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

Алгол многое взял у Фортрана. Однако в Алголе главные понятия были собраны в более логичную, можно даже сказать, изящную структуру. Несмотря на это, у Алголя были недостатки – отсутствовали ввод/вывод и было низкое быстродействие. Отсутствие ввода/вывода можно было объяснить тем, что ученым было неважно в каком виде будут представлены выходные данные, их интересовал сам алгоритм. Для промышленных нужд такой подход не годился. Низкое быстродействие можно было изменить лишь с помощью доработок. Так появился Алголь 68. В Algol 68 было реализовано несколько интересных идей (например, механизмы расширения языка, а также средства для параллельных вычислений), но он получил ограниченное применение.

Наряду с этими языками программирования появился Кобол (в 1959 г.). Он предназначался для написания программ, с помощью которых разрабатывались бизнес-приложения и для работы в экономических отраслях. Создатели данного языка ставили перед собой цель сделать Кобол машинно-независимым и максимально приближенным к естественному английскому языку. Эти цели авторами Кобола были достигнуты. Программы, написанные на Коболе понятны даже не профессионалам.

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

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

Нельзя не отметить язык Паскаль. Данный язык использует структурное программирование и структурированные данные. Еще одна особенность языка – строгая типизация. Разработчик языка (Никлаус Вирт) утверждал, что язык способствует дисциплинированному программированию, таким образом, помимо строгой типизации, в Паскале минимизированы какие-либо синтаксические неоднозначности, а сам синтаксис Никлаус Вирт попытался сделать интуитивно понятным даже неспециалисту.

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

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

Полное название - Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих. Во многом похож на Фортран. Бэйсик был задуман для обучения. Данный язык базируется на двух типах данных: строка и число. Ранние варианты Бэйсика были бедны синтаксически. Многие считали, что после изучения этого языка невозможно было обучить хорошему программированию. Однако, как отмечают авторы Бэйсика, он изначально не предназначался для разработки крупных и сложных программ.

Заключение

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

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

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

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

Список использованной литературы

  • А.А. Тюгашев. Основы программирования. Часть I. – СПб: Университет ИТМО, 2016.
  • Ассемблер — это просто. Учимся программировать. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011.
  • Ахмедханлы, Д.М. Основы алгоритмизации и программирования : электрон. учеб.-метод. пособие / Д.М. Ахмедханлы, Н.В. Ушмаева. – Тольятти : Изд-во ТГУ, 2016.
  • Голицына О., Попов И. Программирование на языках высокого уровня. Учебное пособие - М.: Форум: ИНФРА-М. 2018.
  • Горелик А.М. Эволюция языка Фортран. Устаревшие черты языка и средства для их замены // Препринты ИПМ им. М.В.Келдыша. 2018. № 130.
  • Луховицкая Э.С. Ада и Бэббидж // Препринты ИПМ им. М.В.Келдыша. 2016. № 143.
  • Невероятные приключения Лавлейс и Бэббиджа. (Почти) правдивая история первого компьютера / Сидни Падуа; пер. с англ. Ломакина С. – М. : Манн, Иванов и Фербер, 2017.
  • Орлов С. А. Теория и практика языков программирования. Учебник для вузов. 2-е изд. Стандарт 3-го поколения: Издательский дом «Питер», 2017.
  • О языке Паскаль. [Электронный ресурс]//Режим доступа: http://pascalabc.net/o-yazike-paskal
  • Программирование: введение в профессию. II: Низкоуровневое программирование. – М.: МАКС Пресс, 2016
  • Язык программирования ALGOL (АЛГОЛ). [Электронный ресурс]//Режим доступа: http://progaprosto.ru/doc/yazyk_programmirovaniya_algol.php
  • Языки программирования : учебник для студ. Учреждений высш. проф. образования / И.Ю.Баженова ; под ред. проф. В.А.Сухомлина. — М. : Издательский центр «Академия», 2012.