Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Язык программирования - это система обозначений, служащая для точного описания программ или алгоритмов для ЭВМ. Языки программирования являются искусственными языками. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.

Программирование появилось задолго до 50-х годов XX века. Первые идеи высказал ещё Чарльз Бэббидж (1792-1871), которого по праву считают отцом компьютера. Он не знал о транзисторах, микросхемах и мониторах, но достаточно точно описал основные принципы, на которых будут строится все вычислительные машины. Развила идею графиня Ада Лавлейс (1815-1852). Её место в истории до сих вызывает немало споров, но одно абсолютно точно – именно Ада фактически стала первым известным программистом. Благодаря её трудам стало понятно, что путь к эффективному использованию машин – алгоритмы, описанные в коде.

Аналитическая машина Бэббиджа

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

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

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

Компьютер 1940-х годов

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

Решение лежало на поверхности: необходимо перевести цифровые обозначения операций в буквы. То есть вместо «01 10 15» использовать «ADD 10 15». Это требовало дополнительного перевода символов в машинную команду, но, учитывая проблему, жертва была минимальна.

Решение оказалось настолько очевидным, что доподлинно неизвестно, кто первым изобрёл язык Ассемблера. Вероятнее всего, он появился одновременно сразу в нескольких местах. За название и популяризацию ответственными принято считать авторов книги «The preparation of programs for a digital computer» Уилкса, Уилера и Гилла. Нетрудно догадаться, что название Ассемблер происходит от английского слова assemble – собирать, монтировать, что вполне точно описывает процесс. Позднее символы стали касаться не только простейших операций, но и адресации, что значительно упростило читаемость кода.

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

· Появлению понятия символьная переменная или просто переменная.

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

· Пониманию, что программирование может стать искусством.

Это стало катализатором языкового прорыва.

В соответствии с подходом к разработке программного обеспечения выделяется 2 типа языков программирования:

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

· Объектно-ориентированные, значительно распространившиеся в последнее время. Прототипом объектно-ориентированного программирования явился язык моделирования Simula-1 (1964). Но в самостоятельный стиль оно оформилось лишь с появлением языка Smalltalk (1972), первоначально предназначенного для реализации функций машинной графики.

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


 

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

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

1. Язык шестнадцатеричного кода – упрощен за счет представления четырех двоичных цифр одной шестнадцатеричной (24=16), но все равно очень сложен и практически не используется.

2. Ассембл ер (Assembler) – предназначен для представления в удобочитаемой символической форме программ, написанных на машинном языке. Иногда используется в качестве дополнения к языкам высокого уровня для программирования критичных по времени выполнения фрагментов программ. Языки ассемблера используются и в настоящее время, поскольку тесно связаны с машиной; действительно, язык ассемблера - это машинно-зависимый язык, спроектированный так, чтобы он соответствовал набору машинных команд, заложенных в центральный процессор конкретного компьютера.

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

3. Макроассемблер (MacroAssembler) – расширение языка ассемблер, которое позволяет определять и использовать новые, более мощные команды.

4. Си (С) разработан в 1972 г. (так его назвали потому, что предыдущая версия называлась В). Сочетает достоинства современных высокоуровневых языков (в части структур данных и управляющих структур) с возможностью эффективного использования аппаратных ресурсов компьютера, которое обычно обеспечивается только на уровне языка Ассемблер. Однако синтаксис языка затрудняет программирование и понимание составленных программ.

5. Бейсик (Basic - Beginner’s All-purpose Symbolic Instruction Code – многоцелевой код символических инструкций для начинающих) создан в 1964 г. для использования новичками для написания простых программ. Первоначально работа велась только в режиме интерпретации. Сегодня существует множество несовместимых между собой диалектов (версий) язык, причем современные весьма развиты и мало чем напоминают своего предка.

6. Фортан (Fortan – FORmule TRANslator – формульный транслятор) разработан в 1955 г. компанией IBM. Считается «рабочей лощашадью» научных работников за счет своей приспособленности к ведению сложных вычислений и используется до настоящего времени, несмотря на свою ограниченность и «корявость».

