История возникновения программирования. Основные принципы и подходы при создании языков программирования
Сущность современных языков программирования и история возникновения программирования. Классификация основных языков программирования. Применение структурных и объектно-ориентированных подходов программирования. Новые поколения в программировании.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 02.05.2018 |
Размер файла | 245,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
КУРСОВАЯ РАБОТА
по дисциплине: Основы программирования
на тему:
«история возникновения программирования. основные принципы и подходы при создании языков программирования»
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
ГЛАВА 1. НАУЧНО-ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ
1.1 Сущность языков программирования и история возникновения программирования
1.2.Классификация языков программирования
ГЛАВА 2. ОСНОВНЫЕ ПОДХОДЫ ПРИ СОЗДАНИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1 Применение структурных и объектно-ориентированных подходов программирования
2.2 Новые поколения в программировании
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
На современном этапе развития компьютерных технологий процесс формирования новых систем записей алгоритмов, а именно языка программирования становится более актуальной. Основной целью появления такого языка является упрощение программного языка. Вдобавок, технологический процесс является результатом непрерывного развития информационных и мобильных технологий. Компьютерные технологии становятся неотъемлемой частью современного нашего общества, причиной чего является создание новых ПО с помощью различных языков программирования.
Вопросы, связанные с историей возникновения программирования, основными принципами и подходами при создании языков программирования рассматривались многими учёными, такими как Абрамов С.А., Зима Е.В., Грызлов В.И., Грызлова Т.П. и другие.
Следует отметить, что в последние годы как в России и в Узбекистане вопросам, связанных с историей возникновения программирования, основными принципами и подходами при создании языков программирования проявляется особый интерес, на данную тему написаны магистерские и кандидатские диссертации.
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов - языков программирования.
Целью данной курсовой работы является изучение истории возникновения программирования и основных принципов и подходов при создании языка программирования.
Исходя из цели, были поставлены следующие задачи:
1. Ознакомление с языками программирования.
2. Рассмотрение истории развития языков программирования.
3. Анализ современных языков программирования.
В первой разделе рассматриваются общие сведения о языках программирования и истории развития языков программирования.
Во второй разделе рассматриваются основные принципы и подходы при создании языков программирования.
Объектом исследования являются изучение возникновения программирования, основных принципов и подходов при создании языков программирования.
Предметом исследования является язык программирования.
Методология и методика исследования.
Теоретической и методологической основой курсовой работы послужили теоретические положения и методологические подходы отечественных и зарубежных ученых.
Для обоснования выдвинутых в курсовой работе положений использовались методы системный подход, методы экспертных оценок.
Научная новизна исследования заключается в следующем:
1. исследование языков программирования:
2. рассмотрение истории развития языков программирования:
3. анализ современных языков программирования.
Практическая значимость результатов исследования заключена в том, что его основные положения, выводы и рекомендации могут быть использованы:
- в процессе дальнейших научных исследований по различным аспектам языков программирования;
- в преподавании дисциплин «основы программирования».
Структура курсовой работы состоит из введения, 2 глав, 4 параграфов, заключения, списка использованной литературы.
язык программирование поколение объектный
ГЛАВА 1. НАУЧНО-ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ
1.1 Сущность языков программирования и история возникновения программирования
Быстрое и обширное развитие IT-сферы повлекло за собой создание множества языков программирования, решающих проблему общения человека с компьютером. Это создает множество вопросов и проблем требующих ответов и решений. Из них одной наиболее интересных и важных является проблема дальнейшего развития языков, путей по которым их эволюция может пойти, какие языки будут более значимы в будущем. Начиная работу необходимо четко обозначить цель: выявление преимуществ наиболее перспективных языков программирования с точки зрения выявления дальнейшей положительной эволюции. Как известно, чтобы предугадать что-либо в будущем, нужно знать историю возникновения программирования, проанализировав которую, можно выявить тенденции дальнейшего развития.
Итак, обратимся к истории языков программирования, а она у них очень богатая[4].
Если рассматривать историю создания языков программирования сначала появилось программирование в машинных кодах, когда программист являлся единственным посредником между остальными людьми и машиной. Затем появились мнемонические представления машинного кода, ассемблер и, наконец, макроассемблер. В конце 50-х годов возникли языки формульного программирования, из которых наиболее замечательным был Фортран, позже в 60-х, произошло смещение к нечисленным методам - появился ALGOL, и наконец, к 70-м годам произошла структурная революция -ALGOL-Wи Паскаль. Потом "модульное" программирование - Модула и Модула-2. Также в это же время рождается знаменитый язык Си, идет новая революция логического программирования -PROLOG и экспертные системы. Например, в Америку проводится знаменитый конкурс, на котором побеждает ADA, а Япония толкует о проекте машин пятого поколения, основанных на SmallTalk. В итоге происходит объектно-ориентированная революция, появляются С++, Оберон, Eiffel и Модула-3.
Общественные тенденции развития языков программирования при историческом подходе проследить вполне возможно, однако изложение получается сумбурным и путаным. После Фортрана появились BASIC и VISUALBASIC. Паскаль также, по сравнению со многими другими языками, является немолодым языком программирования, но все-таки популярен в настоящие дни. Также можно столкнуться, что существует большое количество работ на ЯПKOBOL.
Рис.1.1.1. Языки программирования Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика, СПб.: «Питер», 2014.
Как видно из рисунка 1.1.1. программирование делится на два вида: процедурное и непроцедурное. Процедурное программирование, в свою очередь, делится на операционное и структурное. К операционному относятся такие языки, как Ассемблеры, Фортран, Бейсик, Си. К структурному Паскаль, Модула.
Непроцедурное делится га объектное (Смолток, С++, Делфи) и декларативное, которое состоит из логического и функционального.
Сплошная картина получается очень неоднозначная. Поэтому для достижения цели необходимо досконально изучить, проанализировать исторических период программирования. При этом необходимо раскрыть особенности создании языков программирования.
Операциональное программирование основывается на детальном описании решения той или иной задачи, т.е. формулировки алгоритма и необходимой специальной записи.
Структурное программирование похоже на операциональное направление, дополняя и фиксируя некоторые полезные приемы технологии программирования.
Объектно-ориентированный язык состоит из множества независимых объектов, где каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования.
В декларативном языке программирования указываются исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. В этом языке «алгоритм» заменяется «командой»[8].
Рис. 1.1.2. Языки, участвующие в создании программыhttp://bourabai.ru/alg/system4.htm
Как видно из рисунка 1.1.2. в создании программы участвуют изначально участвовали машинные языки, потом ассемблеры, затем языки программирования высокого уровня и языки моделирования.
В эпоху ускоренного развития информационно-коммуникационных технологий требует подготовка квалифицированных кадры, которые обладающие языков программирования. Внедрение нынешних технологий, оборудования и ИКТ способствует дальнейшему повышению точности и оперативности краткосрочного и долгосрочного прогнозирования.
Общеизвестно, что в древние времена человечество использовало приспособление, которые подобны счетам под названием якаб (ЯП). В частности такие устройства часто использовались в страна Древнего Востока. В середине 15 века такие ученые как Г. Лейбниц (1673г.), Б. Паскаль (1642г.) и В. Шиккард (1623г.) создали механические вычислительные устройства, которые были предшественниками общеизвестного арифмометра. Поэтапно в течении нескольких веков данные вычислительные машины были усовершенствованы. Но такого понятия как программа и программирование не применялось. В начале 20 века, а именно в 1830-х годах английский ученый Кембриджского университета Ч.Бэббидж, посредством анализа результатов обработки переписи населения Франции, а также теоретического исследования процесса выполнения вычислений выработал основы архитектуру вычислительной машины. В процессе работы над аналитической машины, а именно «Машины для исчисления разностей», Чарльз Бэббидж сделал прогноз на существующие сегодня идеи и принципы организации и функционирования современных ЭВМ. В частности, принцип программного управления. Работы Ч. Бэббиджа дала фундаментом дальнейших изучений в работах таких ученых как Аде Лавлейс (1815-1852гг).В 1843 году переведя работы Бэббиджа, она сформулировала основные принципы программирования аналитической машины, в которой было разработана первая программа (1843) и определила необходимость применения машины в создании двоичной системы счисления вместо десятичной, а также постулаты программирования, которые учитывают повтор одной и той же последовательности команд при установлении определенных условий. А. Лавлейс предложила такие термины как «Рабочая ячейка» и «Цикл». Вдобавок, она составила первые программы необходимые для решения системы двух уравнений и определения «чисел Бернулли» по разработанному алгоритму, а также предположила, что в недалеком будущем будут созданы машины, которые будут сочинять музыкальные произведения, рисовать картины и изображения и использоваться в повседневной деловой практике. Именно по этой причине А. Лавлейс в современной научной литературе считается основателем научного программирования и является первым в мире программистом.
В 1854 году английский математик Джордж Буль опубликовал книгу «Законы мышления», основной научной идеей которой является «алгебра высказываний» (Булева алгебра). В начале 80-х годов 20 века работа Д.Буль стала основой построения теории релейно-контактных схем и конструирования сложных дискретных алгоритмов. На практика «Булева алгебра» многогранно повлияла на бурное развитие вычислительной техники, которая в результате стала инструментом выработки и анализа сложных схем, рычагом оптимизации большого количества логических элементов из которой на сегодняшний день состоит современная машина ЭВМ.
Также идеи Ч.Бэббиджа стали основой изучения программирования для американского ученого Г.Холлерит, который посредством построения счетно-аналитической машина и перфокарта проанализировал результаты переписи населения США на 1980 год. Впервые для определения результатов было использовано машина на электричестве.
В 1896 году ученым Холлеритом была создана предприятие по выпуску вычислительной машины (перфорационная машина и перфокарт). В 1936 году английский математик А. Тьюринг ввел в научную культуру понятие «машина Тьюринга», в качестве формального уточнений интуитивного понятия алгоритма. Тьюринг с помощью электронной машины Тьюринга показал реализацию алгоритма, т.е. существование возможности построения универсальной IBM. Машину Тьюринга можно считать как бы идеализированной моделью универсальной IBM.
В 40-х годах 20 века в качестве механической элементной базой многие ученые начали использовать электрические вычислительные машины. Впервые электромеханические машины начали производить в Германии под руководством К. Цузе (Ц-3) и в США - Г.Айкен (МАРК-1). А первая электронная машины была создана в США (1946г) группой инженеров во главе доктора Дж.Мочли (ЭНИАК - электронный числовой интегратор и калькулятор). В 1949 году в Англии была создана машина «EDSAC», которая обладала автоматическим программным управлением, внутренними запоминающими устройствами и другими основными элементами. Вопросы логических схем были решены в 1940-х годах А.Берксом, Г. Гольдстайном и Дж. фон Нейманом. Основной вклад внес американский ученый Дж. фон Нейман, который в разработке использовал ЭНИАК [11]. Он предложил мысль хранения команд управления и памяти машины, а также определил главные постулаты факторы построения современных IBM. IBM с функцией сохранения программ оказались намного эффективней, гибкой и быстродействующей в сравнении тогдашними конкурентами. В 1951 году впервые были налажены поставки по производству серийных электронных машин УНИВАК (Универсальная автоматическая вычислительная машина). В то же самое время IBM начали производство серийных машин IBM/701. Во время СССР первыми авторами IBM, изобретенной в 1948 году, являются И. Брук и Б. Рамеев. А первая советская IBM с сохраняющейся программой создана в 1951 году под руководством С. Лебедева (МЭСМ - малая электронная счетная машина). А в 1953 году в Советском Союзе было начато производство серийных машин БЭСМ-1 и «Стрела». После создания цифровых машин с программным обеспечением в науке появилась новая область в прикладной математике, а именно - программирование. С точки зрения науки и профессии она началась признаваться с 1950-х годов. Первое время программы составлялись вручную на машинных языках, что, в свою очередь, означало о трудоемкости процесса создания программы. В результате, для облегчения методов создания и отладки программ были созданы мнемокоды, которые были идентичны к машинному языку, но использовались символьной адресацией. Ассемблеры переводили программу, записанную в мнемокоде, на машинный язык и, расширенные макрокомандами, применяются и в настоящее время. В последствии были созданы автокоды, применяющиеся на различных машинах и позволяющие обмениваться программами. Автокод - это набор псевдокоманд для решения задач (научные, инженерные и т.д.), для которых , в результате, были созданы библиотеки стандартных программ. До конца 1950-х годов основными элементами конструкции IBM были электронные лампы. Период развития идеологии и техники программирования в 1950-е годы является достижениями американского ученого Дж. фон Неймана, которые дал начало важнейшим принципам построения IBM. Но также немаловажный вклад внес и Бэкус, который в 1954 году создал FORTRAN (FORMULA TRANSLATION) . это был первый язык программирования высокого уровня, который используется и в настоящее время, но только в разных модификациях.
В 1965 году Т.Куртцем и Д.Кэмэни была проработана упрощенная версия Фортрана - BASIC. В результате которого Американская Ассоциация Стандартов (АSА) разделила его на два языка: «Фортран» и «Базисный Фортран» (далее в 1970-е и 1990-е были модифицированы). В дальнейшем после больших открытий в области микроэлектроники , элементная база IBM была заменена на более совершенную. В результате, в 1950-е годы электронные лампы были заменены полупроводниками. Таким образом, появляется IBM - 2-го поколения; через 10 лет IBM - 3-го поколения на схемах интегрирования; еще через 10 лет IBM - 4-го поколения на больших интегральных схемах БИС. В 1990 году Япония реализует проект IBM - 5-го поколения на базе искусственного интеллекта и биоэлектроники.
1.2 Классификация языков программирования
В 1965 году итальянские ученые Бом и Джакопини выдвинули гипотезу использования следование, цикл и ветвление в качестве базисных алгоритмических элементов. В то же самое время к аналогичным выводам пришел голландец Э. Дийкстра, который в результате заложил основу структурного программирования. В 1970-е года данная методология была публична оформлена, где в практике IBM в средства массовой информации сообщила о применении программного обеспечения под названием «Усовершенствованные методы программирования», из ключевых компонентов стала технология нисходящего структурного программирования. Данная технология базируется на следующих компонентах:
v Разбитие сложных задач на простые функционально-управляемые задачи, в которой каждая задача имеет один вход и выход;
v Поток управления программы состоит из совокупности функциональных подзадач элементарной сложности;
v Простая структура управления, а именно логическая задача состоит из минимального количества полной совокупности функционально-простых структур управления.
Создание программы происходит поэтапно, на каждом этапе которого определяются точное число поставленных задач. Четкое определение основ нисходящих разработок, структурных кодирований и сквозного контроля дали возможность перейти к промышленным методам разработки ПО. Такое развитие привело к модульному программированию, основами которых являются:
v Функциональное разбиение (декомпозиция) задач на независимые подзадачи - модули, которые связаны только входными и выходными данными;
v Модульное программирование представляет собой «черный ящик», который позволяет вырабатывать части программ на различных языках программирования. Дальше с помощью компоновочных средств объединить их в один совокупный загрузочный модуль;
v Четкое определение назначенных всех задач модуля и их дальнейшее оптимальное сочетание.
Посредством комментариев необходимо описать назначение всех переменных модулей. В период с 1970 по 1980 года бурное развитие теоретических основ признало программирование как самостоятельную научные дисциплину, которая занимается разработками методов программного обеспечения (ПО). В формировании истории развития программирования значительную роль внес программист и бизнесмен Билл Гейтс (GatesWilliamHenry, p. в 1955 г.). Б.Гейтс и его коллега П. Аллен создали предприятие по анализу уличного движения «Трэф-О-Дейта», который использовался для обработки компьютерных данных с микропроцессами 8008 - 1-й микропроцессор компании «INTEL». Будучи студентом Гарвардского университета, в 1975 году Гейтс совместно с Алленом написали для компьютера ALTAIR (фирмы M1TS) интерпретатор - программу переводчик с языка программирования на язык машинных кодов. В результате, программирование вышло на новый уровень технологии. Разработанные методы ПО синтезируются на следующие:
v Метод инженерных расчетов для оценивания затрат и выбора решения;
v Метод математического составления алгоритма;
v Метод определения требований к системе управления, учета ситуаций, организация и прогнозирование работ.
В начале 1990-х годов взамен структурному программированию пришло ООП - объектно-ориентированное программирование. ООП рассматривается с точки зрения нового уровня модульного программирования, т.е. вместо многих случайных механически объединенных процедур и данных становится их смысловая связь. Данный объект рассматривается через призму логической единицы, содержащие правила или методы их обработки. Объектно-ориентированный язык создает «программное окружение» в форме множеств свободных объектов, отличающиеся характерными свойствами и способами синтеза друг с другом. Программист создает совокупность операций, задавая между объектами структуру обмена сообщениями. В большинстве случаев, «не заглядывая» внутрь объекта, но который при необходимости имеет возможность изменить элементы изнутри объектов или формировать новые идентичные с новыми параметрами. ООП базируется на трех важнейших принципах (наследование, инкапсуляция, полиморфизм), которые придают объектам новые свойства[10].
Инкапсуляция - это совокупность целых данных и алгоритмов при их обработке. Существующие данные - это поля объекта, а алгоритм - это объектные методы. Наследование - это свойство объектов, т.е. порождение своих потомков. Объект является потомком автоматически наследующего все поля и методы, а также имеет способность дополнять объекты новыми полями, дополнять и заменять методы. Полиморфизм - это свойство родственных объектов способность решать схожие по смыслу проблема разнообразными способами. Суть использования программных объектов - это исследовать в течении нескольких лет разными учеными. Одним из первоначальных языков программирования считается Simula-67. А в 1972 году появился новый язык Smoltalk, который был разработан А.Кеем (утвердил статус ООП). На передовом этапе началось развитие инструментальной среды и системы визуального программирования необходимые для создания программ на уровня высокого языка (VISUAL BASIC, Delphi, TurboPascal, C++BUILDER и др.).
Большой скачок основных принципов объектного программирования начало развитие с разработки компонентного программирования (КП). КП - это динамический процесс без особо жестких правил, которые выполняются в основном для делегирования разработки (программирования) делегированных систем. Идея КП в независимом проектировании независимых компонентов (отдельные части) целой системы, делегированные по множеству узлов огромной сети. Эти части могут управляться разными пользователя, т.е. как собственниками, так и независимыми администраторами. Компонент КП рассматривают в виде хранилища (DLL-или ЕХЕ файлы) для одного или различных классов. Классы не должны распространяться в виде исходного кода, а в бинарном виде. Разрешение на доступ методов класса ведется через строго зафиксированные интерфейсы в соответствии протокола. Это осуществляется для того, чтобы снять проблему несовместимости компиляторов, которое обеспечивают без перекомпиляции смену версий классов в разнообразных приложениях. Интерфейс задает параметры содержания необходимого сервиса и является непосредственным посредников между сервером и пользователем. Компания Microsoft выработала технологии для распределенной разработки распределенных систем, к примеру COM (ComponentObjectModel), COM+, .NET и другие. Существуют и другие технологии, такие как JAVA (компании SunMicrosystem), CORBA (консорциума OMG) и другие. Мысль изменении роли функции составления алгоритмов и программистов на ЭВМ стала «локомотивом» для новые возможности для развития сфер искусственного интеллекта, имеющая функцию создания методов автоматического определения решений интеллектуальных задач. Формализация знаний, существующие у профессионалов в разных сферах программирования, также накопление баз знаний, которые реализованы на ЭВМ, стали фундаментом для формирования экспертных систем. На основе баз знаний работают и интеллектуальные роботы, и ЭВМ 5-го поколения, и экспертные методы. Все эти системы могут не только найти необходимые решения заданной задачи, но и найти объяснения, как оно и получено. Появились возможности по манипулированию знаний, а также метазнания - это иметь знания о знаниях. Знания, которые хранятся в системе, стали объектом из собственных исследований. Независимость языков программирования ЭВМ высокого уровня привела к решению многих вопросов алгоритмизации различных сфер знаний, также позволила использовать различные типовые программые обеспечения, а программистам обеспечила дублировать написание программ для разных типов ЭВМ и заметно повысить КПД (коэффициент полезного действия). В конце 1980-х годов в США и Японии были спроектированы проекты ЭВМ 5-го поколения, которые были реализованы в конце 1990-е годы. Данный прогресс в программировании был связан с успехом в архитектурном вычислении систем, отходами от фон-неймановской концепции - достижение в области искусственного интеллекта. Революция изменений в элементной базе ЭВМ было связано с исследованиями в сфере биоэлектроники. На сегодняшний день программирование включает в себя ряд вопросов, которые связаны с написанием спецификаций, проектированием, кодированием, функционированием и тестированием программных обеспечений для ЭВМ. Современные ПК для ЭВМ имеют сложную структуру функционирования и включают в себя ОС, текстовые программы диагностики и контроля, трансляторы разнообразных языков и набор обслуживающих программ. В качестве примера можно привести результаты японских ученых, которые в процессе проектирования систем ПО разработали идею «кольцевой структуры» шести уровней, которые состоят из:
· программы сопряжения;
· ядро ОС;
· (внутренний) программы для аппаратуры;
· (внешний) программы пользователя;
· часть ОС, ориентированная на пользователя;
· системы программирования.
В соответствии с рассматриваемым проектом научных исследований планируется облегчить процесс формирования программных средств путем скрещения исходных спецификационных требований на естественных языках. На современном этапе в Японии ведется работа над созданием робота - переводчика, который будет переводить японскую речь на английский язык и наоборот посредством человеческого языка. Во всех развитых странах ведутся работы над комплексными программами для создания роботов, которые будут использоваться во всех сферах жизнедеятельности.
ГЛАВА II. ОСНОВНЫЕ ПОДХОДЫ ПРИ СОЗДАНИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1 Применение структурных и объектно-ориентированных подходов программирования
Большое количество широко применяемых структурных иобъектно-ориентированных подходов программирования, которые используются с помощью графических моделей, связано с отсутствием необходимых инструментальных средств. Это привело к повышению потребности в программно технологических средствах специального класса под названием CASE (ComputerAidedSoftwareEngineering), которые реализуют технологию созданию и дальнейшего сопровождения ПО разных систем. Впервые о создании CASE технологий начали задумываться в конце 1980-х годах. Изначально термин CASE использовали только к вопросам, касающиеся автоматизации разработок ПО, но на сегодняшний день наука инженерия имеет в широкое значение в вопросах разработки систем. В CASE технологии можно внести: разработка и дальнейшее внедрение высокого уровня языков, методы структурного и модульного программирования, язык проектирования и поддерживающих средств, формальные и неформальные языки, описывающих систему требований. В начале 20 века создание пишущей механической машины создала «фундамент» для общедоступного создания печатного текста (поправки требовали достаточно долгой трудоемкой работы). После было изобретено электрические пишущие машины. Затем появились персональные компьютеры, которые облегчили создание печатного текста. Последние два десятилетия прошлого века ввелись большое количество работ по созданию комплексных программ для обработки текста, первоначально получивших название текстовые редакторы. В процессе доработки и усовершенствования (широкий спектр функциональных возможностей) были переименованы в текстовые процессоры[12].
В начале 21 века процессоры стали намного улучшены. Наряду с более простыми, например PROFESSIONAL WRITE, появились многофункциональные, как MS WINWORD, WORDPERFECT WORDSTAR 2000 и др.. В начале 1980-х годов для того, чтобы подготовить и обработать числовую информацию начали использовать табличный процессор. В 1979 году Д. Брикклин выдвинул идею об использовании программы для работы с электронными таблицами Visicalc. В 1981 году была выработана система SuperCalcкомпании «ComputerAssociates», в 1982 году -Multiplan, принадлежащий компании «Microsoft», далее - пакет для IBM PC Lotusl-2-3 компании «LotusDevelopment», русифицированные пакеты АБАК, ДРАКОН и др. В 1985 году появился табличный процессор Excel фирмы «Microsoft» первоначально для ПК Macintosh, а затем для совместимых с IBM PC. Разработка этого процессора велась параллельно с ОС «Windows», версии которых охватили все характеристики графического интерфейса, вплоть до версий Excel 5.0 как приложения Windows 3.1, Excel 7.0 - Windows 95 и т. д.
На сегодняшний день создано огромного количество систем подготовки табличных документов, а именно электронные таблицы, табличные процессоры, к примеруLotus 5.0 компании «LotusDevelopmentCo», CorelQuattro 6.0 компании «CorelCo», OfficeProftessionalforWindows компании «Microsoft» и т.д. Среди вышеперечисленных программ широкое использование получила электронная таблица Excel. Вдобавок, разработаны значительное количество стандартных реляционных систем управления баз данных - СУБД (MS Access, Paradoxи др.), на основе которых строят реляционную базу данных во многих сферах жизнедеятельности. Для многих предприятий (управленческо-организационных структур) созданы офисные пакеты, которые базируясь на единой системе ОС функционируют приложения, входящих в состав систем для работы с различными видами информации. К примеру, созданы такие приложения к оперативной системе Windows как: MS Office, WordPerfectOffice компании «Corel», StarOffice компании «SunMicrosystems. Данные приложения включают в себя программные средства для реализации функций обработки существующих видов информации. Например, MS Office включает совершенствующиеся год от года (в зависимости от последней версии ОС Windows) средства обработки текста (MS Word), графики (PhotoDraw) и презентаций (PowerPoint), таблиц (Excel), баз данных (Access), электронной почты (Outlook), работы во Всемирной паутине (FrontPage), создания звуковых клипов (MS SoundRecorder).
2.2 Новое поколение программирования
Рычагом бурного развития новейших направлений программирования стало объединение компьютерных и телекоммуникационных современных технологий. В 1960-м году появились первые вычислительные машины, которые стали «локомотивом» в революционном формировании техники и технологий, т.к. были начаты попытки соединить хранение, технологию сбора, обработки и передачи информации на ЭВМ с техникой связи. В то самое время в Европе были формированы международные сети EIN и Евронет, которые послужили началом в появлении национальных сетей. В 1972 году в Вене был принят акт по созданию сети МИПСА, к которой, в результате, в 1979 году присоединились СССР, США, Япония, Канада и 17 стран Европы. В 1980-х годах в СССР была создана система телеобработки статистической информации, которые обслуживали государственные и республиканские органы статистики[1].
На сегодняшний день, новые поколения язык программирования PHP является мощнейшим инструментом для разработки Веб-приложений. Простота языка, богатые возможности, широкая функциональность делает его самым популярным языком у Веб-разработчиков. Кроме того PHP был разработан в рамках проекта OpenSource. Поэтому интерпретатор PHP есть практически на каждом хостинге. Язык PHP очень простой в изучении, на просторах интернета выложены различные полезные библиотеки на данном языке, присутствует множество примеров реализации различных функций[1].
История PHP начинается в 1994 году, когда программист энтузиаст РасмусЛердорф сделал набор из скриптов на языке Perl. Цель этой разработки - сохранение статистики просмотров его резюме в формате html. Расмус наименовал свое творение PersonalHomePage (Персональная Домашняя Страница). Когда функциональности и быстроты языка Perl для его проектов стало не хватать, Лердорф написал новый интерпретатор на языке C. Так появилась первая версия интерпретатора PHP.
Спустя 3 года была разработана вторая версия интерпретатора PHP, которая также была написана на языке C.Популярность PHP в то время была крайне низкой - около 5 десятков тысяч человек по всему миру использовали его для своих разработок[1].
Третья версия PHP вошла в историю, именно она определила современный стиль и облик PHP. Переработанная израильскими программистами Энди Гутмансом и ЗеевомСураски версия PHP 3.0 официально вышла летом 1998 года.
Основное преимущество PHP 3.0 - возможность подключения к ядру дополнительных модулей для расширения функционала. Язык PHP набирал все больше сторонников. Он поддерживал работу со всеми популярными базами данных. В PHP 3.0 была возможна поддержка множества протоколов и различных API. Рост популярности языка PHP способствовал его стремительному развитию. PHP стал расшифровываться как «HypertextPreprocessor» - гипертекстовый препроцессор.
В конце 1998 года израильские программисты начали разрабатывать новый движок. Они сделали акцент на увеличение производительности и совершенствование модульности базиса PHP кода. Благодаря труду разработчиков в 1999 году родился движок под названием ZendEngine, который был на голову выше движка предыдущей версии PHP. На основе ZendEngine к 2000 году официально был выпущен язык PHP 4.0. В новой версии значительно возросла производительность, присутствовал ряд полезных нововведений. В PHP 4.0 была включена поддержка сессий. Стало возможно буферизировать вывод. Язык стал более безопасный.
В середине июля 2004 года вышла пятая версия PHP. PHP 5 работает на ядре ZendEngine 2, которое значительно эффективней и производительней. Значительным моментом в истории развития PHP было внедрения полноценного объектно-ориентированного программирования в PHP 5, что в разы упростило и сделало удобным разработку масштабных проектов на языке PHP. В настоящее время последняя версия интерпретатора PHP - версия 5.4.
Шестая версия находится в разработке с 2006 года. Но спустя 4 года разработчики посчитали ее бесперспективной из-за возникших проблем. Судьба PHP 6 пока что неизвестна.
Основные достоинства РНР:
· бесплатен;
· постоянно совершенствуется;
· работает на UNIX и Windows платформах;
· допускает работу с большинством СУБД;
· имеет широкий набор функций (более 3 тыс.);
· допускает объектно-ориентированное программирование;
· способен использовать протоколы HTTP, FTP, SNMP, NNTP, POPS.
· Позволяет выполнять все операции, что и перечисленные его конкуренты, и даже работать с файлами графики.
· Можно также запускать PHP-скрипты как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с поддержкой графического интерфейса GTK).
Также в история программирования появилсяязык C#.Она стартовала 2000 г. в результате кропотливой работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом (AndersHejlsberg).
А.Хейлсберг известен научному миру программирования известен компилируемым языком программирования для ПК IBM - TurboPascal. По существующим данным, на территории бывшего СССР многие программисты разработчики со стажем испытывали очарование и удобство при использовании данного продукта. А также во время научно - исследовательских работ А. Хейлсберг создал интегрированную среду Delphi (руководствовался проектом до выхода 4.0 серии). Появление языка С# и инициатива создания .NET отнюдь пришла не случайным образом на 2000 год. Именно в этот момент компании Microsoft создала промышленную версию новой компонентной технологии и решение в области обмена данными и сообщениями, вдобавок создание Internet - приложения - COM+, ASP+, ADO+, SOAP, BiztalkFramework. Без сомнения, лучший способ продвижения вышеуказанных новинок кроется в создании необходимого инструментария для разработчиков и полной ее поддержкой. Именно в этом и заключается задача нового языка C#. Кроме того компания Microsoft не имела ресурсов для расширения все тех же инструментов и языков разработки, которая делает их более сложными в сравнении с предыдущими для удовлетворения конфликтующих между собой требований современного оборудования, а также обеспечение взаимной совместимости с продуктами, произведенными в начале 1990-х годах (во время появления ОС Windows). В результате приходит время, когда становится необходимо начать все с чистого листа для того, чтобы создать вполне простой, но который будет иметь сложную структуру набора языков, средств для разработки и сред, позволяющие разработчикам легко создать современные программные технологии. С# и .NET являются фундаментом для создания именно таких программных технологий.
Простыми словами, .NET является новая платформа, новый API для программирования в Windows, а С# е новый язык, созданный с нуля, для работы с этой платформой, а также для извлечения всех выгод из прогресса сред разработки и нашего понимания принципов объектно-ориентированного программирования в течение последних 20 лет.
Необходимо учитывать, что взаимозависимая совместимость не потеряна. Функционирующие программы будут успешно использоваться пользователями, а платформа .NET спроектирована таким способом, что она может работать с существующим в наличии программными обеспечениями. На сегодняшний день связь между компонентами Windows полностью функционирует с помощью СОМ. По этой причине .NET имеет способность:
· Создавать оболочки (анг.Wrappers) вокруг имеющихся компонентов СОМ, таким образом, что компоненты .NET будут иметь возможность взаимодействовать с ними;
· Создавать оболочки вокруг компонентов .NET, которые в результате будут выглядеть как обычные СОМ-компоненты.
Создатели C# хотели создать язык, который будет сочетать в себе простоту и выразительность современных объектно-ориентированных языков (напримерJava) с широким спектром функциональности и мощью С++. По мнению А. Хейлсберга, C# позаимствовал широкий спектр своих синтаксических конструкций из С++. А именно, там присутствуют структурные данные, такие как структура и перечисление (другой потомок C++ - Java - лишен этих элементов, что создает определенные неудобства при программировании).
Синтаксические конструкции С# унаследованы не только от C++, но и от VisualBasic. Например, в С#, как и в VisualBasic, используются свойства классов. Как C++, С# позволяет производить перегрузку операторов для созданных вами типов Java не поддерживает ни ту, ни другую возможность). С# -- это фактически гибрид разных языков. При этом С# синтаксически не менее (если не более) чист, чем Java, так же прост, как VisualBasic, и обладает практически той же мощью и гибкостью, что и C++.
Особенности С#:
- Большой спектр определенных наборов основных типов:
- Встроенная поддержка автоматической генерации XML-документации. Освобождение динамически распределенной памяти на автоматическом уровне.
- Способность отметить классы и методы атрибутов, которые определяются пользователями. Это может быть необходимым при документировании и иметь способность воздействия на процесс компиляции. Например, отметить методы, компилирующиеся только в режиме отладки.
- Неограниченный доступ в библиотеку базовых классов .NET, а также свободный доступ к Windows API (при необходимости).
- Указатели и прямой доступ к памяти, если они необходимы. Однако язык разработан таким образом, что практически во всех случаях можно обойтись и без этого. Поддержка свойств ида событий в стиле VB.
- Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ) да
- Возможность использования С# для написания динамических web-страниц даASP.NET.
Одной из областей, для которых не предназначен этот язык, являются критичные по времени и высокопроизводительные программы, когда имеет значение, занимать исполнение цикла 1000 или 1050 машинных циклов, и освобождать ресурсы требуется немедленно. C++ остается в этой области наилучшим из языков низкого уровня ВС# отсутствуют некоторые ключевые моменты, необходимые для создания высокопроизводительных приложений, дав частности подставляемые функции и деструкторы, выполнение которых гарантируется в определенных точках кода[8].
Далее Ruby (англ. Ruby-- «Рубин») -- динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Rubyблизок по особенностям синтаксиса к языкам Perl и Eiffel, по Объектно-ориентированному подходу -- к Smalltalk. Также некоторые черты языка взяты из Python, Лисп, Dylan и CLU.Платформенная реализация интерпретатора языка является полностью свободной.Язык использует простые соглашения для обозначения области видимости.
В языке Ruby реализован простой и удобный механизм для расширения языка с помощью библиотек, написанных на Си, позволяющий легко разрабатывать дополнительные библиотеки. Для унифицированного доступа к базам данных разработана библиотека Ruby DBI (поддерживает SQLite, Oracle, ODBC, MySQL, DB2, MS SQL, InterBase, ADO и др.). Также существуют библиотеки для конкретных баз данных, поддерживающих специфические для них операции. Для реализации ORM существуют несколько библиотек, такие как ActiveRecord, DataMapper или Sequel. Из графических библиотек следует отметить FxRuby -- интерфейс к графической библиотеке FOX, графический пакет разработчика wxRuby (интерфейс к кроссплатформенному пакету wxWidgets на C++), QtRuby/Korundum -- привязка к Qt и KDE соответственно,
графические библиотеки для работы с Tk и Gtk. Также реализована библиотека для работы с OpenGL, позволяющая программировать трёхмерную графику.
Win32utils -- позволяет обращаться к специфическим возможностям Win32 API.
Rmagick -- библиотека для работы с изображениями, поддерживающая более 90 форматов (основана на ImageMagickиGraphicsMagick).
Библиотека Ruport (Rubyreports) предназначена для лёгкой реализации отчётов и создания диаграмм на основе данных из БД или прямо из текстовых файлов CSV. Причём результаты можно сохранять в форматах PDF, HTML, CSV и TXT.
RuTils -- обработчик русского текста на Ruby. Позволяет реализовать сумму прописью и выбор числительного.
Например, 231.propisju(2) => «двести тридцать одна» или 341.propisju_items(1, «чемодан», «чемодана», чемоданов») => «триста сорок один чемодан». А также перевод в транслит и работу с датами.
Для управления библиотеками и программами Ruby в виде самодостаточных пакетов предназначена система управления пакетами RubyGems (англ. gems, gem -- драгоценный камень).
Существует всемирный репозиторий программного обеспечения Ruby RAA (RubyApplicationArchive). Большое количество программного обеспечения, написанного на Ruby, пользуются хостингом проекта RubyForge, созданного специально с этой целью.
FreeRIDE -- IDE для Ruby, реализованная с использованием библиотеки FxRuby.
Большинство расширений распространяются под свободными лицензиями (LGPL, лицензия Ruby) и могут быть использованы в любом проекте практически без ограничений.
Рис.2.2.1. Схема пересечения семантики языков программированияhttp://mathhelpplanet.com/static.php?p=semantika-formalnykh-yazykov
Хотя современные языки программирования похожи друг на друга, идентичность их далеко не полная. Каждый содержит конструкции, присущие только ему. Если мы попытаемся начертить схему пересечения семантики языков программирования, то можем получить изображение, приведенное на рисунке 2.2.1.
На нем видно, что существует общая семантическая зона, в которую входят конструкции, принадлежащие всем языкам программирования (или большинству из них). Таким образом, семантику каждого языка программирования можно условно поделить на «область пересечения» (конструкции общие для всех языков) и «область объединения» (конструкции специфические для данного языка).
ЗАКЛЮЧЕНИЕ
Данным написанным курсовой работе была изучена история возникновения программирования. В создании программы участвуют изначально участвовали машинные языки, потом ассемблеры, затем языки программирования высокого уровня и языки моделирования.
Языки программирования делятся на два вида: процедурное и непроцедурное. Процедурное программирование, в свою очередь, делится на операционное и структурное. К операционному относятся такие языки, как Ассемблеры, Фортран, Бейсик, Си. К структурному Паскаль, Модула.
Непроцедурное делится га объектное (Смолток, С++, Делфи) и декларативное, которое состоит из логического и функционального.
В настоящее время внедряются новейшие технологии, оборудования и ИКТ, которые способствуют дальнейшему повышению точности и оперативности краткосрочного и долгосрочного прогнозирования.
Также была анализирована систематизация знаний о подходах и принципах создании новейших языков программирования. Следует отметить, что рассмотренная тема, позволить рассмотреть система становления технологий и языков программирования и является интересной с точки зрения специалиста в сфере -IT.
Если анализировать системы развития основных языков программирования, можно выделить следующие постоянно присутствующие, сменяющие друг друга тенденции:
* Выдвижение акцентов от частного (программирование деталей), к общему (программирование более крупных компонент);
* Формирование и совершенствование инструментария программиста (языков программирования высокого уровня и рабочей среды);
* Возрастание примитивности программных и информационных систем;
Если сделать вывод что в развитии языков программирования на данный момент является тенденция: языки программирования формируются в сторону все большей и большей абстракции от реальных машинных команд. К чему это приведет? К увеличению быстроты разработки программ, повышению уровня надежности программирования, сопровождающиеся при этом падением эффективности. Но это того стоит. С небольшой эффективностью можно бороться путем создания более быстрых компьютеров. Если требуется увеличить памяти машин, можно повышать ее объем. А это, перебивают времени и средств, но это решаемо. Также есть вариант исправлять ошибок в программах только одним способом: только их надо выправлять. А лучше -- не совершать ошибку. Также максимально затруднить их совершение. И именно на это направлены все исследования в сферы языков программирования. А с потерей эффективности придется смириться.
Языки программирования отличаются от большинства других форм человеческого выражения тем, что они требуют большей степени точности и полноты. При использовании естественного языка для общения с другими людьми авторы и ораторы-люди могут быть двусмысленными и допускать небольшие ошибки, и все еще ожидают, что их намерение будет понято. Однако, образно говоря, компьютеры «делают именно то, что им говорят», и не могут «понять», какой код программист намеревался написать. Комбинация определения языка, программы и входов программы должна полностью определять внешнее поведение, которое возникает при выполнении программы, в пределах области управления этой программой. С другой стороны, идеи об алгоритме могут быть переданы людям без точности, необходимой для выполнения, с использованием псевдокода, который перемежает естественный язык с кодом, написанным на языке программирования.
Таким образом, можно определенно сказать, что наиболее перспективными являются языки программирования, приближенные к человеческой логике, которые позволят пользователям действительно общаться с компьютером.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Источники на русском языке:
1. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. - М.:Наука, 1987. - 112 с.
2. Андреев А. Эволюция современных языков программирования, Мир ПК, 2015, № 03
3. Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. - М.: "ДМК", 2000. - 416 с.
4. Зуев Е.А. TurboPascal. Практическое программирование. - Приор,1997. - 336с.
5. Информатика. Базовый курс под ред. С. В. Симоновича, С.-П «Питер» 2011.- №4,с.36-40.
6. Йенсен К., Вирт Н. Руководство для пользователя и описание языка. - М.,1982. 151 с.
7. Кирнос В.Н. Информатика 10 - 11 класс: Кокшетау: «Кешелек»,2005. - 208с.
8. Лафоре Р. Объектно-ориентированное программирование в С+++, М.: 2014
9. Лукин С.Н. TURBO PASCAL 7.0. Самоучитель для начинающих.- Диалог-МИФИ,2005.-400с.
10. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика,СПб.: «Питер», 2014.
11. Му Б., Липпман С. Язык программирования С+++. Базовый курс, М.: 2012
12. Немнюгин С.А. Turbo Pascal (практикум): СПб.: «Питер», 2003. - 475с.
13. Орлов С.А.Теория и практика языков программирования, СПб.: 2013. -- 688 с.
14. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. - СПб: Питер, 2013.-393с.
15. Пильщиков В.Н. Сборник упражнений по языку Паскаль. - М.: Наука, 1989.- 160 с.
16. Пирс Б. Типы в языках программирования - М., 2015
17. Прата С. Язык программирования С. Лекции и упражнения, М.: 2015
18. Роберт В. «Основные концепции языков программирования», 2014. -672 с.
19. Фаронов В.В. TurboPascal 7.0. Начальный курс. - Нолидж, 1998. -620 с.
Электронные ресурсы:
1. https://www.osp.ru/pcworld/2001/03/161246/
2. http://newstar.rinet.ru/~goga/tapl/tapl.html
3. http://mathhelpplanet.com/static.php?p=semantika-formalnykh-yazykov
Размещено на Allbest.ru
Подобные документы
Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.
курсовая работа [345,6 K], добавлен 13.11.2009Характеристика языков программирования: краткая история, хронология. Основные виды языков программирования: ассемблер; бейсик. Создание и использование формул в Excel. Применение операторов в формулах. Использование функций в Excel. Сайт дома отдыха.
отчет по практике [139,1 K], добавлен 03.06.2011Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.
курсовая работа [759,5 K], добавлен 04.11.2014Машинные коды и ассемблер. Первые языки программирования высокого уровня. Язык программирования FORTRAN. Достоинства и недостатки ALGOL. Научные и бухгалтерские программы. Основные принципы, которые соблюдались при создании языка программирования Basic.
курсовая работа [407,4 K], добавлен 21.06.2014Сущность и функции языков программирования, их эволюция и оценка популярности различных видов. Особенности компьютерных программ, разработанных на компилируемом, интерпретируемом или смешанном языке. Основные классы и иерархия языков программирования.
презентация [873,4 K], добавлен 23.01.2013Описание современных языков программирования (Паскаль, Ассемблер, С++, Бейсик, Лого, Форт, Пролог, Рефал и Лекс). Понятие, назначение и составные элементы систем программирования (машинно-ориентированных и машинно-независимых систем программирования).
курсовая работа [96,3 K], добавлен 18.08.2010Развитие и классификация языков программирования. Методические рекомендации по изучению языков программирования. Основные понятия объектно-ориентированного программирования. Создание электронного учебного пособия с помощью языка гипертекстовой разметки.
курсовая работа [331,1 K], добавлен 06.09.2011Основные концепции языков программирования, механизмы типизации данных. Описание языков программирования и методов трансляции. Конечные автоматы и преобразователи. Общие методы синтаксического анализа. Формальные методы описания языкового перевода.
курс лекций [5,5 M], добавлен 04.12.2013Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.
реферат [463,6 K], добавлен 07.09.2009