Файл: История развития программирования в России (Сущность языков программирования и история возникновения программирования).pdf
Добавлен: 25.04.2023
Просмотров: 94
Скачиваний: 1
СОДЕРЖАНИЕ
ГЛАВА 1. НАУЧНО-ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ
1.1 Сущность языков программирования и история возникновения программирования
1.2 Классификация языков программирования
ГЛАВА 2. ОСНОВНЫЕ ПОДХОДЫ ПРИ СОЗДАНИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.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 в средства массовой информации сообщила о применении программного обеспечения под названием «Усовершенствованные методы программирования», из ключевых компонентов стала технология нисходящего структурного программирования. Данная технология базируется на следующих компонентах:
- Разбитие сложных задач на простые функционально-управляемые задачи, в которой каждая задача имеет один вход и выход;
- Поток управления программы состоит из совокупности функциональных подзадач элементарной сложности;
- Простая структура управления, а именно логическая задача состоит из минимального количества полной совокупности функционально-простых структур управления.
Создание программы происходит поэтапно, на каждом этапе которого определяются точное число поставленных задач. Четкое определение основ нисходящих разработок, структурных кодирований и сквозного контроля дали возможность перейти к промышленным методам разработки ПО. Такое развитие привело к модульному программированию, основами которых являются:
- Функциональное разбиение (декомпозиция) задач на независимые подзадачи – модули, которые связаны только входными и выходными данными;
- Модульное программирование представляет собой «черный ящик», который позволяет вырабатывать части программ на различных языках программирования. Дальше с помощью компоновочных средств объединить их в один совокупный загрузочный модуль;
- Четкое определение назначенных всех задач модуля и их дальнейшее оптимальное сочетание.
Посредством комментариев необходимо описать назначение всех переменных модулей. В период с 1970 по 1980 года бурное развитие теоретических основ признало программирование как самостоятельную научные дисциплину, которая занимается разработками методов программного обеспечения (ПО).
В формировании истории развития программирования значительную роль внес программист и бизнесмен Билл Гейтс (GatesWilliamHenry, p. в 1955 г.). Б.Гейтс и его коллега П. Аллен создали предприятие по анализу уличного движения «Трэф-О-Дейта», который использовался для обработки компьютерных данных с микропроцессами 8008 – 1-й микропроцессор компании «INTEL».
Будучи студентом Гарвардского университета, в 1975 году Гейтс совместно с Алленом написали для компьютера ALTAIR (фирмы M1TS) интерпретатор - программу переводчик с языка программирования на язык машинных кодов. В результате, программирование вышло на новый уровень технологии. Разработанные методы ПО синтезируются на следующие:
- Метод инженерных расчетов для оценивания затрат и выбора решения;
- Метод математического составления алгоритма;
- Метод определения требований к системе управления, учета ситуаций, организация и прогнозирование работ.
В начале 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-е годы.
Данный прогресс в программировании был связан с успехом в архитектурном вычислении систем, отходами от фон-неймановской концепции – достижение в области искусственного интеллекта. Революция изменений в элементной базе ЭВМ было связано с исследованиями в сфере биоэлектроники.
На сегодняшний день программирование включает в себя ряд вопросов, которые связаны с написанием спецификаций, проектированием, кодированием, функционированием и тестированием программных обеспечений для ЭВМ. Современные ПК для ЭВМ имеют сложную структуру функционирования и включают в себя ОС, текстовые программы диагностики и контроля, трансляторы разнообразных языков и набор обслуживающих программ. В качестве примера можно привести результаты японских ученых, которые в процессе проектирования систем ПО разработали идею «кольцевой структуры» шести уровней, которые состоят из:
- программы сопряжения;
- ядро ОС;
- (внутренний) программы для аппаратуры;
- (внешний) программы пользователя;
- часть ОС, ориентированная на пользователя;
- системы программирования.
В соответствии с рассматриваемым проектом научных исследований планируется облегчить процесс формирования программных средств путем скрещения исходных спецификационных требований на естественных языках. На современном этапе в Японии ведется работа над созданием робота – переводчика, который будет переводить японскую речь на английский язык и наоборот посредством человеческого языка. Во всех развитых странах ведутся работы над комплексными программами для создания роботов, которые будут использоваться во всех сферах жизнедеятельности.
ГЛАВА 2. ОСНОВНЫЕ ПОДХОДЫ ПРИ СОЗДАНИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1 Применение структурных и объектно-ориентированных подходов программирования
Большое количество широко применяемых структурных иобъектно-ориентированных подходов программирования, которые используются с помощью графических моделей, связано с отсутствием необходимых инструментальных средств. Это привело к повышению потребности в программно технологических средствах специального класса под названием CASE (ComputerAidedSoftwareEngineering), которые реализуют технологию созданию и дальнейшего сопровождения ПО разных систем.