При этом Фортран оставался языком, приближенным к машинам. Например, там существовало такое:

if (выражение) doneg, dozero, dopos

Причиной была архитектура компьютера IBM, которой требовалась команда для использования нужного регистра: отрицательного, нулевого или положительного. Близость к машинам проявлялась и в известной команде GOTO (позднее она была унаследована Basic), означавший прямой переход к той или иной команде.

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

IBM 704 – машина, на которой был создан Fortran

7. Паскаль (Pascal) создал Никлаус Вирт в 1968 г. и назвал его в честь французского математика Блеза Паскаля. В этом языке полностью реализована концепция структурного программирования не только путем упорядочения связей между фрагментами программы, но и за счет структуризации данных. Один из наиболее популярных языков программирования.

8. Модула-2 (Modula-2) разработал Никлаус Вирт в 1981 г. (по существу это развитие Паскаля). Его особенности состоят в высокой модульности программ и наличии средств описания параллельных процессов.

9. Ада (Ada) создан в 1980 г. по заказу Министерства Обороны США. Назван так в честь Ады Лавлейс, которая была ассистентом Чарльза Бэббиджа. Этот универсальный язык вводит строгую дисциплину программирования, что препятствует написанию «плохих программ». Несмотря на достоинства, обладает громоздкостью, что отталкивает программистов.

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

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

Алгол (Algol – ALGOrithmic Language – алгоритмический язык) создан в 1958 г. Применялся для описания алгоритмов решения задач численного анализа. Обладает богатым набором средств, высокой строгостью и стройностью, но и большой сложностью;

Кобол (Cobol – Common Business Oriented Language – общепринятый деловой ориентированный язык) разработан в 1958 – 1960 гг. в США. Применялся при написании программ для решения учетно-экономических и управленческих задач. Обеспечивает наглядную и достаточно компактную запись алгоритмов в форме, независимой от конкретной ЭВМ.

Кроме перечисленных существуют специализированные языки, например для построения экспертных систем. Таковыми является язык Лисп (Lisp – LISt Processing language – язык обработки списков), разработанный в 1961 г. в США. Используется специалистами как основной язык программирования для создания систем искусственного интеллекта.

В настоящее время ведущими разработчиками систем программирования являются компании Microsoft и Borland International.

 


 

Вывод

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

Подведем итоги: Алгоритм – что это?

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

Также нужно понимать, что алгоритм как последовательность шагов позволяет решать конкретную задачу и должен:

1. Работать за конечный объем времени. Если алгоритм не способен разобраться с проблемой за конечное количество времени, можно сказать, что алгоритм бесполезен.

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

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

А что такое программирование?

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


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

1. Хубаев Г.Н. «Информатика: учебное пособие» 2010 – 288 с.

2. В.А. Острейковский «Информатика: Учеб. для вузов» 2005 – 511 с.

3. Алдамжаров К.Б., Джаембаев Р.Т., Михайличенко С.Г., Омарова Р.Д. «Основы информатики» 2006 – 256 с.

4. Хлебников А.А. «Информационные технологии: учебник» 2014 – 472 с.

5. Колдаев В.Д. «Основы алгоритмизации и программирования» 2006 – 414с.

6. Семакин И. Г. «Основы алгоритмизации и программирования: учебник для студ. Учреждений» 2013 – 304 с.

7. Стивен С. Скиена «Алгоритмы. Руководство по разработке» 2011 г. – 720с.

8. Шень А. «Программирование: теоремы и задачи» 2017 г. – 320 с.

9. С. А. Орлов «Теория и практика языков программирования» 2017 г. – 688 с.

10. Дасгупта С., Пападимитриу Х., Вазирани У., «Алгоритмы» 2014 г. – 320 с.

11. Бабенко М.А., Левин М.В. «Введение в теорию алгоритмов и структур данных» 2016. — 145 с.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...