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

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

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

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

Добавлен: 01.04.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

Предметом исследования – история возникновения и принципы создания языков программирования.

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

Задачи необходимые для решения данной цели:

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

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

3.Ознакомление с основными принципами и подходами при создании языка программирования

4.Рассмотрение классификации языков программирования

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

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

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

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


Данную проблему рассматривали Роберт У.Себеста в своей книге «Основные концепции языков программирования» и Кауфман В.Ш. в своей книге «Языки программирования. Концепции и принципы».

Первая книга стала бестселлером в США и посвящена всестороннему рассмотрению основных концепций языков программирования. Автор Роберт У.Себеста приводит фундаментальные понятия программирования на примере вопросов разработки различных языковых конструкций, подвергает критическому анализу реализацию в широком спектре следующих языов программирования: FORTRAN, PL/I, PASCAL, Ada, С, C++, Smalltalk, Java, LISP и Eiffel. Материал книги рассматривает все парадигмы программирования от функциональной до объектно-ориентированной.

Вторая книга рассматривает фундаментальные концепции и принципы, которые воплощены в современных и перспективных языках программирования. В ней рассмотрены разные стили программирования (функциональный, операционный, реляционный, ситуационный, объектно-ориентированный, параллельный). Базовые принципы и концепции рассмотрены с 5 различных позиций (математической, технологической, реализаторской авторской и семиотической) и проиллюстрированы примерами из следующих языков: Симула-67, Паскаль, Турбо Паскаль, Ада, Смолток, Оберон, Рефал, Оккам-2, Модула-2, С++ и других.

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

Новые подходы присутствуют при изложении известных фактов (пошаговая модификация нормальных алгоритмов Маркова сначала до Рефала, а потом до реляционных языков, сопоставление принципов "сундука" и "чемоданчика" при создании Ады, Оберона и Модулы-2, развитие концепции наследуемости от модульности до объектной ориентации, систематическое сопоставление концепции параллелизма в Оккаме-2 и Аде).

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


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

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

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

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

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

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

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


1.2.Начало истории программирования

С глубокой древности известны попытки создать устройства, которые ускоряли бы и облегчали бы процесс вычислений. Еще древние римляне и греки применяли приспособление, которое подобное счетам, - абак. В странах Дальнего Востока тоже были известны такие устройства. В XV века немецкие ученые Вильгельм Шиккард (1623 год - шести разрядный десятичный вычислитель, который состоял из зубчатых колес и для выполнения вычитания и сложения, а также табличного деления и умножения), Готфрид Лейбниц (1673 год - первая счетная машина, способная механически выполнять все 4 действия арифметики) создали механические вычислительные устройства, которые были предшественники всем известного арифмометра, в 1642 году, а французский ученый Блез Паскаль создал первую механическую счетную машину – арифмометр. Вычислительные машины в течение нескольких веков совершенствовались. Однако не использовались понятия "программирование" и "программа".[3, 12]

В начале XIX в. (1830 год) английский ученый Чарльз Бэббидж, профессор математики Кэмбриджского университета, при анализе результатов обработки переписи населения во Франции, исследовал теоретически процесс выполнения вычислений и обосновал основы архитектуры вычислительной машины. Ч.Бэббидж при работе над проектом аналитической машины, который назывался «Машины для исчисления разностей», предсказал достаточно много идей и принципов организации и работы современных ЭВМ, в частности он предсказал принцип программного управления и запоминаемой программы. Ч. Бэббидж и Аде Лавлейс (1815--1852 гг.) долгие годы плодотворно сотрудничали. В 1843 году Ада Лавлейс перевела статью Менабреа по лекциям Ч. Бэббиджа, в которой в виде подробных комментариев она (по объему комментарии были больше основного текста) сформулировала главные принципы программирования аналитической машины. Ада разработала первую программу (1843 год) для машины Ч.Бэббиджа и убедила его, что необходимо использовать двоичную систему счисления вместо десятичной, она также разработала принципы программирования, которые предусматривали при определенных условиях повторение одной и той же последовательности команд. Ада Лавлейс предложила такие термины, как "цикл" и "рабочая ячейка".[5]

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


В 1854 году была опубликована книга «Законы мышления» английского математика Джорджа Буля, в которой он развил алгебру высказываний, получившую название Булева алгебра. На ее основе в начале 80-х годов XIX века была построена теория релейно-контактных схем и конструирования сложных дискретных автоматов. Булева алгебра оказала многогранное влияние на развитие вычислительной техники, она являлась инструментом разработки и анализа сложных схем, а также инструментом оптимизации огромного числа логических элементов, из многих тысяч которых состоит современная ЭВМ.[5]

Идеи Ч. Бэббиджа позже реализовал американский ученый Г. Холлерит, обработавший с помощью построенной счетно-аналитической машины и перфокарт за 3 года результаты переписи населения в США по состоянию на 1890 год. В машине впервые было использовано электричество. В 1896 году Г.Холлерит основал фирму по выпуску перфокарт и вычислительных перфорационных машин.[12, 20]

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

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

Рисунок 1 – История развития языков программирования

В 40-х годах XX века механическая элементная база вычислительных машин стала заменяться электрическими и электронными устройствами. Первые электромеханические машины были созданы в Германии К. Цузе (Ц-3, 1941год) и в США под руководством профессора Гарвардского университета Г. Айкена (МАРК-1, 1944 год). Первая электронная машина была создана в США группой инженеров под руководством доктора Пенсильванского университета Дж. Мочли и аспиранта Дж. Экксрта (ЭНИАК -- электронный числовой интегратор и калькулятор, 1946 год). В 1949 году в Англии была построена EDSAC -- это первая машина, которая обладала автоматическим программным управлением, внутренним запоминающим устройством и остальными необходимыми компонентами современных ЭВМ.[6, 20]

Логические схемы вычислительных машин были разработаны в конце 1940-х годах Дж. фон Нейманом, Г. Гольдстайном и А. В. Берксом. Американский математик Джон фон Нейман внес особый вклад в эту работу. Он принимал участие в создании ЭНИАК. Дж. фон Нейманом предложил идею хранения команд управления и данных в машинной памяти, а также сформулировал основные принципы построения современных ЭВМ. ЭВМ с хранимой программой оказались более гибкими и быстродействующими, чем ранее созданные.