Файл: Классификация языков программирования высокого уровня (Первые языки программирования).pdf
Добавлен: 31.03.2023
Просмотров: 161
Скачиваний: 1
Введение
Сегодня современные технологии настолько развиты, что очень сложно представить, что когда то компьютеров не существовало, и уж тем более программных продуктов. В середине 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 (Джава, Ява).
Паскаль во многом напоминает Алгол, так как в нем четко регламентирован ряд требований к структуре программы и он обладает высоким потенциалом для его успешного применения при создании больших проектов.
Язык Си должен был заменить ассемблер, чтобы с помощью него создавать такие же действенные и компактные программы, но в то же время не иметь зависимости от конкретного типа процессора. Язык Си многими параметрами сходен с Паскалем, но, в отличие от него, имеет добавочные средства для непосредственной работы с памятью.