ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
Оценка 4.9

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

Оценка 4.9
Исследовательские работы +4
docx
информатика
10 кл
24.12.2018
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
мертвые языки программирования.docx
ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования» Выполнил: Ученик 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 для её новой ЭВМ. B­0 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 тогда, когда сценарий слишком сложен для   написания   на   остальных языках веб­программирования. Fortran­90 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) Перетаскивание элементов технологии drag­n­drop)   (реализация Вставка   аудио   и   видео ресурсов Новые   элементы пользовательского интерфейса Управление просмотра страниц   историей Управление   параметрами состояния Обмен   сообщениями между страницами Размещение   векторной графики в формате 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   г.   группа   под   руководством   Г.   Хоппер   разработала   систему, включающую   язык   программирования   и   компилятор,   которая   в   дальнейшем получила   название   MATH­MATIC.   После   удачного   завершения   работ   по созданию MATH­MATIC Г. Хоппер и ее группа принялись за разработку нового языка и компилятора, который позволил бы пользователям программировать на языке,   близком   к   обычному   английскому.   В   1958   г.   появился   компилятор FLOW­MATIC.   FLOW­MATIC   был   первым   языком   для   задач   обработки коммерческих данных. Работы в этом направлении привели к созданию языка КОБОЛ (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++, Ассемблер, Макроассемблер, Simula­67, OAK, Smalltalk, Java, РПГ Forth, c, C++, Ассемблер, Макроассемблер, Simula­67, 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.   Характеризуется   простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых.  Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.  В 1963­1966гг был создан многоцелевой универсальный язык  PL­1. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов,   моделирования,   решения   логических   задач,   разработки   систем математического обеспечения.  Язык  Паскаль  (PASCAL)   (1968­1971гг)­   язык   процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным   (более   простым   и   меньшим   по   объему).   К   основным   принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое   основано   на   использовании   подпрограмм   и   независимых   структур данных; б) Программирование “сверху­вниз”, когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.  К языкам процедурного программирования можно отнести язык АДА  (1979   г)   Язык  СИ  (начало   70­х   годов)   также   относится   к   языкам процедурного программирования. Первоначальный его вариант планировался как 51 язык   для   реализации   операционной   системы   Unix   вместо   языка   Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и   операторами   сглаживаются,   что   приближает   его   к   функциональным   языкам программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а использование   подпрограмм   основано   на   понятии   функции,   которая   может сочетать   в   себе   возможности   процедуры.   С   одной   стороны,   по   набору управляющих   конструкций   и   структур   данных   его   можно   отнести   к   языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык. Непроцедурные   языки  составляют   группу   языков,   описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены, прежде чем переходить к какому­либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок­схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе. Объектно­ориентированное   программирование   (ООП)   —   это   метод программирования, при использовании которого главными элементами программ являются объекты. В языках программирования понятие объекта реализовано как совокупность   свойств   (структур   данных,   характерных   для   данного   объекта), методов   их   обработки   (подпрограмм   изменения   их   свойств)   и   событий,   на которые данный объект может реагировать и, которые приводят, как правило,  к изменению свойств объекта.

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»

ИНДИВИДУАЛЬНЫЙ ПРОЕКТ на тему: «Мертвые языки программирования»
Скачать файл