Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
576
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 93.77 KB | None | 0 0
  1. Министерство образования и найки Российской Федерации
  2. Федеральное образовательное автономное учереждение высшего профессионального образования
  3. “Уральский федеральный университет
  4. имени первого Президента России Б. Н. Ельцина”
  5. Институт математики и компьютерных наук
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12. Реферат по дисиплине “История математических теорий” на тему “Истрия и развитие языков программирования”
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23. Реферат студента 4 курса
  24. группы кн-402
  25. Ромащенко Валерии Алексеевны
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. Екатеринбург
  34. 2015 год
  35. Оглавление
  36.  
  37. Введение
  38. Глава 1 Начальный этап развития ЯП (1940-1960гг.)
  39. Глава 2 Втрой этап развтия ЯП (1960-1980 гг.)
  40. Глава 3 Третий этап развития (1990гг. – н.в.)
  41. Заключение
  42. Список использованных источников
  43. ПРИЛОЖЕНИЕ
  44. Введение
  45.  
  46. Стремительне темпы развития в области IT-индустрии, новые технологии влекут за собой развитие и языков программирования (ЯП), создание новых, модификацию уже существующих. Чтобы понять дальнейшие тенденций в развитии ЯП нужно уметь видеть основные закономерности их развития в истории и уметь их анализировать.
  47. Сначала было программирование в машинных кодах, когда программист являлся единственным посредником между пльзователями и машиной, которая занимала огромные пространства [1] Затем появились мнемонические представления машинного кода, ассемблер и, наконец, макроассемблер. В конце 50-х возникли языки формульного программирования, из которых наиболее известным стал Фортран, позже в 60-х, произошло смещение к нечисленным методам — появился АЛГОЛ, и наконец к 70-м годам произошла структурная революция – АЛГОЛ-Wи Паскаль. Позже появилось "модульное" программирование — Модула и Модула-2. Приблизительно в это же время рождается знаменитый язык Си, идет новая революция логического программирования —ПРОЛОГ и экспертные системы. Пентагон проводит свой знаменитый конкурс, на котором побеждает Ада, а Япония заявляет о проекте машин пятого поколения, основанных на SmallTalk. В результате происходит объектно-ориентированная революция, появляются С++, Оберон, Eiffel.
  48. Можно выделить для изучения и проанализировать 3 исторических периода. При этом необходимо выявить особенности возникновения ЯП:
  49. 1. Первый период развития языков программирования: машинные коды, непосредственно воспринимаемые машиной. Символические ассемблеры. Первые языки программирования высокого уровня.
  50. 2. Второй период развития языков программирования: процедурно-ориентированные языки программирования высокого уровня. Объектно-ориентированные языки программирования высокого уровня. Языки систем управления базами данных.
  51. 3. Третий период развития языков программирования: языки, приближённые к человеческой логике и применимые в Интернете.
  52. Глава 1
  53. Начальный этап развития языков программирования (1940 – 1960 гг.)
  54.  
  55. Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – упрощение программного кода. Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу «одна инструкция - одна строка».
  56.  
  57. Машинные коды и Ассемблер
  58. Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей - последовательность перепада напряжения, т. е. машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей.
  59. Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0, программу тяжело отлаживать, кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. Программы на данном языке – очень длинные последовательности единиц и нулей являются машинно зависимыми, т.е. для каждой ЭВМ необходимо было составлять свою программу, что требует довольно больших временных ресурсов.
  60. Довольно скоро стало понятно, что процесс формирования машинного кода можно автоматизировать. Уже в 1950 году для записи программ начали применять мнемонический язык – язык assembly. Язык ассемблера позволил представить машинный код в более удобной для человека форме: для обозначения команд и объектов, над которыми эти команды выполняются, вместо двоичных кодов использовались буквы или сокращенные слова, которые отражали суть команды. Например, на языке ассемблера команда сложения двух чисел обозначается словом add, тогда как ее машинный код может быть таким: 000010.
  61. Ассемблер - язык программирования низкого уровня. Появление языка ассемблера положило начало программирования такого, которое мы знаем сейчас - посредством команд. Для того времени этот язык был новшеством и пользовался популярностью т.к. позволял писать программы небольшого размера.
  62. Но сложность разработки в нём больших программных комплексов привела к появлению языков третьего поколения – языков высокого уровня. Но на этом жизнь использование ассемблера не закончилась, даже сейчас есть узкий круг людей, которые его используют - в написании отдельных фрагментов программ или иногда в написании самих программ (драйвера, игры и загрузчики ОС).
  63.  
  64. Первые языки программирования высокого уровня
  65. Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала уменьшаться, стали появляться языки программировании нового типа, выступающие в роли посредника между машинами и программистами. Наступило время второго и третьего поколений языков программирования.
  66. С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-levellanguage). Эти языки были машино-независимыми (не привязаны к определенному типу ЭВМ).
  67. Но для каждого языка были разработаны собственные компиляторы - программа, выполняющая компиляцию.
  68. Компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера)
  69.  
  70. Язык программирования FORTRAN
  71.  
  72. Первый язык высокого уровня был создан в период с 1954 по 1957 года группой программистов под руководством Джона Бэкуса в корпорации IBM и это стало следующим этапом развития языков программирования. Это был язык программирования FORTRAN. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmulaTRANslator (переводчик формул).
  73. История языка
  74. В конце 1953 Джон Бэкус предложил начать разработку эффективной альтернативы ассемблеру для программирования на ПК IBM 704. Уже к середине 1954 была закончена черновая спецификация языка Fortran. Первое руководство для Fortran появилось в октябре 1956 вместе с первым компилятором, поставленным в апреле 1957.
  75. Язык был широко принят учеными для написания программ с интенсивными вычислениями. Включение комплексного типа данных сделало его особенно подходящим для технических приложений.
  76. К 1960 году существовали версии Fortran для компьютеров IBM 709, 650, 1620, 7090. Его большая популярность побуждала конкурирующих изготовителей компьютеров создавать компиляторы Fortran для своих компьютеров. Таким образом, уже к 1963 существовало более 40 компиляторов для разных платформ. Именно по этому Fortran считают первым широко используемым языком программирования.
  77. Фортран в СССР
  78. Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол. Во внедрении Фортрана большую роль сыграло общение советских физиков со своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с использованием программ на Фортране.
  79. Первый советский компилятор с Фортрана был создан в 1967 г. для машины «Минск-2», однако он не получил большой известности. Широкое внедрение Фортрана началось после создания в 1968 г. компилятора ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г., уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360 вместе с другим программным обеспечением)
  80. Современный Фортран. Достоинства языка
  81. Фортран широко использовался в основном для научных и инженерных вычислений., подходит для решения численных задач, поскольку за 50 с лишним лет написано множество библиотек, поэтому языком пользуются и сейчас.
  82.  
  83. Язык программирования ALGOL 58
  84. Появление языка ALGOL
  85. Немецкое общество прикладной математики (Germansocietyofappliedmathematics — GAMM) создало комитет по разработке универсального языка. В то же время AssociationforComputingMachinery (ACM) организовала похожий комитет в США. Несмотря на то, что у европейцев было некоторое беспокойство по поводу господства американцев, оба этих комитета слились в один.
  86. Алгол был разработан в 1958 году, на недельной конференции в ETH (Цюрих, Швейцария) как универсальный язык программирования для широкого круга применений, а затем доработан комитетом, созданным Международной федерацией по обработке информации (IFIP). В комитет вошёл ряд ведущих европейских и американских учёных и инженеров-разработчиков языков.
  87. Среди них были: Джон Бэкус — один из создателей Фортрана, Джозеф Уэгстен — впоследствии возглавлял комитет по разработке языка Кобол, Джон Маккарти — автор языка Лисп разработанного одновременно с Алголом, Петер Наур — впоследствии доработал «нормальную форму Бэкуса», завершив разработку БНФ, Эдсгер Дейкстра — нидерландский учёный, впоследствии получивший широкую известность как один из создателей структурного программирования и сторонник математического подхода к программированию, будущий лауреат Премии Тьюринга.
  88. Сначала работа столкнулась с большими трудностями непринципиального характера. Так, например, один из членов комитета вспоминал «десятичную бурю» — крайне резкую дискуссию между американскими и европейскими участниками по поводу того, какой именно символ использовать в качестве разделителя целой и дробной части числа. Американцы стояли за точку, европейцы требовали применять традиционную в Европе запятую, и из-за такой мелочи работа оказалась под реальной угрозой срыва. Чтобы избежать конфликтов по мелким вопросам, было решено, что описание Алгола будет трёхуровневым, включающим уровень описаний, публикаций и реализации. Мелкие вопросы, типа выбора между точкой и запятой или используемого алфавита, были вынесены на второй-третий уровень, что позволило относительно быстро решить принципиальные вопросы. На уровне публикаций, согласованном позже, допускалось использование национальных ключевых слов и стандартов представления данных (в том числе и десятичной точки), уровень реализации определял язык совершенно строго — согласно ему должны были строиться трансляторы.
  89. Вначале предлагавшееся название ALGOL (ALGOrithmicLanguage) было отвергнуто. Но поскольку оно стало общеупотребительным, официальное имя IAL пришлось впоследствии изменить на ALGOL 58.
  90. Новая версия появилась в 1960 г., и ALGOL 60 (с небольшими изменениями, сделанными в 1962 г.) с 60-х и до начала 70-х гг. прошлого века был стандартом академического языка программирования.
  91.  
  92. Язык программирования LISP
  93. Язык Лисп был предложен Дж. Маккарти в работе в 1960 году и ориентирован на разработку программ для решения задач не численного характера. Английское название этого языка – LISP является аббревиатурой выражения LIStProcessing (обработка списков) и хорошо подчеркивает основную область его применения.
  94. В виде списков удобно представлять алгебраические выражения, графы, элементы конечных групп, множества, правила вывода и многие другие сложные объекты. Списки являются наиболее гибкой формой представления информации в памяти компьютеров.
  95. Развитие языка
  96. На протяжении почти сорокалетней истории его существования появился ряд диалектов этого языка: Common LISP, Mac LISP, Inter LISP, Standard LISP и др.
  97. Различия между ними не носят принципиального характера и в основном сводятся к несколько отличающемуся набору встроенных функций и некоторой разнице в форме записи программ.
  98. Основные достоинства языка
  99. Большим достоинством Лиспа является его функциональная направленность, т. е. программирование ведется с помощью функций, что улучшает чтаемость кода и это становится особенно важным, когда над программой работает не один человек, а целая группа программистов.
  100.  
  101. Язык программирования COBOL
  102. COBOL (CommonBusiness-OrientedLanguage) был разработан в 1959 году и предназначался прежде всего для написания программ для разработки бизнес приложений, а так же для работы в экономической сферы.
  103. Спецификация языка была создана в 1959 году. Создатели языка ставили своей целью сделать его машинно-независимым и максимально приближенным к естественному английскому языку, поэтому тексты на этом языке программирования не нуждаются в каких-либо специальных комментариях (самодокументирующиеся программы).
  104.  
  105. Достоинства и недостатки
  106. COBOL — язык очень старый и в свое время использовался крайне активно, поэтому существует множество реализаций и диалектов. Для языка был утвержден ряд стандартов: в 1968, 1974, 1985 и 2002 годах. Последний стандарт добавил в язык поддержку объектно-ориентированной парадигмы.
  107. Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения. К числу других плюсов COBOL обычно относят его структурированность.
  108. Перечисляя минусы, нельзя не вспомнить о том, что на Коболе можно запрограммировать лишь простейшие алгебраические вычисления.
  109.  
  110. Выводы по данному периоду развития языков программирования
  111.  
  112. На заре компьютеризации (в начале 1950-х г.г.), машинный язык был единственным языком, большего человек к тому времени не придумал. Языки низкого уровня мало похожи на нормальный, привычный человеку язык. Большие, грамосткие программы на таких языках пишутся редко. Зато если программа будет написана на таком языке, то она будет работать быстро, занимая маленький объем и допуская минимальное количество ошибок. Чем ниже и ближе к машинному уровень языка, тем меньше и конкретнее задачи, которые ставятся перед каждой командой.
  113. С появлением языков высокого уровня программисты получили возможность больше времени уделять решению конкретной проблемы, не отвлекаясь особенно на весьма тонкие вопросы организации самого процесса выполнения задания на машине. Кроме того, появление этих языков ознаменовало первый шаг на пути создания программ, которые вышли за пределы научно-исследовательских лабораторий и финансовых отделов.
  114. Подводя итог данному периоду развития языков программирования, можно сделать вывод, что языки программирования высокого уровня (FORTRAN, ALGOL, LISP,COBOL и т.д. ) не похожи на язык ассемблера. Языки высокого уровня разработаны специально для того, чтобы можно было иметь дело непосредственно с задачей, решаемой программой. В этом качестве они иногда называются процедурными языками, поскольку описывают процедуру, используемую для решения задачи. Языки высокого уровня машинно-независимы. Программы же на языке ассемблера непосредственно относятся к той машине, на которой они должны выполняться.
  115. Глава 2
  116. Второй этап развития ЯП(1960— 1980 гг.)
  117.  
  118. Общий обзор исследуемого периода
  119. Период 60-х, 70-х и 80-х годов положил начало для развития нескольких десятков языков программирования, некоторые из которых применяются и сейчас, правда в учебных целях (например, Basic и Pascal), ведь эти 2 языка уже прожили больше 30 лет, а учебная необходимость в них так и не пропала. Не стоит забывать, что 1974му году мы обязаны за рождение SQL, ну и, конечно же, рождение полюбившегося всем языка C++ в 1983 году.
  120.  
  121. Язык программирования ПЛ/1.
  122. Научные и бухгалтерские программы не только использовали разные компьютеры, но ещё и писались на разных языках: научные — на Фортране, бухгалтерские — в основном на Коболе. Целью ПЛ/1 было создание языка, подходящего для обоих типов приложений. Другой целью было добавление конструкций для структурного программирования, взятых из Алгола-60, не поддерживаемых в то время ни Коболом, ни Фортраном.
  123. Для разработки ПЛ/1 был сформирован комитет, состоящий из программистов IBM и пользователей со всех концов США. Работа комитета длилась несколько месяцев. Изначально планировалось, что ПЛ/1 будет готов к использованию к моменту запуска System/360, но это не было выполнено.
  124. Язык изначально был назван NPL (NewProgrammingLanguage — «новый язык программирования»), но эта аббревиатура уже использовалось британской Национальной физической лабораторией (NationalPhysicsLaboratory). Поэтому название изменили на ПЛ/1.
  125. Хотя ПЛ/1 и не смог вытеснить Фортран и КОБОЛ (или даже сравниться с ними по популярности), тем не менее, он широко использовался во второй половине 1960-х и в 1970-х годах, особенно для бухгалтерских приложений, в основном из-за отсутствия в то время лучшей альтернативы. Как Фортран, так и КОБОЛ были бедны по своим возможностям даже для задач того времени. ПЛ/1, напротив, представлял богатый набор средств.
  126. Так, проект Multics, одна из первых попыток написать ОС на языке высокого уровня, использовал EPL (Early PL) — диалект ПЛ/1, разработанный в МТИ в 1964 году. Впоследствии для Multics был реализован «настоящий» ПЛ/1. Диалект XPL был использован для создания языка HAL/S, на котором программировались компьютеры космических кораблей проекта «Шаттл». Для ещё одного подмножества — PL/C — в Корнельском университете был создан уникальный компилятор CORC, который мог скомпилировать программу с любыми синтаксическими ошибками, путём исправления многих ошибок и преобразования оставшихся в объектный код (это свойство в значительной степени присуще также компиляторам IBM для мейнфреймов). Первая система резервирования авиабилетов, SABRE, была написана (по крайней мере, её предполагалось написать) на ПЛ/1. Ещё одним диалектом ПЛ/1 был PL/S, на котором фирма IBM написала в начале 1970-х годах операционную систему MVS. IBM до сих пор использует усовершенствованный PL/S (который ныне известен как PL/X) для работы над системами семейства z/OS для IBM System z. На базе ПЛ/1 был разработан язык PL/M, фактически представляющий собой приблизительный аналог языка Си с синтаксисом, близким к подмножеству ПЛ/1. Компилятор языка PL/M был разработан Гари Килдаллом, когда тот работал в Intel и использовался ею для написания операционной системы CP/M и большинства программного обеспечения под CP/M и MP/M. Позже Гари Килдалл основал фирму DigitalResearch, которая продавала компилятор к PL/M для CP/M и MS-DOS, который сам был написан на PL/M. PL/M широко использовался для написания программного обеспечения к компьютерам, использовавшим интеловские процессоры 8080, 8085 и Z-80.
  127. В СССР ПЛ/1 также был популярен в 1970-х и до первой половины 1990-х годов благодаря широкой распространённости ЕС ЭВМ, совместимых с мейнфреймами IBM. Кроме того, ПЛ/1 был реализован на БЭСМ-6 и Эльбрусе.
  128.  
  129. Язык программирования Basic
  130. Сразу следом за PL/1 в том же 1964 году был разработан, используемый в узком кругу лиц и сейчас, Basic (по рус. Бейский) профессорами Дартмутского коллелжа Томасом Курцем и Джоном Кемени. Язык изначально создавался для конкретно учебных целей, с помощью этого языка планировалось научить студентов-непрограммистов писать программы самостоятельно для решения своих же задач.
  131. Восемь основных принципов, которые соблюдались при создании Бейсика:
  132. 1. быть простым в использовании для начинающих;
  133. 2. быть языком программирования общего назначения;
  134. 3. предоставлять возможность расширения функциональности, доступную опытным программистам;
  135. 4. быть интерактивным;
  136. 5. предоставлять ясные сообщения об ошибках;
  137. 6. быстро работать на небольших программах;
  138. 7. не требовать понимания работы аппаратного обеспечения;
  139. 8. защищать пользователя от операционной системы.
  140. Язык был основан частично на Фортране II и частично на Алголе 60, с добавлениями, делающими его удобным для работы в режиме разделения времени и, позднее, обработки текста и матричной арифметики. Первоначально Бейсик был реализован на мейнфрейме GE-265 с поддержкой множества терминалов.
  141. Несмотря на то, что язык уже использовался на нескольких миникомпьютерах, его настоящее распространение началось с его появления на микрокомпьютере Альтаир 8800.
  142. Многие языки программирования были слишком большими, чтобы поместиться в небольшую память, которую пользователи таких машин могли себе позволить. Для машин с таким медленным носителем как бумажная лента (позднее — аудиокассета) и без подходящего текстового редактора такой небольшой язык как Бейсик был отличной находкой.
  143. В 1975 году Microsoft (тогда это были лишь двое — Билл Гейтс и Пол Аллен, при участии Монте Давидова), выпустила Altair BASIC. Затем его версии появились на другой платформе под лицензией и скоро в использовании были уже миллионы копий и вариантов; один из вариантов, Applesoft BASIC, стал стандартным языком на Apple II. Для операционной системы CP/M был создан диалект BASIC-80, надолго определивший развитие языка.
  144. В 1979 году Microsoft обсуждала с несколькими поставщиками компьютеров (включая IBM) лицензирование интерпретатора Бейсик на их машинах. Одна из версий (ROM BASIC) была включена в ПЗУ IBM PC — компьютер мог автоматически загружаться в Бейсик. Так как IBM не придавала тогда большого значения персональным компьютерам (основным полем её деятельности были мейнфреймы), то, вопреки своим принципам, она разрешила Microsoft продавать интерпретатор отдельно. Это сделало последнюю пионером в выпуске ПО нового поколения — не привязанного к конкретной аппаратуре и поставляемого отдельно от компьютера.
  145. Бейсик в полной мере испытал на себе такое хорошо известное в 1970—1980 явление, как массовое размножение версий и диалектов языка высокого уровня, в значительной степени несовместимых между собой. Причин этому было несколько. Поскольку язык не рассматривался как промышленный, никаких специальных усилий по его стандартизации не прилагалось, и для каждого компьютера создавалась своя реализация.
  146. Было создано несколько новых версий Бейсика для платформы IBM PC. Microsoft продавала Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и QuickBASIC. Borland, первоначально вышедшая на рынок со своим известным Turbo Pascal, в 1985 году выпустила основанную на той же программной среде систему Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC). Некоторые другие языки использовали хорошо известный синтаксис Бейсика в качестве основы, на которой строилась совершенно иная система (см. например, GRASS). Стремление увеличить производительность Бейсик-программ привело к появлению полноценных компиляторов (каким был, например, упомянутый Turbo Basic), а также «гибридных» систем, в которых при сохранении интерпретации как основной методики исполнения программы была реализована частичная компиляция «на лету», например, компиляция коротких циклов.
  147. В середине 1980-х Бейсик стал основным языком в сложных моделях программируемых калькуляторов, которые как раз к этому времени достигли мощности, допускающей применение полноценного языка высокого уровня.
  148. Сам факт, что многие производители, не сговариваясь, выбрали в качестве основы ЯВУ калькуляторов именно Бейсик, лучше всего говорит о распространённости и популярности этого языка в указанное время. Так, Бейсик был встроен в советский калькулятор «Электроника МК-85» и все его более поздние модели. Применение Бейсика в качестве основного ЯВУ программируемых калькуляторов продолжается по сей день.
  149. Вторую жизнь Бейсик получил с появлением VisualBasic от Microsoft.
  150. Хотя и трудно согласиться, что этот язык — действительно Бейсик; он явился логическим завершением эволюции языка и, несмотря на сохранение привычных ключевых слов, по структуре и набору возможностей ближе к Паскалю, чем к первоначальному Бейсику.
  151. Но как инструмент для быстрого создания практически полезных программ для Windows при невысокой квалификации программиста он оказался очень кстати и быстро стал одним из наиболее используемых языков на платформе Windows. Не последнюю роль здесь сыграла удачная реализация включённого в систему построителя графического интерфейса пользователя, скрывавшая от разработчика детали программирования Windows GUI и позволявшая сосредоточиться на задаче. Microsoft создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант VisualBasicforApplications (VBA) был встроен в MicrosoftExcel 5.0 в 1993 году, затем в Access 95 в 1995 году, а после и во все остальные инструменты, входящие в пакет MicrosoftOffice. InternetExplorer 3.0 и выше, а также MicrosoftOutlook, включали интерпретатор VBScript.
  152.  
  153. Язык программирования Pascal
  154. В 1970-м году был разработан Паскаль, тот самый, который и сегодня изучается в школьной программе Информатики и на котором объясняется консольное программирование.
  155. Язык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа.
  156. Первая публикация Вирта о языке датирована 1970 годом, представляя язык, автор указывал в качестве цели его создания — построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные.
  157. Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования, с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию. Результат этой работы — язык Модула-2.
  158. Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Вирта, язык должен способствовать дисциплинированному программированию, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
  159. К 1980-м годам Паскаль стал основой для многочисленных учебных программ, в отдельных случаях на его основе были созданы специализированные обучающие языки программирования, так, в начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники Андрей Ершов разработал алголо-паскалеподобный «учебный алгоритмический язык».
  160. Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.
  161. Диалекты Паскаля, применяемые в Turbo Pascal для DOS и Delphi для Windows, стали популярны из-за отсутствия других успешных коммерческих реализаций.
  162.  
  163. Язык программирования C (Си)
  164. Следом наступает год рождения языка программирования C — отца, используемого и сегодня C++.
  165. Язык программирования Си был разработан в лабораториях BellLabs в период с 1969 по 1973 годы. Согласно Ритчи, самый активный период творчества пришёлся на 1972 год.
  166. Язык назвали «Си» (C — третья буква латинского алфавита), потому что многие его особенности берут начало от старого языка «Би» (B — вторая буква латинского алфавита). Существует несколько различных версий происхождения названия языка Би. Кен Томпсон указывает на язык программирования BCPL, однако существует ещё и язык Bon, также созданный им, и названный так в честь его жены Бонни.
  167. К 1973 году язык Си стал достаточно силён, и большая часть ядра UNIX, первоначально написанная на ассемблере PDP-11/20, была переписана на Си. Это было одно из самых первых ядер операционных систем, написанное на языке, отличном от ассемблера; более ранними были лишь системы Multics (написана на ПЛ/1) и TRIPOS (написана на BCPL).
  168. В 1978 году Брайан Керниган и ДеннисРитчи опубликовали первую редакцию книги «Язык программирования Си». Эта , известная среди программистов как «K&R», книга служила многие годы неформальной спецификацией языка.
  169. Версию языка Си, описанную в ней, часто называют «K&R C». Вторая редакция этой книги посвящена более позднему стандарту ANSI C, описанному ниже.
  170. K&R ввёл следующие особенности языка:
  171. ⦁ структуры (тип данных struct);
  172. ⦁ длинное целое (тип данных longint);
  173. ⦁ целое без знака (тип данных unsignedint);
  174. После публикации K&R C в язык было добавлено несколько возможностей, поддерживаемый компиляторами AT&T и некоторых других производителей:
  175. ⦁ функции, не возвращающие значение (с типом void) и указатели, не имеющие типа (с типом void *);
  176. ⦁ функции, возвращающие объединения и структуры;
  177. ⦁ имена полей данных структур в разных пространствах имён для каждой структуры;
  178. ⦁ присваивания структур;
  179. ⦁ спецификатор констант (const);
  180. ⦁ стандартная библиотека, реализующая большую часть функций, введённых различными производителями;
  181. ⦁ перечислимый тип (enum);
  182. ⦁ дробное число одинарной точности (float).
  183. В конце 1970-х годов Си начал вытеснять Бейсик с позиции ведущего языка для программирования микрокомпьютеров. В 1980-х годах он был адаптирован для использования в IBM PC, что привело к резкому росту его популярности. В то же время Бьёрн Страуструп и другие в лабораториях BellLabs начали работу по добавлению в Си возможностей объектно-ориентированного программирования. Язык, который они в итоге сделали, C++, оказал большое влияние на разработку ПО, но так и не смог сравняться по популярности с Си, особенно в UNIX-подобных системах.
  184. В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для разработки стандартной спецификации Си. По окончании этого долгого и сложного процесса в 1989 году он был наконец утверждён как «Язык программирования Си» ANSI X3.159-1989. Эту версию языка принято называть ANSI C или C89. В 1990 году стандарт ANSI C был принят с небольшими изменениями Международной организацией по стандартизации (ISO) как ISO/IEC 9899:1990.
  185. Одной из целей этого стандарта была разработка надмножества K&R C, включающего многие особенности языка, созданные позднее.
  186. Однако комитет по стандартизации также включил в него и несколько новых возможностей, таких как прототипы функций (заимствованные из C++) и более сложный препроцессор.
  187.  
  188. SEQUEL и SQL
  189. В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBMSystemR, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как StructuredEnglishQUEryLanguage — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (AmericanNationalStandardsInstitute), официальным произношением стало [,eskju:' el] — эс-кью-эл. Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и РэйБойс (RayBoyce). Пэт Селинджер (PatSelinger) занималась разработкой стоимостного оптимизатора (cost-basedoptimizer), Рэймонд Лори (RaymondLorie) занимался компилятором запросов.
  190. В 1983 году Международная организация по стандартизации (ISO) и Американский национальный институт стандартов (ANSI) приступили к разработке стандарта языка SQL. По прошествии множества консультаций и отклонения нескольких предварительных вариантов в 1986 году ANSI представил свою первую версию стандарта, описанного в документе ANSI X3.135-1986 под названием «DatabaseLanguage SQL» (Язык баз данных SQL). Неофициально этот стандарт SQL-86 получил название SQL1.
  191. Год спустя, была завершена работа над версией стандарта ISO 9075-1987 под тем же названием. Разработка этого стандарта велась под патронажем Технического Комитета TC97 (англ. TechnicalCommittee TC97), областью деятельности которого являлись процессы вычисления и обработки информации (англ. ComputingandInformationProcessing). Именно его подразделение, именуемое как Подкомитет SC21 (англ. Subcommittee SC21) курировало разработку стандарта, что стало залогом идентичности стандартов ISO и ANSI для SQL1 (SQL-86).
  192. Со временем к стандарту накопилось несколько замечаний и пожеланий, особенно с точки зрения обеспечения целостности и корректности данных, в результате чего в 1989 году данный стандарт был расширен, получив название SQL89. В частности, в него была добавлена концепция первичного и внешнего ключей. ISO-версия документа получила название ISO 9075:1989 «DatabaseLanguage SQL withIntegrityEnhancements» (Язык баз данных SQL с добавлением контроля целостности). параллельно была закончена и ANSI-версия.
  193. Сразу после завершения работы над стандартом SQL1 в 1987 году была начата работа над новой версией стандарта, который должен был заменить стандарт SQL89, получив название SQL2, поскольку дата принятия документа на тот момент была неизвестна. Таким образом, фактически SQL89 и SQL2 разрабатывались параллельно.
  194. Новая версия стандарта была принята в 1992 году, заменив стандарт SQL89. Новый стандарт, озаглавленный как SQL92, представлял собой по сути расширение стандарта SQL1, включив в себя множество дополнений имевшихся в предыдущих версиях инструкций.
  195. Следующим стандартом стал SQL:1999 (SQL3). В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже (SQL:2008).
  196.  
  197. Язык программирования C++
  198. Период 80-х годов особо ничего не принес в развитие языков программирования, если говорить о применяемых языках сегодня, разве что было внесено много доработок в созданные раннее языки программирования, такие как C, Basic и Pascal, однако, самой интересной доработкой для нас является модификация C в C++.
  199. Язык возник в начале 1980-х годов, когда сотрудник фирмы BellLabs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в BellLabs над задачами теории очередей (в приложении к моделированию телефонных вызовов), он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности.
  200. Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C withclasses» («Си с классами»), стали доступны с 1980 года.
  201. При создании C++ Бьёрн Страуструп хотел
  202. ⦁ Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
  203. ⦁ Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
  204. ⦁ Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
  205. ⦁ Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.
  206. ⦁ Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
  207. ⦁ Избегать особенностей, которые зависят от платформы или не являются универсальными.
  208. ⦁ «Не платить за то, что не используется» — никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
  209. ⦁ Не требовать слишком усложнённой среды программирования.
  210. К 1983 году в язык были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением свободной памятью, улучшенная проверка типов и новый стиль комментариев (//). Получившийся язык уже перестал быть просто дополненной версией классического C и был переименован из C с классами в «C++». Его первый коммерческий выпуск состоялся в октябре 1985 года.
  211. Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного инкремента C ++ (увеличение значения переменной на единицу).
  212. До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества.
  213. Кроме того, существует огромное количество библиотек C++, не входящих в стандарт. В программах на C++ можно использовать многие библиотеки C.
  214. Стандартизация определила язык программирования C++, однако за этим названием могут скрываться также неполные, ограниченные, варианты языка.
  215.  
  216. Вывод по главе
  217. Как мы видим период последнего описанного тридцатилетия положил начало для многих отраслей программирования, в частности, для учебного, были созданы все условия для того, чтобы будущий программист мог легко и постепенно привыкать к языкам программирования, появилось очень много языков, коды которых уже очень далеки от машинных кодов.
  218. Если говорить о учебных языках программирования, то стоит обратить внимания, что многими из них пользуются и до сих пор, например Basic и Pascal, и если Basic уже используется только в версии Object Basic, то в Pascal'e учат программировать в консоле и сегодня, что говорит о простоте интерфейса для начинающих программистов.
  219. Однако, самым знаменательным событием последнего периода является появление C++, который поднял программирование в целом на одну ступеньку вперед и который в будущем положит начало для уже используемых сегодня в серьезных целях языков программирования, таких как последняя версия Java и C#.
  220.  
  221. Глава 3
  222. Третий этап развития языков программирования (1990 гг. – настоящее время)
  223.  
  224. Общий обзор исследуемого периода
  225. Персональные компьютеры сделали информационные технологии частью массовой культуры. И тем не менее, уже довольно длительная история развития персональных компьютеров не знала ничего, подобного Java. Что изменилось в мире в последние годы, почему этот феномен стал возможен?
  226. Изменился Интернет. Он стал доступен миллионам людей, далеких от технических проблем. Число пользователей Интернет по порядку величины уже не отличается от числа пользователей персональных компьютеров и продолжает взрывообразно расти. Одновременно Интернет обеспечил такую скорость распространения новинок информационных технологий, которую не могли и никогда не смогут дать традиционные каналы сбыта.
  227. Язык Java произошел от языка программирования Oak (а не от C++, как думают многие). Oak был приспособлен для работы в Internet и затем переименован в Java.
  228. Синтаксис Java близок к синтаксису языка C++. Унаследовав самое лучшее от языка программирования C++, язык Java при этом избавился от некоторых недостатков C++, в результате чего на нем стало проще программировать.
  229. Огромное преимущество Java заключается в том, что на этом языке можно создавать приложения, способные работать на различных платформах. К сети Internet подключены компьютеры самых разных типов - Pentium PC, Macintosh, рабочие станции Sun и так далее. Даже в рамках компьютеров, созданных на базе процессоров Intel, существует несколько платформ, например, MicrosoftWindows версии 3.1, Windows 95, Windows NT, OS/2, Solaris, различные разновидности операционной системы UNIX с графической оболочкой X­Windows. Между тем, создавая сервер Web в сети Internet, хотелось бы, чтобы им могло пользоваться как можно большее число людей. В этом случае выручают приложения Java, предназначенные для работы на различных платформах и не зависящие от конкретного типа процессора и операционной системы.
  230. Программы, составленные на языке программирования Java, можно разделить по своему назначению на две большие группы.
  231. К первой группе относятся приложения Java, предназначенные для автономной работы под управлением специальной интерпретирующей машины Java. Реализации этой машины созданы для всех основных компьютерных платформ.
  232. Вторая группа - это так называемые аплеты (applets). Аплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.
  233. Язык Java является объектно-ориентированным и поставляется с достаточно объемной библиотекой классов. Так же как и библиотеки классов систем разработки приложений на языке C++, библиотеки классов Java значительно упрощают разработку приложений, представляя в распоряжение программиста мощные средства решения распространенных задач. Поэтому программист может больше внимания уделить решению прикладных задач, а не таких, как, например, организация динамических массивов, взаимодействие с операционной системой или реализация элементов пользовательского интерфейса.
  234.  
  235. JAVA, JOE, NEO
  236. В узком смысле слова Java - это объектно-ориентированный язык, напоминающий C++, но более простой для освоения и использования. В более широком смысле Java - это целая технология программирования, изначально рассчитанная на интеграцию с Web-сервисом, то есть на использование в сетевой среде, ПосколькуWeb-навигаторы существуют практически для всех аппаратно-программных платформ, Java-среда должна быть как можно более мобильной, в идеале полностью независимой от платформы.
  237. С целью решения перечисленных проблем были приняты, помимо интеграции с Web-навигатором, два других важнейших постулата:
  238. ⦁ Была специфицирована виртуальная Java-машина, на которой должны выполняться (интерпретироваться) Java-программы. Определены ее архитектура, представление элементов данных и система команд. Исходные Java-тексты транслируются в коды этой машины. Тем самым, при появлении новой аппаратно-программной платформы в портировании будет нуждаться только Java-машина; все программы, написанные на Java, пойдут без изменений.
  239. ⦁ Определено, что при редактировании внешних связей Java-программы и при работе Web-навигатора прозрачным для пользователя образом может осуществляться поиск необходимых объектов не только на локальной машине, но и на других компьютерах, доступных по сети (в частности, на WWW-сервере). Найденные объекты загружаются, а их методы выполняются затем на машине пользователя.
  240. Несомненно, между двумя сформулированными положениями существует тесная связь. В компилируемой среде трудно как дистанцироваться от аппаратных особенностей компьютера, так и реализовать прозрачную динамическую загрузку по сети. С другой стороны, прием объектов извне требует повышенной осторожности при работе с ними, а, значит, и со всеми Java-программами.
  241. Принимать необходимые меры безопасности проще всего в интерпретируемой среде. Вообще, мобильность, динамизм и безопасность - спутники интерпретатора, а не компилятора.
  242. Принятые решения сделали Java-среду идеальным средством разработки клиентских компонентов Web-систем. Особо отметим прозрачную для пользователя динамическую загрузку объектов по сети. Из этого вытекает такое важнейшее достоинство, как нулевая стоимость администрирования клиентских систем, написанных на Java. Достаточно обновить версию объекта на сервере, после чего клиент автоматически получит именно ее, а не старый вариант. Без этого реальная работа с развитой сетевой инфраструктурой практически невозможна. С другой стороны, при наличии динамической загрузки действительно возможно появление устройств класса Java-терминалов, изначально содержащих только WWW-навигатор, а все остальное (и программы, и данные) получающих по сети.
  243. Здесь уместно отметить замечательную точность в выборе основных посылок проекта Java. Из минимума предположений вытекает максимум новых возможностей при сохранении практичности реализации.
  244. В то же время, интеграция с WWW-навигатором и интерпретируемая природа Java-среды ставят вполне определенные рамки для реального использования Java-программ (хотя, конечно же, язык Java не менее универсален, чем, скажем, C++). Например, известно, что интерпретация, по сравнению с прямым выполнением, на 1-2 порядка медленнее. Применение компиляции "на лету" и специализированных Java-процессоров, несомненно, улучшит ситуацию, но пока использование Java на серверной стороне представляется проблематичным.
  245. Хотя технология Интранет, основанная на использовании Web-сервиса в качестве информационной основы организации, является огромным шагом вперед, существуют и другие сервисы, как унаследованные, так и современные (например, реляционные СУБД), которые обязательно должны входить в состав корпоративной системы.
  246. Если вся связь между клиентами и упомянутыми серверами будет осуществляться через сервер WWW, последний станет узким местом, а решения Интранет рискуют лишиться такого важнейшего достоинства, как масштабируемость. Значит, необходима прямая связь между клиентскими системами, написанными на языке Java, и произвольными сервисами.
  247. Как реализовать такую связь?
  248. В общем виде ответ очевиден - нужны средства для полноценной интеграции Java в распределенную объектную среду. На серверной стороне компания SunMicrosystems имеет соответствующую технологию - NEO (NEtworkedObjects, сетевые объекты). технология NEO удовлетворяет спецификациям OMG (ObjectManagementGroup), являющимся промышленным стандартом. При реализации корпоративных информационных систем с использованием NEO наиболее естественным представляется использование трехуровневой архитектуры с серверами приложений,
  249. построенными на объектныхпринципах, на втором уровне и с базовыми и унаследованными серверами на третьем уровне.
  250. К сожалению, столь общий ответ никак не помогает осуществлять прямую связь между Java-клиентом и NEO-сервером. Конечно, можно воспользоваться стандартными средствами программирования в сетевой среде (а Java допускает использование библиотек, написанных на C/C++, равно как и вставку машинных кодов), но если бы это было единственной возможностью, Java рисковала остаться на уровне "оживлялок".
  251. В конце марта компания SunSoft объявила о появлении нового продукта с именем Joe, как раз и предназначенного для существенного облегчения встраивания Java-клиентов в информационные системы Интранет, построенные в трехуровневой архитектуре с использованием среды NEO.
  252.  
  253. Язык C#
  254. Язык C# появился на свет в июне 2000 г. в результате работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом (Anders Hejlsberg).
  255. Этот человек известен как автор одного из первых компилируемых языков программирования для персональных компьютеров IBM - Turbo Pascal. Наверное, на территории бывшего Советского Союза многие разработчики со стажем испытали на себе очарование и удобство использования этого продукта. Кроме того, во время работы в корпорации Borland Андерс Хейлсберг прославился созданием интегрированной среды Delphi (он руководил этим проектом вплоть до выхода версии 4.0).
  256. Появление языка C# и инициативы .NET отнюдь не случайно пришлось на начало лета 2000 г. Именно к этому моменту компания Microsoft подготовила промышленные версии новых компонентных технологий и решений в области обмена сообщениями и данными, а также создания Internet-приложений (COM+, ASP+, ADO+, SOAP, BiztalkFramework).
  257. .NET представляет собой новую платформу, новый API для программирования в Windows, а С# е новый язык, созданный с нуля, для работы с этой платформой, а также для извлечения всех выгод из прогресса сред разработки и нашего понимания принципов объектно-ориентированного программирования в течение последних 20 лет.
  258. Необходимо отметить, что обратная совместимость не потеряна. Существующие программы будут выполняться, а платформа .NET была спроектирована таким образом, чтобы она могла работать с имеющимся программным обеспечением. Связь между компонентами в Windows сейчас почти целиком осуществляется при помощи СОМ. С учетом этого .NET обладает способностью (а) создавать оболочки (wrappers) вокруг существующих компонентов СОМ, так что компоненты .NET могут общаться с ними, и (б) создавать оболочки вокруг компонентов .NET, что позволяет им выглядеть как обычные СОМ-компоненты.
  259. Авторы C# стремились создать язык, сочетающий простоту и выразительность современных объектно-ориентированных языков (вроде Java) c богатством возможностей и мощью C++. По словам Андерса Хейлсберга, C# позаимствовал большинство своих синтаксических конструкций из C++. В частности, в нем присутствуют такие удобные типы данных, как структуры и перечисления (другой потомок C++ -- Java -- лишен этих элементов, что создает определенные неудобства при программировании). Синтаксические конструкции С# унаследованы не только от C++, но и от VisualBasic. Например, в С#, как и в VisualBasic, используются свойства классов. Как C++, С# позволяет производить перегрузку операторов для созданных вами типов Java не поддерживает ни ту, ни другую возможность). С# — это фактически гибрид разных языков. При этом С# синтаксически не менее (если не более) чист, чем Java, так же прост, как VisualBasic, и обладает практически той же мощью и гибкостью, что и C++.
  260. Особенности С#:
  261. - Полный и хорошо определенный набор основных типов.
  262. - Встроенная поддержка автоматической генерации XML-документации. Автоматическое освобождение динамически распределенной памяти.
  263. - Возможность отметки классов и методов атрибутами, определяемыми пользователем. Это может быть полезно при документировании и способно воздействовать на процесс компиляции (например, можно пометить методы, которые должны компилироваться только в отладочном режиме).
  264. - Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).
  265. - Указатели и прямой доступ к памяти, если они необходимы. Однако язык разработан таким образом, что практически во всех случаях можно обойтись и без этого. Поддержка свойств и событий в стиле VB.
  266. - Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).
  267. - Возможность использования С# для написания динамических web-страниц ASP.NET.
  268. Одной из областей, для которых не предназначен этот язык, являются критичные по времени и высокопроизводительные программы, когда имеет значение, занимать исполнение цикла 1000 или 1050 машинных циклов, и освобождать ресурсы требуется немедленно. C++ остается в этой области наилучшим из языков низкого уровня. В С# отсутствуют некоторые ключевые моменты, необходимые для создания высокопроизводительных приложений, в частности подставляемые функции и деструкторы, выполнение которых гарантируется в определенных точках кода.
  269.  
  270. Вывод по главе
  271.  
  272. Хотя современные языки программирования похожи друг на друга, идентичность их далеко не полная. Каждый содержит конструкции, присущие только ему. Если мы попытаемся начертить схему пересечения семантики языков программирования, то можем получить изображение, приведенное на рисунке.
  273. На нем видно, что существует общая семантическая зона, в которую входят конструкции, принадлежащие всем языкам программирования (или большинству из них). Таким образом, семантику каждого языка программирования можно условно поделить на «область пересечения» (конструкции общие для всех языков) и «область объединения» (конструкции специфические для данного языка).
  274.  
  275. Заключение
  276.  
  277. Проанализировав путь развития основных языков программирования, можно выделить следующие постоянно присутствующие, сменяющие друг друга тенденции:
  278. • Смещение акцентов от частного (программирование деталей), к общему (программирование более крупных компонент)
  279. • Развитие и совершенствование инструментария программиста (языков программирования высокого уровня и рабочей среды)
  280. • Возрастание сложности программных и информационных систем
  281. Но самой важной в развитии языков программирования на данный момент является тенденция: языки развиваются в сторону все большей и большей абстракции от реальных машинных команд. К чему это приведет? К увеличению скорости разработки программ, повышению уровня надежности программирования, сопровождающиеся при этом падением эффективности. Но это того стоит. С низкой эффективностью можно бороться путем создания более быстрых компьютеров. Если требования к памяти слишком высоки, можно увеличить ее объем. Это, конечно, требует времени и средств, но это решаемо. А вот с ошибками в программах можно бороться, а еще лучше максимально затруднить их совершение. И именно на это направлены все исследования в области языков программирования. А с потерей эффективности придется смириться.
  282. Можно определенно сказать, что наиболее перспективными являются языки программирования, приближенные к человеческой логике.
  283. Список источников
  284.  
  285. Информатика под редакцией Е.К. Хеннера, М.,Академия,2004г.
  286. Информатика.Базовый курс под ред. С. В. Симоновича, С.-П «Питер» 2005г.
  287. Языки программирования. Обзор-ликбез. Хакер №4,с.36-40.
  288. Р.Богатырев, Природа и эволюция сценарных языков, Мир ПК, №11,2001
  289. Г.Буг, Объектно-ориентированный анализ и проектирование
  290. http://citforum.ru
  291. http://school.keldysh.ru/sch444/MUSEUM /LANR/evol.htm
  292. http://ru.wikipedia.org
  293. http://www.levenez.com/lang
  294. http://tiobe.com
  295. http://cybern.ru/category/java/begin-java
  296. http://vbbook.ru/
  297. Современный Фортран под редакцией С. Немнюгина, О. Стесик, 2004г.
  298. PHP 5, под редакцией Д.Котелкова, А. Костарева, БХВ-Петербург, 2008г.
  299. Javascript, ДевидФлэнаган (5 издание)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement