Файл: Современные языки программирования (История возникновения языков программирования).pdf

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

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

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

Добавлен: 14.03.2024

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

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

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

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

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


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

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

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

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

Глава 1. История возникновения языков программирования.

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


Рисунок 1. Первый в мире компьютера под названием «Марк 1».

Первым в мире компьютером был американский программируемый компьютер, который разработал и построил в 1941 году гарвардский математик Говард Эйксон при сотрудничестве четырёх инженеров компании IBM, по заказу которой компьютер и разрабатывался. Компьютер был создан на основе идей Чарльза Бэббиджа.

Рисунок 2. Общий план компьютера «Марк 1»

Стоимость этого компьютера составила 500 тысяч долларов. Компьютер собран в корпусе из нержавеющей стали и стекла, имел длину около 17 метров, высоту более 2,5 метров, вес около 4,5 тонны, площадь занимал несколько десятков метров. Компьютер Марк 1 содержал в себе электромеханические переключатели, реле и прочие детали в количестве 765 тысяч штук.

Рисунок 3. Внутренние переключатели на компьютере «Марк 1».

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

Рисунок 4. Пример более современной советской перфокарты.

Машинный язык программирования состоял из парадигмы «Одна инструкция – одна строка». Благодаря этому языку происходило упрощение взаимодействия программиста и компьютера, более понятное человеческому восприятие машинного кода, так сказать - упорядоченного.  Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей. Но более частое использование показало, что язык неудобен и очень громоздок в использовании. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программы на данном языке — очень длинные последовательности единиц и нулей являются машинно зависимыми, то есть для каждой ЭВМ необходимо было составлять свою программу, а так же программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.


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

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

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

Рисунок 5. Пример программы на ассемблере, сложение двух чисел.

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

С середины 50-х гг. XX в. начали создавать первые языки программирования высокого уровня. Эти языки не были привязаны к определенному типу ЭВМ. Для каждого из них были разработаны собственные компиляторы. Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда язык ассемблера). Одним из таких первых языков третьего поколения был язык программирования – «Fortran». В период с 1954 по 1957 годы программистами компании IBM, под руководством Джона Бэкуса, «Fortran» был создан. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmula TRANslator (переводчик формул). В то время сообщество относилось скептически к новому способу программирования и не верили в то, что Fortran позволит программировать быстрее и эффективнее. По словам самого Джона Бэкуса, большая часть его работы была направлена на то, чтобы «быть ленивым». Ему жутко не нравилось писать программы под IBM 701 на ассемблере. Язык был широко принят учеными для написания программ с интенсивными вычислениями. Включение комплексного типа данных сделало его особенно подходящим для технических приложений.


К 1960 году существовали версии Fortran для компьютеров IBM 709, 650, 1620, 7090. Его большая популярность побуждала конкурирующих изготовителей компьютеров создавать компиляторы Fortran для своих компьютеров. Таким образом, уже к 1963 существовало более 40 компиляторов для разных платформ. Именно по этому Fortran считают первым широко используемым языком программирования.

Рисунок 6. Пример программы на Fortran, возведение числа в степень.

На фоне жесткой конкуренции европейские ученые стали бить в тревогу, все европейские компании боялись, что предприятие IBM захватит мировой рынок. Благодаря этому событию, ученые с помощью Международной федерации по обработки информации создали и доработали следующий веток программирования, язык программирования Алгол, год появления 1958. В ходе работы возникали большие трудности непринципиального характера. Так, например, один из членов комитета вспоминал «десятичную бурю» — крайне резкую дискуссию между американскими и европейскими участниками по поводу того, какой именно символ должен быть использован в качестве разделителя целой и дробной частей числа. Американцы настаивали на точке, европейцы же требовали применять традиционную для Европы запятую. Чтобы избежать конфликтов по мелким вопросам, было решено, что описание Алгола будет трёхуровневым, включающим уровень описаний, публикаций и реализации. Мелкие вопросы, типа выбора между точкой и запятой или используемого алфавита, были вынесены на второй-третий уровень, что позволило относительно быстро решить принципиальные вопросы. На уровне публикаций, согласованном позже, допускалось использование национальных ключевых слов и стандартов представления данных (в том числе и десятичной точки), уровень реализации определял язык совершенно строго — согласно ему должны были строиться трансляторы. нового языка нашлись как приверженцы, так и критики. В США Алгол приняли холодно, он был популярен только в академической среде, и то не повсеместно. Те, кто попытался реализовать Алгол, столкнулись с целым рядом сложностей. Так, например, обнаружилось, что ни один из существовавших тогда компьютеров не поддерживал ввод-вывод всех 116 литер, из которых состоял алфавит Алгола. А вот в Европе Алгол приняли с энтузиазмом. Он быстро завоевал популярность в академической среде, повсеместно шла разработка компиляторов, многие из которых, несмотря на сложности реализации, оказались весьма успешными. Алгол распространился от Великобритании до Дальнего востока СССР, став как универсальным языком описания алгоритмов в научных публикациях, так и средством реального программирования.