Файл: Обзор языков программирования высокого уровня (ЭВОЛЮЦИЯ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 2244

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

В настоящее время информационные технологии очень глубоко проникли в жизнь человечества. Большинство современных организаций ведут работу при помощи компьютеров, используя различные прикладные приложения. Однако мало кто задумывается о том, что прежде чем использовать какое-либо приложение, его нужно спроектировать, разработать алгоритм, запрограммировать, протестировать, и только потом оно сможет попасть в широкий пользовательский доступ. Для того чтобы это было возможным существуют специальные языки программирования, которых в наши дни стало достаточно много.

Все языки программирования принято делить на две большие группы:

  • низкоуровневые – машинно-ориентированные;
  • высокоуровневые – удобные для человеческого восприятия.

Языки высокого уровня также распадаются на несколько категорий:

  • проблемно-ориентированные – характеризуются командами узкого назначения;
  • процедурно-ориентированные – характеризуются универсальным набором команд;
  • объектно-ориентированные – в основу таких языков положены объекты;
  • событийно-ориентированные – принцип построения программ на таких языках построен на обработке событий;
  • визуальные – поддерживающие визуальное программирование;
  • комплексные – языки, объединяющие в себе несколько признаков сразу.

Данная работа посвящена языкам программирования высокого уровня. На сегодняшний день эта тема достаточно актуальна, так как именно языки программирования высокого уровня наиболее распространены в сфере информационных технологий. Даже начинающему программисту очень просто будет с ними разобраться. Объектом исследования данной работы являются языки программирования высокого уровня, с помощью которых и реализуются программы.

Предмет исследования – история возникновения языков, их основные черты и принципы.

Цель работы: дать обзор языкам программирования высокого уровня.

Для достижения данной цели предстоит решить следующие задачи:

  • проанализировать литературу по заданной теме;
  • описать основные понятия;
  • изучить историю появления языков программирования;
  • изучить основные принципы, процедуры и функции.

1. ЭВОЛЮЦИЯ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ


В настоящее время этап развития общества можно охарактеризовать как «информационный». Этот факт объясняется с информационным взрывом, характеризующимся следующими чертами [1]:

  • ускоренный темп развития и совершенствования вычислительной техники;
  • повсеместное использование мультимедийных средств во всех сферах человеческой деятельности;
  • анализ и обработка информации в цифровом виде на компьютере;
  • быстрый рост информационной индустрии;
  • компьютеры проникают практически во все сферы человеческой деятельности;
  • все больше электронных средств содержат различные приборы и инструменты, а некоторые даже приобретают свойство интеллекта;
  • использование электронного документооборота;
  • деятельность государственных органов осуществляется в виртуальном пространстве;
  • расширенные возможности беспроводного доступа к сети;
  • рост числа продаж товаров и услуг, осуществляемых в рамках глобальной сети Интернет.

Все это подтверждает, что информационные технологии и возможности, которые они предоставляют, приобретают все большее значение в современном мире. Достаточно высокие требования к разработке программных систем диктует постоянно растущее воздействие компьютеров. Эти требования заключаются в необходимости систем обладать рядом свойств:

  • надежность;
  • безопасность;
  • удобство в использовании;
  • проверяемость.

Технологией программирования принято называть комплекс методов и средств, используемых в процессе разработки программного обеспечения. Развитие данной технологии будет рассматриваться в историческом контексте на базе основных этапов развития программирования, как самостоятельной науки [18].

1.1. Стихийное программирование

Начальный этап развития программирования по традиции принято называть стихийным. Продолжительность данного периода ограничивается моментом создания первых вычислительных машин и серединой 60-ых годов прошлого века. Первые компьютерные программы обладали простейшей структурой, представленной на рисунке 1 [6].

Программа

Рисунок 1 – Структура программы первого этапа развития программирования

Они включали в себя саму программу, написанную на машинном языке, и данные, которые она обрабатывает. Появление языков ассемблера способствовало становлению более читаемых программ. Тогда вместо шестнадцатеричных или двоичных кодов команд появилась возможность использовать символические имена.


Увеличить сложность разрабатываемых программ позволило программирование разнообразных вычислений, за счет появления первых языков программирования высокого уровня, таких как Fortran и Algol. Революционный прорыв того времени принято связывать с появлением в языках средств, позволяющих оперировать подпрограммами, которые можно было сохранять и использовать в других программах. Так появились целые библиотеки подпрограмм, которые могли вызываться из разрабатываемой программы.

На рубеже 60-ых годов прошлого столетия в программировании произошел кризис, вызванный стремительным развитием технических средств. В результате этого существующие на тот момент методы разработки программ уже не могли полномасштабно оперировать техническими достижениями. Кризис проявлялся в нескольких направлениях:

  • программные продукты находящиеся в разработке не обладали требуемым функционалом;
  • масштабные программные проекты стали выполняться с превышением заранее рассчитанных расходов или с отставанием от графика;
  • производительность разрабатываемых программ была очень низкой;
  • качество программных продуктов в корне не отвечало запросам потребителей.

Также не слишком обнадеживающие результаты показывали и аналитические обзоры и исследования, проводимые в последующие годы по всему миру ведущими аналитиками. Так, результаты исследований компаниеи Standish Group, которая проанализировала работу более трехсот американских корпораций и итоги выполнения более двадцати тысяч проектов, показали, что только 16,2% проектов были выполнены в срок, не выйдя за рамки установленного бюджета и воплотив все функции, оговоренные с заказчиком. Существенно нарушив сроки завершилось 52,7% проектов, при этом расходы на их разработку превысили рамки запланированного бюджета, а оговоренные функции не были реализованы в полном объеме. Полностью аннулированными до завершения оказались 31,1% проектов. Разработчики объяснили данные показатели следующими причинами:

  • неполное и нечеткое формулирование требований;
  • недостаточное участие конечных пользователей в работе над проектом;
  • нехватка ресурсов;
  • постоянные изменения спецификаций и требований;
  • неграмотный подход к планированию и управлению проектами;
  • новизна и несовершенство используемых технологий;
  • недостаточная поддержка со стороны высшего руководства;
  • низкий уровень квалификации разработчиков;
  • недостаток опыта.

Все это можно свести к несовершенству используемой технологии программирования. Разработка программ в то время велась по принципу «снизу-вверх» - сперва разрабатывались простейшие программы, а затем уже предпринимались попытки создать из них более сложную программу. Так большое количество ошибок согласования выявлялось уже на этапе сборки. В конечном счете на процессы отладки и тестирования программ уходило более 80% всего времени разработки. Таким образом, после анализа причин возникновения ошибок, был сформулирован новый подход к программированию, названный структурным [9].


1.2. Структурное программирование

Следующий этап развития технологии программирования приходится на период 60-70-ых гг. прошлого века и опирается на структурный подход. Главной идеей данного подхода является принцип декомпозиции сложных систем с целью последующей реализации в виде отдельных подпрограмм (см. рисунок 2).

Основная программа

1

2

N

Подпрограммы

Рисунок 2 – Структура программы второго этапа развития программирования

Поставленная задача представляется в виде иерархии подзадач простейшей структуры. Проектирование реализуется по принципу «сверху-вниз», который является базовым для процедурных языков программирования, примерами которых являются PL/1, Pascal, C.

Потребность перехода от имеющихся кустарных к принципиально новым способам создания программ, в конце 70-ых годов, объясняется необходимостью контроля процесса разработки программ, прогнозирования и гарантирования стоимости разработки.

Так получил свое развите комплекс инженерных средств и методов создания программного обеспечения, в дальнейшем получивших название «программной инженерии» (software engineering). Впервые данный термин был использован в качестве темы конференции, проводимой НАТО в 1968 г. В Вашингтоне состоялась первая международная конференция, посвященная программной инженерии в 1975 году. Данный период является первым этапом развития программной инженерии как самостоятельной науки. К ней принято относить стандартизацию и систематизацию процессов создания программного обеспечения.

Развитие структурирования данных потребовало дальнейшее увеличение сложности и размеров разрабатываемых программ. Так появилась и стала развиваться технология модульного программирования, связанная с созданием библиотек подпрограмм (см. рисунок 3).

Основная программа

Модуль 1

Подпрограммы с локальными данными

Модуль k

Подпрограммы с локальными данными

Модули с локальными данными и подпрограммами

Рисунок 3 – Структура программы, реализующей технологию модульного программирования


Данная технология подразумевает выделение групп подпрограмм, оперирующих одними и теми же глобальными переменными, в отдельно компилируемые модули. Эти модули принято называть библиотеками подпрограмм.

Подобный подход реализован в разных языках программирования, в качестве примеров могут быть названы новые версии языков C (C++), Pascal, Ada, Modula. С помощью модульного программирования могут разрабатываться надежные программы, размер которых не будет превышать сотни тысяч операторов.

Пропорционально росту объемов программных кодов увеличивалась и сложность межмодульных интерфейсов. Все сложнее становилось обеспечить взаимное влияние отдельных частей программы. Для разработки программ большого объема был предложен объектный подход [10].

1.3. Объектно-ориентированное программирование

Объектный подход к программированию – это третий этап (с середины 80‑х до конца 90‑х годов прошлого столетия). Этот этап стал вторым этапом развития программной инженерии, что стало предпосылкой к началу перехода к индустриальному (сборочному) способу разработки программ на базе объектно-ориентированного подхода. Объектно-ориентированным программированием принято называть технологию создания сложных программ, в основе которой лежит представление программы в виде комплекса некоторых объектов, каждый из которых является экземпляром определенного класса, а классы, выстраиваются в некоторую иерархию с наследованием свойств. Взаимодействие программных объектов между собой в такой системе реализуется посредством передачи сообщений (см. рисунок 4).

По сравнению с модульным программированием, естественная декомпозиция программного обеспечения является главным достоинством объектно-ориентированного подхода. Данный подход позволяет более полно локализовать данные, а также процесс их взаимодействия с подпрограммами обработки, что существенно упрощает процесс разработки. Кроме того, это позволяет создавать библиотеки классов, ведя практически независимую разработку отдельных частей программы.

Сообщения

Объект 1

Подпрограммы с локальными данными

Объект 2

Подпрограммы с локальными данными