ИНДИВИДУАЛЬНЫЙ ПРОЕКТ
на тему: «Мертвые языки программирования»
Выполнил:
Ученик 10 (1) класса
Черников Данила Григорьевич
Руководитель:
Купенова Гегани Мгеровна 2
Омск 2018
Оглавление
Введение.......................................................................................................................3
План работы над проектом..........................................................................................5
Интеллект-карта проекта «Мёртвые языки программирования»............................7
Первичный тест............................................................................................................8
5.Анализ теста..............................................................................................................8
Хронологическая таблица.........................................................................................10
PHP.........................................................................................................................26
JavaScript...............................................................................................................27
jQuery....................................................................................................................29
Go (часто также Golang)......................................................................................29
HTML 5...................................................................................................................29
1. Программирование. Язык программирования......................................................34
2. История возникновения языков программирования............................................35
2.1 Первопроходцы в программировании.............................................................35
2.2 Первые языки программирования. Особенности первых языков
программирования..................................................................................................37
3.Эволюция
языков
программирования.....................................................................................................46
4. Двенадцать языков программирования, которые потрясли мир. Мёртвый язык
программирования.....................................................................................................58
5. Причины исчезновения языков программирования.............................................61
6. Диалекты. Подмножества. Расширение...............................................................63
7. Контрольно-измерительный материал.................................................................64
Заключение.................................................................................................................66
Список использованной литературы........................................................................68
программирования.
языков
Классификация 3
Введение
Вы когданибудь использовали приложение на мобильном телефоне или
программу на компьютере? А задумывались ли вы при этом, на каком языке
программирования написаны сайты, интернет страницы, скрипты? В наше время
знание языков программирования не просто показатель образованности человека,
а и необходимость. Если вы хотите идти в ногу со временем, для вас просто
обязательно знание хотя бы одного языка.
Языки программирования дают возможность создавать средства для
работы, общения и творчества. В мире существуют тысячи языков, позволяющие
вести полноценный диалог с компьютером, однако, несмотря на такое
разнообразие, число языков, на которых пишет большинство около десятка.
Языки программирования вынуждены преодолевать те же трудности, что и
многие фирмы, и новые идеи. Зачастую успех языка программирования зависит
не только от его характеристик и применяемых технологий, но и от появления в
нужном месте, в нужное время. Успех языка может быть столь же непостоянным,
сколь непредсказуемыми могут быть причины его провала.
Актуальность проекта:
Информационные технологии являются одной наиболее быстро
развивающихся областей современной жизни. Они появляются едва не каждый
день. И в погоне за прогрессом, подчас полезно остановиться, вспомнить историю
и задуматься о будущем. С тем, чтобы со свежими силами вновь окунуться в
работу, осваивать новые технологии.
К выбору данной теме меня побудило незнакомое понятие «Мертвые языки
программирования». Данный проект позволит приблизиться к истокам
программирования. И дать ответ на основной вопрос: почему одни языки
программирования остались на стадии зарождения и про них все забыли, а другие 4
легли в основу новых, которые живут и позволяют человечеству развивать
информационные технологии?
Цель проекта:
Познакомиться с началом развития программирования, с первыми языками.
Определить понятие «Мертвые языки программирования». Исследовать причины
исчезновения языков программирования.
Задачи проекта:
Изучить историю развития языков программировании;
Исследовать причины краха языков программирования;
Провести стартовую и итоговую диагностику знаний по теме:
«Мёртвые языки программирования»;
Создание электронного учебного пособия и буклета по теме:
«Мёртвые языки программирования».
Практическая значимость проекта заключается в том, что возможно
использовать продукты данного проекта (электронное учебное пособие и буклет)
на уроках «Информатика и ИКТ» при изучении раздела «Алгоритмизация и
программирование». 5
План работы над проектом 6 Интеллекткарта проекта «Мёртвые языки программирования»
7 8
Первичный тест
Цель теста: Выявить степень заинтересованности в теме: «Языки
программирования».
1.Какие языки программирования Вы знаете?
Паскаль
Delphi
C++
Другие
2.Какой уровень знаний языков программирования у Вас?
Отсутствует
Минимальный
Средний
Высокий
3.Для чего нужно изучать языки программирования?
Для общего развития
Нужно по учебной программе
Другое
4.Знакомо ли Вам понятие «Мёртвые языки программирования»?
Да
Нет
5.Каких достижений Вы
хотели бы добиться, изучая языки
программирования?
5.Анализ теста
В тестировании принимало участие 14 человек. 9
При подведении итогов, было выявлено, что проектная работа будет
актуальна. 10
Хронологическая таблица
Год
создан
ия
Создатели,
география языка
1837 Чарльз
Бэббидж и
Ада Лавлэйс
Особенности
установке
Первые программы заключались
в
ключевых
переключателей на передней
панели
вычислительного
устройства. Очевидно, таким
способом можно было составить
только небольшие программы.
Немецкий инженер Цузе
разработал этот язык для ЭВМ
Z4, но ни компилятора, ни
интерпретатора
для него
написано не было (поскольку и
язык, и ЭВМ он разрабатывал в
одиночку).
числовой
Электронный
интегратор и вычислитель) —
первый электронный цифровой
вычислитель общего назначения,
было
который
можно
перепрограммировать
для
решения широкого спектра
задач.
По своей сути, это была
система обозначений для
быстрого ввода в ЭВМ
алгебраических выражений.
Так,
например,
выражение
ии№
п/п
Название
языка
Коды
операций
аналитической
машины
Плюнкалкюль
1946 Цузе
Краткий код
ENIAC
1946 Ричард
Клиппинджер,
Джон
фон
Нейман по
трудам Алана
Тьюринга
1947 Кэтлин Бус
Язык
ассемблера
ARC
"Краткий код" 1949 Мочли
П
Е
Р
В
О
Е
П
О
К
О
Л
Е
Н
И
Е
В
Т
О
Р
О
Е
П
О
К
О
Л
Е
Н
И 11
Е
Т
Р
Е
Т
Ь
Е
П
О
К
О
Л
Е
Н
И
Е
Идея
подпрограммы
1949 Хоппер
Ассемблер
1950 Хоппер
АВТОКОД
1952 Гленн
А0
1952 Хоппер
кодировалось
A=B+C
следующей фразой: S0 07 S1 13
S3.
"Краткий код" работал как
примитивный интерпретатор.
Программисты
под
руководством Хоппер впервые
во всем мире реализовали идею
подпрограмм как многократно
используемую
последовательность
команд.
color=#000000 Тогда они просто
переписывали куски машинного
кода друг у друга из блокнотов.
Первый ассемблер представлял
из себя систему мнемонических
обозначений, объединённую с
библиотекой подпрограмм.
первым
Автокод
транслятором
полноценным
(компилятором),
он
транслировал мнемоническую
схему в машинные коды.
Автокод
не
получил
распространения,
его
создатель работал на закрытом
проекте.
т.к.
был
т.е.
А0 был первым полноценным
получившим
ассемблером,
широкую известность.
Он
предоставлял услуги как
компилятора,
и
компоновщика.
так
По сути, А0 представлял
первое промышленное средство
для создания других программ.
Компоновщик по указанному
выполнял
идентификатору
заданной
загрузку
подпрограммы с магнитной
ленты в указанный адрес памяти.
Затем он настраивал адреса 12
загруженной подпрограмму на
адрес загрузки.
А0 положил начало целой серии
ассемблеров,
разработанных
Хоппер для больших ЭВМ.
Впоследствии этот ассемблер
улучшался и расширялся, были
выпущены ассемблеры А1, А2
и А3.
Хоппер создала первый
ассемблер, который понимал
мнемонические команды.
В рекламных целях он понимал
команды на трёх языках
( английском,
немецком и
французском ).
Был
первым
программирования
уровня.
языком
высокого
Разрабатывался компанией
IBM для её новой ЭВМ.
B0
1956 Хоппер
ФОРТРАН
1958 Бэкус
Коллектив под руководством
Бэкуса разработал не только
спецификацию языка, но и
создал компилятор для него.
Это обеспечило достаточно
быструю
широкую
распространенность языка.
и
Кроме того, Фортран был
первым языком, для которого
были разработаны компиляторы
для разных ЭВМ (т.е. программа
могла выполняться на различных
ЭВМ).
Лучше всего Фортран подходит
для решения инженерных и
расчетных задач.
АЛГОЛ – 58
1958 Европейский
международн
ый комитет
Сыграл большую роль в теории,
но
практического
программирования сейчас почти
не используется. Спецификация
для 13
была
языка
совершенно
нечитабельной и немедленно
принесла проекту репутацию
чересчур «навороченного». Был
сложным,
громоздким и
содержал в себе множество
загадочных операторов, так же
верно, как и то, что это был
первый
действительно
универсальный
язык.
Скоропостижно скончался, так и
не успев толком пожить.
Кобол
1959 Грейс Хоппер
АЛГОЛ – 60
1960 Бэкус
АПТ
1960 Дуглас Росс
Был создан для решения
экономических задач.
Язык,
ориентированный на общий
бизнес; в значительной мере
вышел из употребления. Был
задуман как основной язык для
массовой обработки данных в
сферах управления и бизнеса.
Новая спецификация Алгола,
которую отличали следующие
идеи:
Блочная структура
Возможность рекурсии
Описание с использованием БНФ
Первый язык для управления
станками, был создан в МТИ
(Массачусетском
Технологическом Институте).
ИПЛ
1960 Аллен Ньюэл Позволял
манипулировать
словами и выражениями на естественном языке (был создан
в МТИ).
В этом языке впервые появилось
понятие списка.
Алгоритмический язык для
обработки символов. Язык для
исследований
области
искусственного
интеллекта,
предназначенный для работы со
списками и лямбда –
выражениями (был создан в
МТИ).
Алгоритмический язык для
обработки
текстовой
информации
в
14
ЛИСП
1960 Маккарти
1962
1967
Ральф
Грисвольд,
Иван
Полонский и
Дэвид Фарбер
Снобол
ПЛ/1
БЭЙСИК
1964 Рэдин (IBM) Универсальный
язык
программирования,
разрабатывавшийся для системы
System/360. многоцелевой язык;
сейчас почти не используется.
с
технических,
1964 Кемени, Курц Был разработан в Дартмундском
колледже как язык для обучения
работе
компьютером
студентов всех специальностей
(и
и
гуманитарных).
несмотря на
многие недостатки и изобилие
плохо совместимых версий
самый популярный по числу
пользователей.
Широко
употребляется при написании
простых программ. Применялся
в бизнесе и др. областях.
Одновременно с разработкой
языка велась разработка ЭВМ,
которая работала бы не в
пакетном режиме, а в режиме
разделения времени.
Новый стандарт языка, который
был предложен Хоаром и
АЛГОЛ – W 1965 Хоар, Вирт 15
ЛОГО
1967 Пейперт
АЛГОЛ – 68
1968 Комитет по
языку
высокого
уровня IFIP
(International
Federation for
Information
Processing),
Международн
ая федерация
по обработке
информации
обучения
и
Виртом как альтернатива
существующей спецификации
(буква W – face="Times New
Roman" от фамилии Вирт).
младших
Для
Отличается
школьников.
богатыми
простотой
возможностями.
Язык для
управления черепашкой (был
разработан в МТИ)
Считается громоздким и плохо
запоминающимся
языком.
Именно он стал «идейным
вдохновителем» для создателей
С и Bourne Shell. Благодаря
ALGOL 68 параллельная
обработка данных упростилась
до такой степени, что даже
современные языки типа Java и С
до сих пор не добрались до его
уровня.
Скоропостижно скончался, так и
не успев толком пожить.
Благодаря
невнятности
спецификации членам комитета
разработчиков ничего не стоило
утопить проект еще до того, как
люди смогли реально оценить его
достоинства и недостатки.
AПЛ
1969 Кеннет
Айверсон
( IBM)
Очень
компактный
универсальный
язык
программирования с очень
широким синтаксисом.
ПАСКАЛЬ
1970 Вирт
Был разработан Виртом как
противопоставление Алголу68.
Язык
высокой
структурированностью.
с
До сих пор – лучший язык для
обучения программированию.
Ч
Е
Т
В
Ё
Р
Т
О
Е
П
О
К
О
Л
Е
Н
И
Е 16
ФОРТ
1971 Мур
С
1972 Ричи,
Bell Lab.
Не
Кан,
Язык Паскаль первоначально
разрабатывался как учебный, и,
действительно,
сейчас он
является одним из основных
языков
обучения
программированию в школах и
вузах. Однако, качества его в
совокупности оказались столь
высоки,
что им охотно
пользуются и профессиональные
программисты.
менее
впечатляющей, в том числе и
удачи добился
финансовой,
Филип
француз,
разработавший систему Турбо
Паскаль. Суть его идеи состояла
в объединении последовательных
этапов обработки программы
компиляции,
редактирования
связей, отладки и диагностики
ошибок в едином интерфейсе.
Версии
ТурбоПаскаля
заполонили практически все
образовательные учреждения,
программистские центры и
частные фирмы. На базе языка
Паскаль созданы несколько
более мощных языков (Модула,
Ада, Дельфи).
Самый компактный язык
программирования.
Обладает высокой степенью
расширяемости.
Первое
промышленное применение –
управление радиотелескопами.
Широко используется при
системного
создании
программного
обеспечения. 17
ПРОЛОГ
1972 Роберт
Ковальски,
Маартен ван
Эмден, Ален
Колмероэ
Язык был разработан для
написания
операционной
системы color в рекламных целях
Наложил большой отпечаток на
современное программирование
(первая версия 1972 г.),
является очень популярным в
среде разработчиков систем
программного
обеспечения
(включая
операционные
системы). Си сочетает в себе
черты как языка высокого
так и машинно
уровня,
ориентированного
языка,
допуская программиста ко всем
машинным ресурсам, чего не
обеспечивают такие языки, как
Бейсик и Паскаль. До сих пор С
– один из лучших языков для
системного программирования.
язык
Логический
программирования.
Главное
назначение языка разработка
интеллектуальных программ и
систем. Пролог это язык
программирования,
созданный
специально для работы с базами
знаний, основанными на фактах
и правилах (одного из элементов
систем
искусственного
интеллекта). В языке реализован
механизм
для
выполнения обратной цепочки
рассуждений,
при котором
предполагается, что некоторые
выводы или заключения истинны,
а затем эти предположения
проверяются в базе знаний,
содержащей факты и правила
возврата 18
Если
логического вывода.
не
предположение
выполняется
подтверждается,
возврат и выдвигается новое
предположение. В основу языка
положена
математическая
модель теории исчисления
предикатов.
INTERCAL
1972 Студенты Дон
Джейм
Вуд
М. Лайон
АДА
1979 Жан Ихбиа
1.
1.
Эзотерический
язык
программирования.
Основной
целью было создать язык
нисколько непохожий на все
остальные известные языки
программировании.
По
критериям Тьюринга подходит
для
повсеместного
использования, но программисты
не любят его изза сложного
составления программного кода.
Универсальный
язык
программирования,
был
разработан по заказу МО США.
Разработка велась в два этапа:
Определение требований
к языку. Список требований
прошёл через несколько этапов
утверждения
от
“Соломенного” до “Стального”.
–
После того, как поняли,
что ни один существующий язык
полученным требованиям не
удовлетворяет, за разработку 19
языка параллельно принялось 4
группы программистов –
“Зелёная”, “Жёлтая”, “Красная”
и “Синяя”. На финиш вышли две
группы “Зелёная” и “Красная”.
Победила
“Зелёная”.
Руководителем этой группы был
француз Жан Ихбиа.После
создания вышло требование
переписать все существующие
приложения на Аде. Язык АДА
прямой наследник языка
Паскаль.
язык
предназначен для создания и
длительного
(многолетнего)
сопровождения
больших
программных систем, допускает
возможность
параллельной
обработки,
управления
процессами в реальном времени
и многое другое, чего трудно или
невозможно достичь средствами
более простых языков.
Этот
SmallTalk
1980 Аланом
Кэйем, Дэном
Ингаллсом,
Тедом
Кэглером,
Адель
Голдберг,
Первый и
полностью
ориентированный
программирования.
использует современные идеи:
единственный
объектно
язык
Smalltalk
Сборка мусора встроена в
язык и незаметна разработчику.
Dynamic
translation:
современные
коммерческие
виртуальные
машины
компилируют
байткоды
в
машинные коды для быстрого 20
выполнения.
Выполнение кода в
виртуальной
машине.
Программы Smalltalk обычно
компилируются в байткоды и
выполняются
виртуальной
машиной,
что позволяет
выполнять их на любом
оборудовании,
для которого
существует виртуальная машина.
C++
1980 Бьярн
Страуструп
языка
Объектноориентированное
Си.
расширение
Множество новых мощных
позволивших
возможностей,
резко
повысить
производительность
программистов, наложилось на
унаследованную от языка Си
определенную
низкоуровневость.
Язык
мобильного приложения. Для
того, чтобы более основательно
проникнуть вглубь Android или
Windows, потребуются навыки
с языком
работы
программирования
С+
+. Являясь
объектно
он может
ориентированным,
быть
для
приложений
разработки
практически для любых целей
существующей
и на любой
платформе,
обеспечивает
раздельную
модульность,
обработку
компиляцию,
исключений,
абстракцию
данных, виртуальные функции.
С++ нельзя
назвать
ультрасовременным средством
использован 21
он прошел
программирования,
длинный
развития
путь
и существует множество его
реализаций, как бесплатных, так
и коммерческих и для различных
платформ. Одно из наиболее
значимых достоинств C++ то,
что он сочетает свойства как
высокоуровневых,
так
и низкоуровневых языков.
Modula – 2
Turbo Pascal
удобные
как выяснилось,
1981 Никлаус Вирт Был разработан Виртом после
того,
что
Паскаль не годится для
разработки
промышленных
приложений. Язык изначально
проектировался как средство
промышленного
системного
программирования,
позволяющее писать надёжные,
понятные,
в
сопровождении программы. При
этом язык должен был,
оставаясь
языком высокого
уровня со строгой типизацией и
поддержкой всех средств
надёжного
программирования,
давать возможность обращаться
непосредственно к аппаратуре,
создавать
специфические
системные программы, такие как
обработчики прерываний
и
драйверы
устройств,
поддерживать
программирование параллельно
исполняющихся
взаимодействующих процессов.
1983 Фирма Borland Один из наиболее известных
языков
программирования,
используется для обучения
программированию в старших
классах и на первых курсах
вузов, является базой для ряда 22
SmallTalk/V
1986
Turbo Prolog
1986 Аланом
Колмари
для
версия
других языков.
Первая
микрокомпьютеров
это
ТурбоПролог
осуществленная
компанией
Borland International реализация
языка
программирования
высокого уровня Пролог
компиляторного типа.
Ее
отличает большая скорость
компиляции и счета. Турбо
Пролог предназначен для выдачи
ответов, которые он логически
выводит при посредстве своих
мощных внутренних процедур.
Eiffel
1986 Бертран
Мейер
Версии практически идентичны.
Язык
частично русский,
частично английский.
Объектноориентированный язык
программирования
с
алголоподобным синтаксисом,
разработанный. В этом языке
впервые был реализован метод
контрактного
программирования.
то есть
компиляторы
Существуют
Эйфеля для Windows,
DOS,
OS/2 и UNIX. Большинство
реализаций Eiffel генерирует код
Си,
являются
своеобразным препроцессором.
Далее этот код компилируется с
помощью компилятора
Си.
Однако есть системы, которые
порождают и непосредственно
машинный код. Например, Visual
Eiffel.[3] Perl
1989 Ларри Уолл
23
задачами.
Он задумывался как средство
эффективной
обработки
больших текстовых файлов,
генерации текстовых отчетов и
управления
По
значительно
мощности Perl
превосходит языки типа Си. В
него введено много часто
используемых функций работы
массивами,
со
процессорами,
управление
с
работа
системной
информацией. И
строками,
Игровой Perl известен также
своим огромным
набором
модулей. Обычно программисты
обращаются к языку Perl тогда,
когда сценарий слишком сложен
для написания на остальных
языках вебпрограммирования.
Fortran90
1990 Фирма IBM Является диалектом языка
Значительно
Fortran.
переработан стандарт языка.
Visual Basic
1991 Алан Купер
языком
Является
программирования
третьего
поколения (событийный язык
программирования) и среда
разработки от Microsoft для
модели программирования COM.
Этот язык был получен из
BASIC и допускает быструю
прикладную разработку (RAD)
графического
интерфейса
пользователя (GUI), доступ к
базам данных при помощи DAO,
RDO, ADO, создание элементов 24
HTML
1992 Тим Бернерс
Ли
сценариев
управления ActiveX и объектов.
Языки
(VBA,
синтаксически
VBScript)
подобны Visual
но
Basic,
отличаются от него.
Язык Visual Basic унаследовал
дух, стиль и отчасти синтаксис
своего предка — языка Бэйсик,
у которого есть немало
диалектов. В то же время Visual
Basic — современный язык
программирования, сочетающий
процедуры и элементы объектно
ориентированных и компонетно
языков
ориентированных
программирования.
Среда
разработки VB включает
инструменты для визуального
конструирования
пользовательского интерфейса.
Самый известный для веб
разработчиков
язык
программирования,
хотя по
своей функциональности он
скорее всего относится к языкам
разметки. Язык применяется для
распределения объектов и текста
на вебстраницах. Для лучшего
понимания сущности языка
HTML можно косвенно сравнить
с программой Office Word. Язык
оснащен тегами, которые и
являются,
сути,
инструкциями компьютеру.
по
Brainfuck
1993 Урбан
Самый непрактичный из когда 25
Мюллер
Befunge
1993 Крисом
Пресси
Perl 5
1994 Ларри Уолл
либо созданных языков. Целью
создателей было бросить вызов
программистам, разработав язык
самым
с
маленьким
компилятором.
Отличается от прочих языков
программирования,
поскольку
программа представляет собой
двухмерную таблицу, в которой
программист может размещать
элементы
управления,
перемещая их с помощью
стрелок влево, вправо, вверх или
вниз. Достаточно взглянуть на
код программы «Hello World», и
головная боль вам обеспечена.
Благодаря своей сложности,
Befunge никогда не мог быть
ничем, кроме упражнения для
мозгов его создателя, и, к
счастью, он только для этого и
был задуман. Так что не
удивительно, что программных
решений, реализованных на этом
языке, крайне мало, и тот факт,
что он был разработан для
узкоспециализированного
сектора рынка,
несостоятельность
трагичной.
делает его
менее
Включает в себя полностью
переписанный интерпретатор, а
также много новых языковых
возможностей,
как
объекты,
локальные
переменные (my $var_name) и
модули.
Особенно важной
частью были модули, так как
ссылки,
таких, 26
PHP
1994 Расмус
Лердорф
Java
1995
компания
Sunв,
PARC
Xerox
языка
они предоставили механизм
расширения
без
модифицирования
интерпретатора. Это позволило
стабилизировать интерпретатор,
но при этом, дало возможность
обычным Perlпрограммистам
добавлять в язык новые
возможности. Perl 5 находится в
активной разработке по сей
день.
СИподобным
является
скриптовым языком.
Самая
первая версия PHP была
разработана еще в 1994, но к
1998 году появилась основная
версия PHP – 5.4. Язык PHP
широко
используется
программистами для написания
сценариев,
которые
выполняются на серверах при
каждом обновлении страницы
сайта. PHP действительно похож
на язык СИ, и многое он
позаимствовал из языка JAVA и
технологии JSP. Сегодня PHP
используется
многими
программистами, потому ядром
огромного количества сайтов
является phpкод.
объектно
Платформеннонезависимый
язык
ориентированного
программирования, чрезвычайно
эффективен для
создания
интерактивных
вебстраниц.
Этот язык был создан компанией
Sun в начале 90х годов на ColdFusion
1995
братья
Аллеры
JavaScript
1996
27
Он призван
основе СИ++.
упростить
разработку
приложений на основе Си++
путем исключения из него всех
низкоуровневых возможностей.
Язык мобильного приложения.
ЯзыкWebразработок,
популярен благодаря своей
простоте и доступности для
начинающих программистов. Он
был вытеснен ASP.NET и PHP
программирования,
Язык
созданный для «оживления и
придания динамичности» веб
сайтам. Развитие языка началось
с 1996 года.
Программы,
написанные на языке JavaScript,
называются скриптами, которые
выполняются совместно с
HTMLдокументами. С помощью
JavaScript
программисты
создают некоторые функции, как
например открытие нового
окошка с выводом в нем
сообщения об ошибке после
некоторого
действия
Он способен
пользователя.
выполнять свои скрипты спустя
заданные интервалы времени. В
общем,
это и
самостоятельный язык, но также
его
назвать
вспомогательным для остальных,
так как с помощью него легко
сделать
более
функциональным и интересным
для пользователя.
JavaScript
можно
сайт 28
REBOL
1998 Карл
Сассенрат
2005 Дон Сайм
F#
(произноситс
«Эф
я
шарп»)
в
Контекстнозависимый
язык
объектный
созданный
программирования,
специально для распределенных
вычислений
Web.
Позиционируется как язык
сообщениями.
обмена
Большинство
преимуществ,
которые предоставлял язык,
никому не нужны и откровенно
устарели это в конечном счете
ускорило провал REBOL. На
нынешней стадии развития
программирования
REBOL
рассматривается как сервисный
язык и используется в основном
для «домашних» разработок.
Язык, разработанный Microsoft
с целью объединения в себе
функциональности
и практичности. Так как F#
является языком первого класса
на виртуальной машине
.Net
CLR, он может поддерживать
такие же библиотеки и функции,
как и другие CLR языки,
например, как C# и Visual Basic.
Код F# чемто похож на код
но содержит свой
OCaml,
собственный
интересный
синтаксис.
для
облегчения проведения научных
расчётов числовыми типами
данных в F# могут являться
единицы измерения. Также в F#
имеются конструкции для
облегчения
асинхронных
вводов/выводов, параллелизации
ЦПУ и вывода процессов
Например, 29
на графический процессор.
2006 Джон Резиг
jQuery
2009 Команда
инженеров
Google
Go (часто
также
Golang)
можно
– это
jQuery
библиотека
многократно
используемых
объектов и функции JavaScript,
Обычно
jQuery является
отдельным JavaScriptфайлом.
jQuery
назвать
фреймворком (framework), т.е.
набором операции и инструкции
для решения однотипных задач.
Библиотека позволяет вам
работать
управлять
различными объектами на веб
страницах.
и
Язык программирования общего
назначения, который подходит
для всего: начиная от разработки
и заканчивая
приложений
программированием
систем.
В этом смысле он больше похож
на C или C++, чем на Java или
C#. Однако, как и последние
языки, Go включает в себя такие
современные функции,
как
очистка памяти от ненужных
данных,
отражение текущих
процессов
выполнения
и поддержку параллельности.
Также важно то, что Go был
создан
лёгкого
программирования.
для
HTML 5
2014 Консорциум
Всемирной
Новое поколения языка разметки 30
паутины и
whatwg
интернет страниц.
Список наиболее заметных
нововведений HTML5:
Рисование на вебхолсте
(использование элемента canvas)
Перетаскивание
элементов
технологии dragndrop)
(реализация
Вставка аудио и видео
ресурсов
Новые
элементы
пользовательского интерфейса
Управление
просмотра страниц
историей
Управление параметрами
состояния
Обмен
сообщениями
между страницами
Размещение векторной
графики в формате SVG
Разметка математических
выражений с помощью MathML
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Элементы семантической
разметки
Условные обозначения
Мёртвые языки программирования 31
Перспективные языки программирования
Языки мобильного приложения
Составив и проанализировав данную таблицу, можно сделать вывод, что
языки программирования развиваются в сторону все большей абстракции от
реальных машинных команд и самым очевидным преимуществом здесь является
увеличение скорости разработки программ. Вот некоторые причины развития
языков программирования.
1. Потребность в решении более сложных и разнообразных задач. Первые
ЭВМ имели ограниченные возможности, следовательно, и программы были
простыми. В процессе эволюции вычислительной техники от неё
требовалось решение все более сложных и разнообразных задач.
Следовательно, язык программирования должен был позволять писать
программы для решения этих задач. Это способствовало появлению и
развитию в языках программирования различных новых технологий.
Например, пользуется широкой популярностью технология объективно
ориентированного программирования.
2. Программы становятся сложнее и больше по объёму. Появилось
стремление к повышению эффективности процесса создания программ.
Поэтому существует тенденция в развитии языков программирования к
быстрому написанию программ. Здесь также следует отметить появление
множества систем визуального программирования, в какойто степени
облегчающие труд программиста.
3. Желание, чтобы программы работали на разных платформах, привело к
развитию независимости от ЭВМ языков системного программирования.
Языки системного программирования , на которых создаются
операционные системы, трансляторы и другие системные программы, 32
развиваются в направлении независимости от ЭВМ. Так, например,
большая часть операционных систем написана на языке С, а не на
ассемблере. Например, операционная система Unix практически написана
на языке С.
4. Большие проекты предусматривают совместный труд множества
программистов. В возможности лёгкой командной работы хорошо себя
зарекомендовала
ориентированного
технология объектно
программирования.
программирования поддерживают ООП.
Поэтому большинство современных языков
У каждого языка программирования есть достоинства и недостатки,
которые влияют на дальнейшее процветание.
Недостатки языков программирования низкого уровня.
Программист, работающий с языками низкого уровня, должен быть
устройство
хорошо понимать
высокой
квалификации,
микропроцессорной системы, для которой создается программа.
Результирующая программа не может быть перенесена на компьютер
или устройство с другим типом процессора.
Значительное время разработки больших и сложных программ
Недостатком языков программирования высокого уровня является
большой размер программ по сравнению с программами на языке низкого
уровня. Поэтому в основном языки высокого уровня используются для
разработок программного обеспечения компьютеров и устройств, которые
имеют большой объём памяти. А разные подвиды ассемблера применяются для
программирования других устройств, где критичным является размер
программы.
Красным цветом я выделила языки, которые по определённым причинам вышли
из употребления. ( Мертвые языки программирования)
Причины краха языков программирования. 33
сложны в применении
недоступны для простого пользователя
ошибки менеджмента
отсутствие «рекламы» в СМИ, вернее присутствие антирекламы
отсутствие поддержки крупных вендоров, в отличии от конкурентов
были вытеснены альтернативным
языком, новыми технологиями и
изменяющимися условиями выживания;
низкий порог вхождения
отсутствие сертификационных центров 34
1. Программирование. Язык программирования.
Знакомиться с этими понятиями будем по принципу от простого к
сложному. Возникал ли у вас когданибудь вопрос: « Что такое язык?» Чтобы
ответить на этот вопрос обратимся к толковому словарю.
Язык в лингвистическом плане представляет собой важнейшее средство
общения. Более того, язык – средство хранения и передачи информации,
средство управления поведением человека. Язык неразрывно связан с
обществом.
Искусственный язык — специальный язык, который, в отличие от
естественного, сконструирован целенаправленно. Таких языков существует уже
более тысячи, и постоянно создаются всё новые и новые.
Программирование процесс создания компьютерных программ.
Программирование основывается на использовании языков программирования,
на которых записываются инструкции для компьютера. Современное
приложение содержит множество таких инструкций, связанных между собой. 35
Язык программирования
формальная
знаковая система,
предназначенная для записи компьютерных программ. Язык программирования
определяет набор лексических, синтаксических и семантических правил,
задающих внешний вид программы и действия, которые выполнит исполнитель
(компьютер) под её управлением.
2. История возникновения языков программирования
2.1 Первопроходцы в программировании
«Люди сами делают свою историю, но они её делают не так, как им вздумается, при
обстоятельствах, которые не сами они выбрали, а которые непосредственно имеются на лицо,
даны им и перешли от прошлого»
Карл Маркс
Английский математик Чарлз Бэббидж (1791—1871
гг.).
В 20х годах XIX века ему пришла идея создать
механическую машину для вычислений, что порядок ее
действий можно было предварительно записывать и
впоследствии выполнять эти действия на машине автоматически. Это была идея,
положившая начало программированию. Ч. Бэббидж посвятил реализации этой
идеи всю жизнь. Он не добился успеха и признания современников при жизни, но
оказал огромное влияние на современное развитие
информатики.
Ада Лавлейс, дочь английского поэта Чарлза
Гордона Байрона. Она оказалась одним из немногих
современников Чарлза Бэббиджа, кто сумел по
достоинству оценить идею "аналитической машины". Она
стала ближайшей помощницей и сподвижницей
Бэббиджа, разработала некоторые приемы управления последовательностью 36
вычислений, которые используются в программировании, по сей день. Описала
одну из важнейших конструкций практически любого современного языка
программирования — цикл. Аду Лавлейс по праву считают первым в мире
программистом. В честь неё был назван язык программирования – язык АДА
Первым шагом в развитии современных языков программирования
стало создание в конце 1940х годов Джоном Моучли американским физиком
Пенсильванского университета США системы кодирования машинных команд с
помощью специальных символов.
Грейс Мюррей Хоппер (Grace Murray Hopper) —
один из пионеров программирования, математик. Контр
адмирал ВМФ США. По праву считается «бабушкой
COBOL» и удостоена многочисленных наград за
неоценимый вклад, внесенный в развитие этого языка
программирования.
Грейс Мюррей Хоппер стала третьим в мире
программистом.
В 1951 г. Хоппер создала первый в мире компилятор. Именно она ввела сам этот
термин. При работе на компьютере "MaркI" Г. Хоппер и ее группе пришлось
стать первопроходцами программирования.
Они первыми придумали
подпрограммы. 37
2.2 Первые языки программирования. Особенности первых языков
программирования
Ну что ж, приблизимся к
самым истокам программирования и
постараемся ответить на главный вопрос: почему одни языки программирования
остались в стадии зарождения и про них все забыли, другие легли в основу
новых, которые живут и позволяют человечеству развивать информационные
технологии.
Вспомним первые компьютеры и программы для них. Это была эра
программирования непосредственно в машинных кодах, а основным носителем
информации были перфокарты и перфоленты. Программисты обязаны были
знать архитектуру машины досконально. Программы были достаточно
что обуславливалось,
простыми,
весьма ограниченными
возможностями этих машин, и, вовторых, большой сложностью разработки и,
вопервых,
главное, отладки программ непосредственно на машинном языке.
Основоположником программирования можно считать английского
математика Чарлза Бэббиджа (1791—1871 гг.). В 20х годах XIX века ему
пришла идея создать такую механическую машину для вычислений, что порядок
ее действий можно было предварительно записывать и впоследствии выполнять
эти действия на машине автоматически. Это была идея, положившая начало
программированию. Ч. Бэббидж посвятил реализации этой идеи всю жизнь. Он
не добился успеха и признания современников при жизни, но оказал огромное
влияние на современное развитие информатики. Хотя использованный
Бэббиджем способ записи программы на перфокартах, придуманный для
управления ткацкими станками французским изобретателем Жозефом Мари
Жаккаром, не имеет ничего общего с современными технологиями хранения и
выполнения программ компьютерами, принцип остался тем же. 38
Рядом с Ч. Бэббиджем у истоков программирования стояла Ада Лавлейс,
дочь английского поэта Чарлза Гордона Байрона. Она разработала некоторые
приемы управления последовательностью вычислений, которые используются в
программировании и посей день, описала одну из важнейших конструкций
практически любого современного языка программирования — цикл. Аду
Лавлейс по праву считают первым в мире программистом.
На практике базовые принципы программирования реализовала другая
женщина Грэйс Хоппер. Дальнейшего прогресса в программировании пришлось
ждать почти 100 лет, и связан он был с появлением в середине 1940х годов
электромеханических и электронных вычислительных машин — родителей
современных компьютеров. Для программирования этих машин использовались
машинные коды — цифровые комбинации, "понятные" только данной машине.
Такое программирование было чрезвычайно трудоемким и сложным делом,
доступным лишь небольшому кругу специалистов.
Первым шагом в развитии современных языков программирования стало
создание в конце 1940х годов Джоном Моучли, сотрудником Пенсильванского
университета (США), системы кодирования машинных команд этих
компьютеров с помощью специальных символов. Достижением создателей
языков программирования было то, что они сумели заставить сам компьютер
работать переводчиком с этих языков на машинный код. Описываемая система,
которую назвали "Short Code", была по существу одним из первых примитивных
интерпретаторов. Она использовала примитивный язык программирования
высокого уровня. На нем программист записывал решаемую задачу в виде
математических формул, а затем сам, используя специальную таблицу,
переводил символ за символом, преобразовывая эти формулы в двухлитерные
коды. В дальнейшем специальная программа компьютера превращала эти коды в
двоичный машинный код. 39
Система кодирования, предложенная Моучли, увлекла одну из сотрудниц
его группы — Грейс Мюррей Хоппер, которая стала третьим в мире
программистом.
В 1951 г. Хоппер создала первый в мире компилятор. Именно она ввела
сам этот термин.
Компилятоp (от англ. Compile собирать вместе, составлять) системная
программа, выполняющая преобразование программы, написанной на одном
алгоритмическом языке, в программу на языке, близком к машинному, и в
определенном смысле эквивалентную первой.
В 1954 г. группа под руководством Г. Хоппер разработала систему,
включающую язык программирования и компилятор, которая в дальнейшем
получила название MATHMATIC. После удачного завершения работ по
созданию MATHMATIC Г. Хоппер и ее группа принялись за разработку нового
языка и компилятора, который позволил бы пользователям программировать на
языке, близком к обычному английскому. В 1958 г. появился компилятор
FLOWMATIC. FLOWMATIC был первым языком для задач обработки
коммерческих данных. Работы в этом направлении привели к созданию языка
КОБОЛ (COBOL — Common Business Oriented Language). Одним из основных
консультантов при его создании была Грейс Мюррей Хоппер.
Середина 50х годов XX века характеризуется стремительным
Стало понятно, что процесс
прогрессом в области программирования.
формирования машинного кода можно автоматизировать. Для записи программ
начали применять мнемонический язык – язык assembly. Язык ассемблера
позволил представить машинный код в более удобной для человека форме:
для обозначения команд и объектов, над которыми эти команды выполняются,
вместо двоичных кодов использовались буквы или сокращенные слова, которые
отражали суть команды. Например, на языке ассемблера команда сложения двух
чисел обозначается словом add, тогда как ее машинный код может быть таким: 40
000010. Запись программы на языке ассемблера фактически является
тем же машинным кодом, только представленным с помощью специальных
обозначений.
Ассемблер можно отнести к языкам второго поколения, если за первый принять
машинный код. Появление этого языка на свет, очень облегчало жизнь
программистов. Теперь вместо рябящих в глазах нулей и единиц, они могли
писать программу командами, состоящими из символов приближенных к
обычному языку. Для того времени этот язык был новшеством и пользовался
популярностью т.к. позволял писать программы небольшого размера, что при
тех машинах критерий значительный. Но сложность разработки в нём больших
программных комплексов привела к появлению языков третьего поколения –
языков высокого уровня. Но на этом жизнь ассемблера не закончилась, он жив и
посей день и не только жив, но и пользуется популярностью в узких кругах.
Сейчас его используют в написании отдельных фрагментов программ или иногда
в написании самих программ. Примеров может быть много, но самые яркие это
использование ассемблера в написании драйверов, игр и загрузчиков ОС. Не
стоит забывать, что у хакеров этот язык так же пользуется популярностью, да
ещё какой! Но что же им так нравиться в нём? Конечно же, то, что скорость
работы полученной программы значительно выше скорости программы
написанной на языке программирования высокого уровня. Это объясняется тем,
что получившийся размер программы очень мал. А как же разработчики
антивирусных программ? Они тоже не лыком шиты и так же используют
ассемблер в некоторых модулях своих программ, что так же обеспечивает их
быстродействие. А если бы не ассемблер некоторые программы загружались бы
около часа! Так что ассемблер воистину вечный язык и ещё много, много лет он
будет служить человечеству!
Программирование в машинных командах стало вытесняться
программированием на языках, выступавших в роли посредника между 41
машинами и программистами. Первым и одним из наиболее распространенных
стал Фортран (FORTRAN, от FORmula TRANslator — переводчик формул),
разработанный группой программистов фирмы IBM в 1954 г. Этот язык получил
большое распространение, стал основным языком для научных и технических
расчетов, несколько раз усовершенствовался и широко используется до сих пор.
В конце 50х годов плодом международного сотрудничества в области
программирования явился Алгол60 (ALGOL, от ALGOrithmic Language —
алгоритмический язык, версия 1960 г.). Алгол предназначен для записи
алгоритмов, которые строятся в виде последовательности процедур,
применяемых для решения поставленных задач. Специалистыпрактики
восприняли этот язык далеко не однозначно, но, тем не менее, его влияние на
развитие других языков и теорию программирования оказалось весьма
значительным. Развитие идеи Алгола о структуризации разработки алгоритмов
нашло наивысшее отражение при создании в начале 1970х годов языка Паскаль
швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально
разрабатывался как учебный, и, действительно, сейчас он является одним из
основных языков обучения программированию в школах и вузах. Однако
качества его в совокупности оказались столь высоки, что им охотно пользуются
и профессиональные программисты. В середине 1960х годов сотрудники
математического факультета Дартмутского колледжа Томас Курц и Джон
Кемени создали специализированный язык программирования, который состоял
из простых слов английского языка. Новый язык назвали "универсальным
символическим кодом для начинающих" (Beginners All Purpose Symbolic
Instruction Code, или, сокращенно, BASIC, а порусски — Бейсик). Годом
рождения нового языка можно считать 1964 г.Долгое время универсальный язык
Бейсик (имеющий множество версий) имел большую популярность и широкое
распространение среди пользователей ЭВМ различных категорий во всем мире.
В значительной мере этому способствовало то, что Бейсик начали использовать 42
как встроенный язык персональных компьютеров, широкое распространение
которых началось в конце 1970х годов.
Большой отпечаток на современное программирование наложил язык Си
(первая версия — 1972 г.), являющийся очень популярным в среде
разработчиков систем программного обеспечения (включая операционные
системы). Си сочетает в себе черты, как языка высокого уровня, так и машинно
ориентированного языка, допуская программиста ко всем машинным ресурсам,
чего не позволяют такие языки, как Бейсик и Паскаль.
Более специализированным языком является язык ЛОГО (от греч. logos —
слово), созданный для обучения программированию школьников, профессором
математики и педагогики Сеймуром Пейпертом
из Массачусетского
технологического института. Обучаясь программированию на ЛОГО, дети
задают простые команды и составляют из них программы, которые управляют
условной "черепашкой" — объектом, оставляющем при перемещении след на
экране монитора.
Отметим язык LISP (LISt Processing — обработка списков), появившийся
в США в конце 1950х годов, и еще один специализированный язык — Пролог
(Prolog — PROgramming in LOGic), разработанный в 1970е годы, как языки
программирования для создания систем искусственного интеллекта.
В начале 1960х годов все существующие языки программирования высокого
уровня можно было пересчитать по пальцам, впоследствии их число достигло
трех тысяч. Однако в практической деятельности используется не более двух
десятков из них.
Разработчики ориентировали языки на разные классы задач, в той или иной
мере привязывали их к конкретным архитектурам компьютеров, воплощали в
них личные вкусы и идеи.
В конце 1960х годов были сделаны попытки преодолеть эту
"разноголосицу" путем создания универсального языка программирования. 43
Первым детищем этого направления стал PL/1 (Programm Language One), 1967 г.
Затем на эту роль претендовал Алгол68 (1968 г.). Предполагалось, что
подобные языки будут развиваться и усовершенствоваться и вытеснят все
остальные. Однако ни одна из этих попыток на сегодняшний день не увенчалась
успехом (хотя PL/1 в усеченных версиях использовали многие программисты).
Стремление к универсальности языка приводило к неоправданной сложности
конструкций программы, неэффективности получаемых исполняемых кодов.
Бурный рост числа различных языков программирования в период с конца
1960х и до начала 1980х годов сопровождался, как это ни странно, кризисом
программного обеспечения. Остро не хватало программ для решения самых
разных задач и программистов для их разработки, а написанные программы
часто содержали ошибки и работали неустойчиво. Этот кризис особо остро
переживало военное ведомство США. В январе 1975 г. Пентагон решил на вести
порядок в хаосе трансляторов и учредил комитет, которому было предписано
разработать один универсальный язык. На конкурсной основе комитет
проработал сотни проектов, и когда стало ясно, что ни один из существующих
языков не может их удовлетворить, принял два проекта для окончательного
рассмотрения. В мае 1979 г. был объявлен победитель —группа ученых во главе
с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Ады Лавлейс. Язык
АДА — прямой наследник языка Паскаль. Этот язык предназначен для создания
и длительного сопровождения больших программных систем, допускает
возможность параллельной обработки, управления процессами в реальном
времени и многое другое, чего трудно или невозможно достичь средствами
более простых языков. Следует отметить, что многие языки, первоначально
разработанные для больших и малых вычислительных машин, в дальнейшем
были приспособлены к персональным компьютерам.
Языки программирования сохраняют свое предназначение для решения
задач определенных типов. Выбор языка определяется удобствами для 44
программистов, их предпочтениями в силу опыта и образования, а также
пригодностью для данного компьютера и данной задачи. А задачи, решаемые с
помощью компьютера, бывают самые разнообразные: вычислительные,
экономические, графические, экспертные, создание системного программного
обеспечения и т.д.
Такая разнотипность решаемых компьютером задач и приводит к
многообразию языков программирования.
Задача
Примеры языков
Задачи искусственного интеллекта Lisp, Prolog, Multilisp, Commonlisp, Рефал,
Planner, QA4, FRL, KRL, QLisp
Fun, Apl, Alfl, PARAlfl, ML, SML, PPL/1,
Hope, Miranda, Occam, PFOR, Glypnir, Actus,
параллельный Cobol, ОВСЛЯПИС, ОВС
Мнемокод,
ОВСФортран,
PA(1), PA(G)
Параллельные вычисления
ОВСАлгол,
Задачи вычислительной математики
и физики
Разработка интерфейса
Разработка
разработка систем
программоболочек,
Задачи вычислительного характера
Оформление
документов,
обработка больших текстовых
файлов, организация виртуальных
трехмерных интерфейсов
в
Интернете, разработка баз данных
Occam, PFOR, Glypnir, Actus,параллельный
Cobol, ОВСЛЯПИС, ОВСМнемокод, ОВС
Алгол, ОВСФортран, PA(1), PA(G)
Forth, c, C++, Ассемблер, Макроассемблер,
Simula67, OAK, Smalltalk, Java, РПГ
Forth, c, C++, Ассемблер, Макроассемблер,
Simula67, OAK, Smalltalk, Java, РПГ
Algol,
PL/1,Фокал, Basic,Pascal
Fortran, Cobol,
Ada,
Perl, Tcl/Tk, VRML, SQL, PL/SCL, Informix
4GL, Natural, DDL, DSDL, SEQUEL, QBE,
ISBL
Чтобы более четко представить картину развития языков
программирования обратимся к хронологической таблице. (См. приложение) Но 45
это отнюдь не весь список созданных человечеством языков программирования,
так как многие языки по определённым причинам не могли существовать
самостоятельно, они легли в основу новых, более усовершенствованных. О них
мы поговорим в разделе « Диалекты». 46
3.Эволюция языков программирования. Классификация языков
программирования.
Поколения
ЭВМ
1поколение
(1946
1954г.г.)
2поколение
(1958
1960г.г.)
3поколение
(1960
1966г.г.)
4поколение
(1970
1980г.г.)
Характеристика ЭВМ Языки
Характеристика ЯП
программирования
Машинные
Для
научно
технических расчетов;
носитель информации
перфокарты и
перфоленты;
программное
обеспечение
библиотека
стандартных
программ, автокоды.
на
Ориентированы
использование
конкретной
ЭВМ,
сложны в освоении,
хорошего
требуют
знания
архитектуры
ЭВМ.
носитель
диск;
Для технологических
и
экономических
расчётов;
носитель
информации
лента;
магнитная
созданы трансляторы.
Для управления и
технологических
расчётов;
информации
программное
обеспечение
операционные
СУБД;
системы;
пакеты прикладных
программ.
Для информационного
обслуживания,
телекоммуникации;
носитель
информациигибкий
диск; прикладное ПО
общего назначения;
Ассемблеры,
макроассемблеры
Более удобны для
использования, но по
прежнему
машинно
зависимы
Языки
уровня
высокого
Мобильные,
человеко
ориентированные, проще
в освоении
Непроцедурные,
объектно
ориентированные,
языки
параллельные
запросов,
на
Ориентированы
непрофессионального
пользователя и на ЭВМ с
параллельной
архитектурой 47
Языки
искусственного
интеллекта,
экспертных систем
и баз
знаний,
естественные языки
на
Ориентированы
повышение
интеллектуального
уровня
ЭВМ
интерфейса с языками
5поколение
(1980г. по
наше время)
ПО;
сетевое
мультимедия.
Телекоммуникации,
информационное
обслуживание;
носитель
информации гибкий,
жёсткий
и
оптический диски;
интеллектуальные
программные
системы;
Развитие вычислительной техники сопровождается созданием новых и
совершенствованием существующих средств общения программистов с ЭВМ
языков программирования (ЯП). Проанализируем таблицу и
зависимость развития ЯП от развития ЭВМ.
установим
ЯП первого поколения представляли собой набор машинных команд в
двоичном (бинарном) или восьмеричном формате, который определялся
архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на
котором были пригодны только для данного типа ЭВМ. От программиста при
этом требовалось хорошее знание не только машинного языка, но и архитектуры
ЭВМ.
Второе поколение ЯП характеризуется созданием языков ассемблерного
типа (ассемблеров, макроассемблеров), позволяющих вместо двоичных и других
форматов машинных команд использовать их мнемонические символьные
обозначения (имена). Являясь существенным шагом вперед, ассемблерные языки
все еще оставались машиннозависимыми, а программист все также должен был
быть хорошо знаком с организацией и функционированием аппаратной среды
конкретного типа ЭВМ. При этом ассемблерные программы все так же
затруднительны для чтения, трудоемки при отладке и требуют больших усилий
для переноса на другие типы ЭВМ. Однако и сейчас ассемблерные языки 48
используются при необходимости разработки высокоэффективного
программного обеспечения.
Третье поколение ЯП начинается с появления в 1956 г. первого языка
высокого уровня Fortran, разработанного под руководством Дж. Бэкуса в фирме
IBM. За короткое время Fortran становится основным ЯП при решении
инженернотехнических и научных задач. Первоначально Fortran обладал весьма
ограниченными средствами обеспечения работы с символьной информацией и с
системой вводавывода. Однако постоянное развитие языка сделало его одним из
самых распространенных ЯВУ на ЭВМ всех классов от микро до суперЭВМ, а
его версии используются и для вычислительных средств нетрадиционной
параллельной архитектуры.
Вскоре после языка Fortran появились такие ныне широко известные
языки, как Algol, Cobol,Basic, PL/1,Pascal, APL, ADA, C, Forth, Lisp, Modula и др.
В настоящее время насчитывается свыше 2000 раз личных языков высокого
уровня.
Языки четвертого поколения
выраженный
непроцедурный характер, определяемый тем, что программы на таких языках
ярко
носят
описывают только что, а не как надо сделать. В программах формируются скорее
соотношения, а не последовательности шагов выполнения алгоритмов.
Типичными примерами непроцедурных языков являются языки, используемые
для задач искусственного интеллекта(например, Prolog, Langin). Так как
непроцедурные языки имеют минимальное число синтаксических правил, они
значительно более пригодны для применения непрофессионалами в области
программирования.
Языки программирования от поколения к поколению улучшали свои
характеристики, становясь все более доступными в освоении непрофессионалам.
Все языки программирования делятся на два уровня: 49
Языки программирования низкого уровня или Ассемблеры, которые
состоят из мнемонических команд приближенных к машинному (двоичному)
коду с которым непосредственно работает процессор компьютера. У каждого
типа процессора свой язык ассемблера. Достоинством языков низкого уровня
является то, что с их помощью создают самые краткие и быстро исполняемые
программы. Недостаток таких языков в том, что их трудно изучать, так как
необходимо знать и хорошо понимать работу и устройство конкретного
процессора. Тексты программ на таких языках получаются очень большими по
объёму. Программы, написанные на таких языках, не могут использоваться на
процессорах других типов.
Языки программирования высокого уровня (например, Бейсик, Паскаль,
СИ) состоят из более понятных команд для человека, так как для их написания
используются фразы из обычных языков (в большинстве случаев Английского),
поэтому они значительно проще для изучения и применения. Программы,
написанные с их помощью, можно использовать на любом компьютере. Языки
программирования высокого уровня классифицируют по четырём основным
группам:
функциональные и
объектноориентированные,
процедурные,
логические. Процедурное программирование есть отражение фон Неймановской
архитектуры компьютера. Программа, написанная на процедурном языке,
представляет собой последовательность команд, определяющих алгоритм
решения задачи. Основная идея процедурного программирования использование
памяти для хранения данных. Основная команда присвоение, с помощью
которой определяется и меняется память компьютера. Программа производит
преобразование содержимого памяти, изменяя его от исходного состояния к
результирующему. Различают такие языки процедурного программирования:
Язык Фортран создан в начале 50х годов 20го века для программирования
научнотехнических задач; 50
Кобол – создан в конце 60х годов 20го века для решения задач обработки
больших объемов данных, хранящихся на различных носителях данных;
Алгол
(1960 год) – это многоцелевой расширенный язык
программирования. В нем впервые введены понятия “блочная структура
программы” и “динамическое распределение памяти”;
В середине 60х годов 20го века был создан специализированный язык
программирования для начинающих – BASIC. Характеризуется простотой
освоения и наличием универсальных средств для решения научных, технических
и экономических задач, а также задач, например, игровых.
Все перечисленные выше языки были ориентированы на различные классы
задач, но они в той или иной мере были привязаны к конкретной архитектуре
ЭВМ.
В 19631966гг был создан многоцелевой универсальный язык PL1. Этот
язык хорошо приспособлен для исследования и планирования вычислительных
процессов, моделирования, решения логических задач, разработки систем
математического обеспечения.
Язык
Паскаль
(PASCAL)
(19681971гг)
язык процедурного
программирования наиболее популярный для ПК, который и в настоящее время
успешно применяется. В основу языка Pascal положен подход от общей задачи к
частным (более простым и меньшим по объему). К основным принципам,
которыми обладает Паскаль, можно отнести: а) Структурное программирование,
которое основано на использовании подпрограмм и независимых структур
данных; б) Программирование “сверхувниз”, когда задача делится на простые,
самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи
полностью сверху вниз.
К языкам процедурного программирования можно отнести язык АДА
(1979 г) Язык СИ (начало 70х годов) также относится к языкам
процедурного программирования. Первоначальный его вариант планировался как 51
язык для реализации операционной системы Unix вместо языка Ассемблера.
Одной из особенностей языка СИ является то, что различия между выражениями
и операторами сглаживаются, что приближает его к функциональным языкам
программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а
использование подпрограмм основано на понятии функции, которая может
сочетать в себе возможности процедуры. С одной стороны, по набору
управляющих конструкций и структур данных его можно отнести к языкам
высокого уровня, а с другой – он имеет набор средств прямого обращения к
функциональным узлам компьютера, а это означает, что его можно использовать
как операционный язык.
Непроцедурные языки
составляют группу языков,
описывающих
организацию данных, обрабатываемых по фиксированным алгоритмам (табличные
языки и генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения
действия, таблицы решений дают возможность в наглядной форме определить,
какие условия должны быть выполнены, прежде чем переходить к какомулибо
действию. Одна таблица решений, описывающая некоторую ситуацию, содержит
все возможные блоксхемы реализаций алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные
ситуации, возникающие при системном анализе.
Объектноориентированное программирование (ООП) — это метод
программирования, при использовании которого главными элементами программ
являются объекты. В языках программирования понятие объекта реализовано как
совокупность свойств (структур данных, характерных для данного объекта),
методов их обработки (подпрограмм изменения их свойств) и событий, на
которые данный объект может реагировать и, которые приводят, как правило,
к изменению свойств объекта.
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.