Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Технологии программирования. История развития программирования в России.

Содержание:

Введение

Понятие «технология программирования» появилось в конце 1960-х гг. как название научной дисциплины, предметом которой являются способы проектирования и разработки программ, их отладки и тестирования, обеспечивающие необходимое качество и сроки создания программного обеспечения (ПО). Необходимость её появления была обусловлена высокой стоимостью создания ПО, а также срывами сроков и неудачами в реализации проектов сложных программных комплексов. После накопления практического опыта создания больших программных комплексов и выявления специфических особенностей процесса программирования появилась возможность разработать технологию программирования. 

Актуальность выбранной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – упрощение программного кода. С каждым днём наш мир становится более мобильным и информационным. Всё больше и больше компьютеры вступают в нашу повседневную жизнь и чтобы облегчить наше общение с ними, создаётся новое программное обеспечение с помощью различных языков программирования. Целью данной курсовой работы является изучение истории возникновения программирования и основных принципов и подходов при создании языка программирования. Они отличаются простотой, быстротой и гибкостью и другими свойствами. Основной целью работы выступает изучение истории появления программирования. Для достижения поставленной цели необходимо решить ряд задач: 1) Изучить сущность программирования, 2)Отразить основы развития программирования и его историю, 3) Отразить особенности развития языков программирования. Объектом исследования выступает программирование. Предметом исследования стали принципы создания языков программирования. Степень изученности темы является достаточно высокой. Данная проблематика затрагивалась такими специалистами, как Абрамов С.А., Зима Е.В., Грызлов В.И., Грызлова Т.П., Епанешников А. М., Епанешников В. А., Йенсен К., Вирт Н., Кирнос В.Н. Теоретической базой для написания работы выступили труды и монографии российских и иностранных специалистов, а также ресурсы сети Интернет. В структуре курсовой работы: введение с обоснованием актуальности выбранной темы, основная часть, состоящая из двух глав, заключение и список использованной литературы.

Теоретическая часть. История развития технологии программирования в России.

Программирование - это искусство создавать программные продукты, которые написаны на языке программирования. Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятных для исполнителя. Другими словами, программирование – это четкая заданная последовательность действий, которые пишет программист. Языки программирования делятся на три вида: машинные языки, - языки низкого уровня (например Ассемблер) - языки программирования высокого уровня (например Паскаль, Си, Java). Программирование имеет разные ответвления в написании программного продукта. На сегодняшний день существует тысячи языков программирования.

Российское программирование имеет богатую историю, ведущую свой отчет от 50-х годов, когда программирование в основном предназначалось для решения военных и промышленных задач, например, для точного расчета места приземления космического корабля Юрия Гагарина. Первоначально вопросы технологического подхода к созданию программ и программных продуктов рассматривались исключительно в аспекте «автоматизации программирования» и создания «программирующих программ», прежде всего компиляторов с основных языков программирования того времени – автокод, Фортран, Алгол-60, Лисп. Параллельно с этим развивался структурный подход, связанный с изучением схем программ и формальным доказательством их свойств.

В СССР первыми авторами ЭВМ, изобретенной в декабре 1948 г., являются И. С. Брук и Б. И. Рамеев. А первая советская ЭВМ с сохраняющейся программой создана в 1951 г. под руководством С. А Лебедева (МЭСМ - малая электронная счетная машина). В 1953 г. в Советском Союзе начался серийный выпуск машин, первыми их которых были БЭСМ-1, «Стрела».

С появлением цифровых программно-управляемых машин родилась новая область прикладной математики - программирование. Как область науки и профессия она возникла в 1950-х гг. Первоначально программы составлялись вручную на машинных языках (в машинных кодах). Программы были громоздки, их отладка - очень трудоемка. Для упрощения приемов и методов составления и отладки программ были созданы мнемокоды, по структуре близкие к машинному языку и использующие символьную адресацию. Ассемблеры переводили программу, записанную в мнемокоде, на машинный язык и, расширенные макрокомандами, используются и в настоящее время. Далее были созданы автокоды, которые можно применять на различных машинах, и позволившие обмениваться программами. Автокод - набор псевдокоманд для решения специализированных задач, например научных или инженерных. Для таких задач имеется развитая библиотека стандартных программ.

До конца 1950-х гг. ЭВМ основным элементом конструкции были электронные лампы (1-е поколение). В этот период развитие идеологии и техники программирования шло за счет достижений американских ученых Дж. фон Неймана, сформулировавшего основные принципы построения ЭВМ, и Дж. Бэкуса, под руководством которого в 1954 г. был создан Fortran (Formula Translation) - первый язык программирования высокого уровня, используемый до настоящего времени в разных модификациях. Так, в 1965 г. в Дартмутском колледже Д. Кэмэни и Т. Куртцем была разработана упрощенная версия Фортрана - Basic. В 1966 г. комиссия при Американской ассоциации стандартов (ASA) разработала два стандарта языка: Фортран и Базисный Фортран. Используются также дальнейшие модификации языка (например 1970, 1990 гг.).

Достижения в области электроники и микроэлектроники позволили заменить элементную базу ЭВМ, на более совершенную. В конце 1950-х гг. громоздкие электронные лампы заменяют полупроводниками (миниатюрными транзисторами). Появляются ЭВМ II поколения; затем примерно через 10 лет - ЭВМ III поколения на интегральных схемах; еще через 10 лет - ЭВМ IV поколения на больших интегральных схемах (БИС). В Японии в 1990-х гг. реализованы проекты ЭВМ V поколения, в которых использованы достижения в области искусственного интеллекта и биоэлектроники. Если объем оперативного запоминающего устройства (ОЗУ), одной из лучших отечественных машин 1960-х гг. М-20, созданной под руководством С.А.Лебедева в 1958 г., имел 4096 слов (8 Кбайт) и быстродействие 20 тыс. операций в секунду, то современные персональные компьютеры характеризуются ОЗУ в десятки Мбайт и быстродействием в сотни миллионов операций в секунду, что позволяет решать сложнейшие задачи.

В 1953 г. А.А. Ляпуновым был предложен операторный метод программирования, который заключался в автоматизации программирования, а алгоритм решения задачи представлялся в виде совокупности операторов, образующих логическую схему задачи. Схемы позволяли расчленить громоздкий процесс составления программы, части которой составлялись по формальным правилам, а затем объединялись в целое. Для проверки идей операторного метода в СССР в 1954 г. была разработана первая программирующая программа ПП-1, а в 1955 г. более совершенная - ПП-2. В 1956 г. разработана ПП БЭСМ, в 1957 г. - ППСВ, в 1958 г. - для машины «Стрела».

На начало 1970-х гг. существовало более 700 языков высокого уровня и около 300 трансляторов для автоматизации программирования.

Ранние успехи советского программирования во многом связаны с тем, что советская экономика всегда была сильно индустриализованной и технически ориентированной. Растущая потребность в программистах была разрешена путем переориентации части математиков и физиков на информатику. В те времена количество программистов было очень небольшим, так как область применения программирования была достаточно ограниченной. Так, за все 20 лет производства БЭСМ-6, одного из самых успешных компьютеров тех времен (было выпущено всего около 300 штук). Тем не менее, к концу 60-х советская школа программирования находилась на мировом уровне и в промышленной разработке программ, и в научных исследованиях.

Важными практическими результатами в этом направлении стали работы А.Л. Фуксмана, В.В. Липаева и И.В. Вельбицкого и созданных ими школ, специально рассматривавших процесс создания программных продуктов. Однако их подходы базировались на модели крупных вычислительных центров, впоследствии выросших в центры коллективного пользования с системой разделения времени на одной или нескольких больших ЭВМ.

К сожалению, где-то с начала 70-х годов в программировании, как и в ряде других отраслей, начали наблюдаться первые признаки застоя. Одной из основных причин стала официальная политика ориентации компьютерных платформ на клоны IBM/360 и PDP/11. Считалось, что путем копирования западной аппаратной базы удастся сэкономить деньги, которые впоследствии можно было бы использовать для «гигантского скачка» в программировании. Эта «стратегия» потерпела провал, а Эдгар Дейкстра в своей лекции, прочитанной в России, назвал это решение советского правительства «величайшей победой Запада в холодной войне». Кризис продолжался до начала 90-х годов. В процессе перехода на рыночную экономику большинство существовавших структур рухнуло, что привело, в частности, к радикальной смене преобладающей аппаратной платформы. В течение нескольких лет мэйнфреймы, были потеснены мощным потоком персональных компьютеров; так, согласно оценке IDC, в 1997 году в России было продано 1,4 млн. компьютеров. Переход на новую платформу создал потребность в целом ряде новых услуг, например, в разработке программ и системной интеграции, которые стали предоставлять молодые частные компании. Большинство современных лидеров в компьютерном бизнесе России — представители этой «новой волны»; сегодня такие компании вполне могут считать себя ветеранами рынка, несмотря на возраст от 8 до 12 лет.

Компьютерный рынок быстро увеличивался вплоть до кризиса 1998 года. Отечественная компьютерная индустрия была одной из наиболее пострадавших из-за своей зависимости от западного рынка; лишь совсем недавно Россия снова вышла на уровень 1997 года по количеству продаваемых компьютеров. Тем не менее, сегодня перспективы компьютерного рынка в России выглядят очень хорошими; страна демонстрирует очень быстрый рост темпов продаж компьютеров, при том, что рынок еще не насыщен: на 100 человек в России приходится всего лишь около 5 компьютеров.

1.1  Понятие технологии программирования.

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

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

Язык программирования служит двум взаимосвязанным целям: предоставляет программисту аппарат для задания действий, которые должны быть выполнены компьютером, и формирует концепции, которыми пользуется программист, продумывая общий алгоритм. Первой цели идеально отвечает язык, который настолько «близок к ЭВМ», что если всеми основными машинными объектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй же цели идеально отвечает язык, который настолько близок к решаемой задачи, что концепции ее решения можно выражать прямо и коротко.

Первые  языки программирования появились сравнительно недавно. Как и следовало ожидать, они (как и первые ЭВМ) были довольно примитивны и ориентированы на различные вычисления – как на чисто теоретические научные расчеты (прежде всего математические и физические), так и на прикладные задачи (в частности, в военной области). Программы, написанные на них, представляли собой линейные последовательности элементарных операций с регистрами, в которых хранились данные.

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

Таким образом, ранние языки программирования существенно зависели от того, что принято называть «средой вычислений», и приблизительно соответствовали современным машинным кодам или языкам ассемблера.

1.2  Организация самых первых программ.

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

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

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

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

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

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

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

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

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

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

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

Принципы структурного программирования были впервые реализованы в языке ALGOL. Первая версия ALGOL была выпущена в 1958 году (и называлась ALGOL-58). Вторая версия – через два года, в шестидесятом году. Затем – в 1968 году была выпущена усовершенствованная версия этого языка программирования высокого уровня. Заточена эта версия была под то, чтобы с легкостью можно было конвертировать обычные математические формулы в код на этом языке программирования.

ALGOL был популярен не только в странах Европы (именно там его и создали), но и в СССР. Он внес большое влияние на все последующие языки, в том числе – на язык программирования Pascal. 

1.3.1. Фортран в СССР

Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол. Во внедрении Фортрана большую роль сыграло общение советских физиков со своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с использованием программ на Фортране.

Первый советский компилятор с Фортрана был создан в 1967 г. для машины «Минск-2», однако он не получил большой известности. Широкое внедрение Фортрана началось после создания в 1968 г. компилятора ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г., уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360 вместе с другим программным обеспечением)

1.3.2 Современный Фортран. Достоинства языка

Фортран широко использовался в основном для научных и инженерных вычислений. Он прекрасно подходит для решения численных задач, так как за время его существования было написано множество библиотек. Он используется и по сей день, но не столько по причине удачного дизайна, сколько в силу большого количества написанных на нём программ, изменять и, тем более, переписывать которые нет смысла. Его структура способствует тому, что компилятор может очень хорошо оптимизировать вычисления.

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

Индустрия программного обеспечения — это одна из немногих современных отечественных отраслей, которая способна предотвратить утечку мозгов из России и воспрепятствовать размыванию научно-технического потенциала страны. Отрасль ПО дает десятки тысяч рабочих мест с зарплатой, которая существенно превышает средние по стране. Индустрия производства ПО — это экологически чистая отрасль, которая, в отличие от добывающего комплекса, имеет неистощимые ресурсы.

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

1.4  Модульное программирование.

Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные, в отдельно компилируемые модули (библиотеки подпрограмм). Например, это могут быть модуль управления графическими ресурсами, модуль вывода данных на принтер и т.д.

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

Практика программирования показывает, что структурный подход в сочетании с модульным программированием позволяет создавать достаточно надежные программы, объем которых не превышает  100000 операторов. При большем же объеме программы сложность межмодульных интерфейсов обычно возрастает настолько, что предусмотреть взаимовлияние отдельных частей программы становится очень сложно. Кроме того, «узким местом» модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении всей готовой программы (поскольку из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно).

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

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

На смену структурному программированию в начале 1990-х гг. пришло объектно-ориентированное программирование - ООП. Его можно рассматривать как модульное программирование нового уровня, когда во многом случайного, механического объединения процедур и данных главным становится их смысловая связь. Объект рассматривается как логическая единица, которая содержит данные и правила (методы) их обработки. Объектно-ориентированный язык создает «программное окружение» в виде множества независимых объектов, каждый из которых отличается своими свойствами и способами взаимодействия с другими объектами. Программист задает совокупность операций, описывая структуру обмена сообщениями между объектами. Как правило, он «не заглядывает» внутрь объектов, но при необходимости может изменять элементы внутри объектов или формировать новые.

ООП основано на трех важнейших принципах (инкапсуляция, наследование, полиморфизм), придающих объектам новые свойства.

  1. Инкапсуляция - объединение в единое целое данных и алгоритмов их обработки. Данные здесь - поля объекта, а алгоритмы - объектные методы.
  2. Наследование - свойство объектов порождать своих потомков. Объект-потомок автоматически наследует все поля и методы, может дополнять объекты новыми полями, заменять и дополнять методы.
  3. Полиморфизм - свойство родственных объектов решать схожие по смыслу проблемы разными способами.

1.6 Структурное и модульное программирование

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

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

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

Развитие получило модульное программирование, основа которого заключается в следующем:

* функциональная декомпозиция (разбиение) задачи на самостоятельные подзадачи - модули, связанные только входными и выходными данными;

* модуль представляет собой «черный ящик», позволяющий разрабатывать части программ одного проекта на разных языках программирования, а затем с помощью компоновочных средств объединять их в единый загрузочный модуль;

* должно быть ясное понимание назначения всех модулей задачи и их оптимального сочетания;

* с помощью комментариев должно описываться назначение всех переменных модуля.

В период 1970--1980-х гг. развитие теоретических исследований оформило программирование как самостоятельную научную дисциплину, занимающуюся методами разработки программного обеспечения (ПО).

Профессиональное программирование вышло на уровень технологии.

Методы разработки ПО синтезируют:

* методы инженерных расчетов для оценки затрат и выбора решений;

* математические методы для составления алгоритмов;

* методы управления для определения требований к системе, учета ситуаций, организации работ и прогнозирования.

1.7 Компонентное программирование

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

В КП компонент рассматривается как хранилище (в виде DLL или ЕХЕ файлов) для одного или нескольких классов. Классы распространяются в бинарном виде, а не в виде исходного кода. Предоставление доступа к методам класса осуществляется через строго определенные интерфейсы по протоколу. Это снимает проблему несовместимости компиляторов, обеспечивая без перекомпиляции смену версий классов в разных приложениях. Интерфейсы задают содержание сервиса и являются посредником между клиентом и сервером.

Идея переложить на ЭВМ функции составителей алгоритмов и программистов дала новые возможности развитию сферы искусственного интеллекта, которая должна была создавать методы автоматического решения интеллектуальных задач. Формализация знаний, которые есть у профессионалов в разных областях, накопление их в базах знаний, реализованных на ЭВМ, стали основанием для создания экспертных систем. На основе баз знаний работают и ЭВМ V поколения, и интеллектуальные роботы, и экспертные системы. Эти системы могут не только найти решение той или иной задачи, но и объяснить, как оно получено. Появилась возможность манипулировать знаниями, иметь знания о знаниях - метазнания. Знания, хранящиеся в системе, стали объектом ее собственных исследований.

Независимость языков высокого уровня от ЭВМ вовлекла в сферу алгоритмизации задач специалистов различных отраслей знаний, позволила использовать многочисленные стандартные типовые программы, а программистам - устранять дублирование в написании программ для различных типов ЭВМ и значительно повысить производительность труда.

На современном этапе программирование включает комплекс вопросов, связанных с написанием спецификаций (условий задач), проектированием, кодированием, тестированием и функционированием программ для ЭВМ. Современное ПО для ЭВМ имеет сложную структуру и включает, как правило, ОС, трансляторы с различных языков, текстовые программы контроля и диагностики, набор обслуживающих программ. Например, японские ученые для проектирования систем ПО разрабатывают идею «кольцевой структуры» шести уровней:

  1. (внутренний) программы для аппаратуры;
  2. ядро ОС;
  3. программы сопряжения;
  4. часть ОС, ориентированная на пользователя;
  5. системы программирования;
  6. (внешний) программы пользователя.

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

Научно-исследовательская деятельность Андрея Николаевича Терехова

Научная деятельность Андрея Николаевича Терехова в 1970-х годах в основном была связана с разработкой новых методов компиляции языков программирования. В результате таких исследований была получена реализация кросс-трансляторов и трансляторов языков со статическим контролем типов (Оберон, Паскаль, Ада, Алгол 68 и т.д.) для многих различных платформ. К тому же, в рамках этих исследований коллективом разработчиков ЛГУ под руководством А.Н. Терехова был реализован транслятор одного из наиболее сложных языков программирования Алгол 68, которые существовали на то время для наиболее распространенной платформы того времени – Единой системы электронно-вычислительных машин (ЕС ЭВМ). В дальнейшем данный транслятор был перенесен на другие платформы (к примеру, IBM PC).
В 1980-х годах Андрей Николаевич Терехов приступает к работе над промышленными проектами в области телекоммуникаций. Таким образом, в сферу научных интересов А. Терехова были включены проблемы реализации систем реального времени (включая встроенные системы) и технологии программирования. В середине 1990-х годов А.Н. Терехов начинает заниматься исследованиями реинжиниринга программного обеспечения и занимается проблемами преподавания информационных технологий. Андрей Николаевич является автором более 110 научных работ по программированию.

Центры программирования в России

В стране исторически сложилось три основных центра программирования: Москва, Петербург и Новосибирск. Среди прочих городов с развитой индустрией программирования следует отметить Нижний Новгород, Екатеринбург, Пермь и Саров.

В Москве сосредоточены основные денежные потоки, а также менеджмент страны и практически всех крупных российских компаний, поэтому многие здешние компьютерные компании ориентированы на внутренний рынок (хотя есть и исключения, например, Luxoft, VDI и Auriga).

Петербург расположен в непосредственной близости от североевропейских стран, что превратило его в один из многообещающих центров глобального программирования. Здесь расположены десятки аутсорсинговых компаний, насчитывающих от 50 до 250 человек.

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

4. Российская индустрия программирования

Согласно оценке консалтинговой компании Brunswick Warburg, в 1999 году объем российского рынка программного обеспечения составлял 560-580 млн. долл. — всего 0,1% от валового национального продукта (при том, что весь ИТ-рынок страны в 2001 году составлял по оценке газеты «Коммерсант» 3,5-4 млрд. долл. при темпах роста 15-20% в год). И все же программирование имеет огромный потенциал. В отчете McKinsey программирование названо самой эффективной и одной из самых быстро растущих отраслей России. По экспертным оценкам, в этой области занято от 50 до 80 тыс. человек. К сожалению, не представляется возможным дать более точную оценку размеров рынка или даже определить явных лидеров в конкретных сегментах рынка, так как на данный момент он достаточно хаотичен и неструктурирован. К тому же, практически все российские компьютерные компании являются закрытыми акционерными обществами и не разглашают точные сведения о своем финансовом состоянии. Компании, работающие в России, можно условно разделить на две крупные категории: компании с российским капиталом и подразделения международных корпораций. Соответственно этому задачи, решаемые ими, сильно различаются.

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

Компании, работающие на внутреннем рынке, в основном позиционируются как системные интеграторы, обслуживающие крупные предприятия в платежеспособных отраслях. Есть еще целый ряд компаний, ориентирующихся на мелкий бизнес и индивидуальных покупателей, хотя компьютерное пиратство изрядно подрывает этот рынок. Наконец, многие ориентируются на международный рынок, поскольку заметная ценовая разница по сравнению с западными странами и изобилие талантливых программистов дают России уникальную возможность в области глобального (офшорного) программирования. Эту нишу заполнили сотни компаний, ориентированных на предоставление услуг по аутсорсингу. По оценке компании McKinsey, в 1999 году в российском офшорном программировании было занято от 5 до 8 тыс. профессиональных программистов, а общий объем этого рынка составлял от 60 до 100 млн. долл. при темпах роста от 40 до 60% в год. Правда, российские источники считают, что приведенные цифры сильно занижены. Так, по оценкам компании Market-Visio/EDC, общий доход российского рынка офшорного программирования в 2001 году составил 194 млн. долл. при темпах роста 227% в год.

Международный рынок аутсорсинга отличается жесткой конкуренцией, здесь есть свои общепризнанные лидеры — Индия и Ирландия [7, 8]. В 2000-2001 годах Индия заработала на этом рынке 6,3 млрд. долл. По количественным показателям Россия сегодня отдаленно напоминает Индию в 1990 году.

В последние два-три года компании, специализирующиеся на глобальном программировании стали объединяться в ассоциации, такие, как «Форт-Росс» в Петербурге и «СибАкадемСофт» в Сибири (в процессе создания аналогичная ассоциация в Москве, которая, однако, ничем фактически полезным пока не отличилась). Основной задачей этих ассоциаций стало лоббирование интересов компьютерной индустрии в российском правительстве и маркетинг возможностей отечественных компаний на Западе путем, например, проведения международных конференций типа Software Outrsourcing Summit.

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

  • Motorola открыла лабораторию с небольшой группой программистов в Петербурге в 1993 году, сейчас в ней работает более 200 программистов;
  • Sun Microsystems начала работать в России более 10 лет назад; на сегодняшний день в Москве и Петербурге работают более 300 сотрудников, принимающих участие в разработке новых продуктов и сопровождении существующих;
  • Intel открыла свою лабораторию в Нижнем Новгороде в 1993 году; сегодня в этом подразделении работает около 200 программистов, планируется увеличить их число до 500 [9];
  • SAP при поддержке компании Siemens Business Services развернула в Петербурге подразделение из 40 программистов, численность которых планируется довести до 100.

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

Практически все программные компании в России начинались с небольшой группы квалифицированных программистов. Чаще всего, на этом этапе вопросы качества вообще специально не рассматривались — компании в основном полагались на профессионализм отдельных сотрудников. Однако по мере роста возникали все новые и новые проблемы, связанные с качеством программных продуктов и процессов. Поэтому сегодня большинство российских компаний (особенно работающих с западными заказчиками) понимают важность обеспечения качества. За последние несколько лет рынок услуг, связанных с качеством, значительно вырос. Еще три-четыре года назад ни в одной российской компании не было внутренней программы улучшения качества, а сегодня десятки компаний уже получили сертификат соответствия стандарту ISO 9001, многие планируют сертификацию на следующие несколько лет.

Работы по обеспечению качества в России чаще всего основываются на ISO 9001, который еще в советские времена был положен в основу национального стандарта ГОСТ ИСО Р 9001. На сегодняшний день ISO 9001 по-прежнему остается наиболее доступным из всех программных стандартов: существует множество сертифицирующих органов (как национальных, так и международных) и множество курсов по ISO 9001. Прочие стандарты менее популярны и прежде всего по причине их недостаточной распространенности и высокой стоимости сертификации. Многие российские компании планируют сертификацию по стандарту СММ, однако еще ни одна из них еще не достигла этого; среди подразделений западных компаний необходимо отметить лабораторию Motorola в Петербурге, достигшую пятого уровня СММ.

4.1 Проблемы и перспективы

Развитие российской индустрии программирования затруднено целым рядом проблем. Самая большая трудность — это компьютерное пиратство. 88% используемых в России программ являются нелицензионными (в среднем по миру — 36%). Только Вьетнам, Китай и ряд стран бывшего СССР имеют еще худшие показатели по этой проблеме. Некоторые компании пытаются избежать столкновения с этой проблемой путем ориентации создаваемых продуктов на западный рынок. Этот подход (известный также как «скандинавская» или «израильская» модель) представляется очень многообещающей, так как из-за разницы в уровне цен на исходном и целевом рынке финансовый результат может многократно превышать затраты. Единственная проблема заключается в том, что требуются значительные начальные финансовые вложения, отсутствующие у большинства российских компаний. Финансовый рынок в России также недостаточно развит для того, чтобы поддерживать подобные проекты. Поэтому, несмотря на целый ряд примеров успешной реализации подобной модели (например, антивирусная система AVP или графические средства, разработанные компанией ParaGraph и приобретенные впоследствии Silicon Graphics), все еще неясно, станет ли эта модель массовой в России.

Еще одна проблема, затрагивающая все отрасли России, — неразвитая инфраструктура. Почта, транспорт, муниципальные услуги либо ненадежны, либо просто плохи в большинстве регионов, может быть, за исключением отдельных крупных городов. Естественно, это затрудняет работу всех предприятий, зависящих от инфраструктуры. Например, расцвет электронной коммерции во всем мире практически не затронул России: очень мало людей владеют и пользуются кредитными картами, лишь 6,3% всего населения имеют доступ к Сети, и, наконец, почта крайне ненадежна. Только с телефонизацией дела обстоят относительно хорошо — в России насчитывается 21,3 телефонных аппарата на 100 жителей, что, конечно, значительно хуже, чем 59,5 для промышленно развитых стран, но все-таки лучше, чем среднемировое значение 15,1.

Наконец, российская индустрия глобального программирования страдает от неадекватного имиджа России за рубежом. В погоне за сенсациями ряд статьей в западной прессе освещает такие «неаппетитные» темы: отмывание денег, природные и техногенные катастрофы или русская мафия. В результате, российские компании вынуждены начинать свой маркетинг с нейтрализации бытовых мифов.

5. Россия на мировой карте программирования

Термином «офшорное программирование» в мировой ИТ-индустрии принято обозначать предоставление услуг по удаленной разработке программного обеспечения, выполняемого независимой от заказчика и, как правило, зарубежной компанией с привлекательными ресурсами разработки. Кроме Индии предоставлением подобного рода услуг занимаются Израиль, Китай и др. Все чаще среди наиболее перспективных поставщиков услуг в области офшорного программирования упоминается Россия.

Российскую экономику принято порицать за высокую степень зависимости от сырьевого экспорта и за неспособность переориентироваться на что-нибудь более продуктивное. Однако, если почитать западную прессу, может показаться, что российская ИТ-индустрия уже близка к тому, чтобы сравняться по масштабам с индийской, где в 2001 году доходы софтверных компаний приблизились к 6 млрд. долл. Как пишет BusinessWeek, доходы в секторе высоких технологий за прошлый год в нашей стране выросли на 19%, то есть до 3 млрд. долл. Правда, при оценке отдельных сегментов индустрии становится ясно, что конкурировать с Индией мы пока не можем. По данным исследовательской компании Market-Visio/EDC, в 2001 году объем рынка офшорного программирования достиг в России 154 млн. долл. В целом же рынок разработок ПО для зарубежных заказчиков (включая центры разработки международных вендоров в России) в прошлом году составлял около 213 млн. долл. Между тем основным источником доходов индийских разработчиков ПО является именно аутсорсинг. Таким образом, российский рынок на самом деле пока намного меньше индийского и считается, что сейчас в России ИТ-индустрия находится на том же уровне, что индийская десять лет назад.

Территориальное распределение сил в экспорте ПО остается пока без особых изменений. Основными региональными центрами офшорного программирования в России продолжают оставаться Москва, Санкт-Петербург и Новосибирск. На долю крупных компаний — с оборотами разработок ПО для зарубежных заказчиков более 3 млн. долл. — приходится около 75% рынка, причем в основном они находятся в Москве. В остальных регионах России около 40% компаний имеют обороты разработок ПО для зарубежных заказчиков до 150 тыс. долл. Большинство компаний планируют расширять бизнес и прогнозируют к 2003 году рост своих оборотов в области офшорных разработок в среднем на 116%. Нам остается только наблюдать, насколько оправдаются такие прогнозы.

Наиболее распространенным видом услуг (помимо собственно разработки ПО), предлагаемых российскими компаниями, является интеграция приложений: 70% компаний предоставляют клиентам данную услугу. Примерно половина компаний предоставляют услуги по миграции/портированию, поддержке ПО, ИТ-консалтингу. Большинство компаний специализируются в области разработки ПО для электронной коммерции (72%), а также разрабатывают приложения для Back Office (61%).

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

Основным потребителем для российских разработчиков ПО являются США. В настоящий момент около 40% российских компаний, занятых в экспорте ПО, считают данный регион ключевым, а к 2003 году их станет более 50%. Еще одним значимым регионом являются западноевропейские страны, причем существенный рост рынка ожидается в странах Северной Европы, которые компания Gartner считает для России наиболее перспективными.

Сегодня использование офшорного программирования наиболее широко распространено в США, однако в Европе этот процесс также развивается весьма бурно. В частности, многие крупные компании имеют свои представительства в Великобритании. Также офшорные модели используются в Нидерландах, Франции, Германии и в странах Северной Европы. В середине прошлого года компания IDC опубликовала следующий прогноз: мировые затраты на ИТ-аутсорсинг достигнут к 2005 году 100 млрд. долл. (56 млрд. долл. в 2000 году). США покроют 44% мирового рынка ИТ-аутсорсинга, а затраты Западной Европы к 2005 году составят 26 млрд. долл. Согласно данным Market-Visio/EDC, российская отрасль разработки программного обеспечения сможет удвоить свою долю в ИТ-аутсорсинге к 2003 году — около 350 млн. долл.

Зарубежные компании в основном исходят из фактора стоимости и затрат, а уровень сложности проектов, которые отдают на сторону, все возрастает. Следующий шаг при выборе партнера — определение страны, в которой заказчик мог бы иметь долговременные отношения с ESP. Обычно рассматривают такие критерии, как конкурентная цена рабочей силы, политическая стабильность, поддержка со стороны правительства, развитая инфраструктура (коммуникации, транспорт), надлежащий образовательный уровень, развитые сектора программного и аппаратного обеспечения (доступность и т.п.), с учетом культурных различий и временных зон. На данный момент порядка 80-95% рынка офшорного программирования принадлежит Индии, и такая тенденция, скорее всего, сохранится, хотя это направление начало активно развиваться в Китае.

Согласно отчету Outsourcing Institute IT index, опубликованному в 2001 году, направления, которые будут отдаваться на аутсорсинг, таковы: управление сетями, управление дата-центрами, поддержка пользователей, Интернет-приложения и электронная коммерция, разработка приложений (25%); консалтинг и реинжиниринг, клиент-серверные системы, Desktop-системы, системы поддержки конечных пользователей, имиджинг и OCR (20%); сопровождение приложений, Интернет/интранет, мэйнфреймы и дата-центры, тренинг, голосовые сети (15%). Сферы, в которых будет расти аутсорсинг: разработка и сопровождение приложений, консалтинг и реинжиниринг, имиджинг и OCR, обучение, системы хранения данных.

По данным исследования американского рынка, которое провела компания Aberdeen Group (июнь 2002 года), 57% опрошенных ранее пользовались услугами аутсорсинга (68% опрошенных — крупные компании с оборотом более 1 млрд. долл., 37% опрошенных пользуются услугами более одного аутсорсера, а 28% опрошенных используют офшорные услуги в рамках стратегии компании постоянно.

5.1 Модели взаимодействия

В последнее время аналитики все чаще высказывают предположение, что в мире идет подготовка к коренному перераспределению центров производства ПО. Средства коммуникаций делают равнозначными площадки, расположенные в соседних комнатах и удаленные на десятки тысяч километров друг от друга. Уже сейчас для ведущих западных фирм за счет субподрядчиков, например из Индии или России, можно удешевить работы в 30 раз и добиться круглосуточного сопровождения ПО, что на порядок повышает качество сопровождения. Так, Индия в 1999 году заработала 2 млрд. долл., получая субподрядные работы на разработку ПО и передавая результаты заказчику через Интернет, в 2000-м — уже 6 млрд., а, по прогнозу NASSCOMM, показатель минувшего года составит 7,6 млрд. долл.

Таким образом, для России очень важно не допустить ошибок в выборе развития бизнес-модели экспорта ПО и формы взаимодействия с западным клиентом.

На сегодняшний день в бизнесе экспорта российского ПО можно выделить две основные модели (формы): разработка и продвижение собственных программных продуктов (продуктовая, или израильская, модель) и разработка уникального ПО на заказ с передачей прав клиенту (заказная, или индийская, модель). Подавляющее большинство компаний в России разрабатывают экспортное ПО на заказ, то есть придерживаются индийской модели, а 25% используют смешанную модель бизнеса.

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

Собственные продукты успешно разрабатываются и продвигаются тремя российскими компаниями — SPIRIT, Kaspersky Lab и ABBYY. По прогнозам Market-Visio/EDC, в ближайшие два года заказная модель будет доминировать, но уже сейчас большинство компаний считают продуктовую модель более перспективной. Причина этого — гораздо более высокая доходность, более высокая капитализация и более эффективное использование творческого потенциала и хорошей математической подготовки российских программистов. Однако высококвалифицированные российские программисты неохотно выполняют рутинные работы только по техническому заданию и точно в срок, а предпочитают творить. Также в России отсутствует средний класс менеджмента для управления крупными коллективами программистов, а без этого в офшорной модели большого бизнеса не сделаешь. В продуктовой же модели и 100 человек способны сделать российский программный продукт популярным во всем мире в заданной нише и заработать серьезные деньги.

5.2 Лаборатория Касперского

В 2001 году доля «Лаборатории Касперского» на мировом рынке антивирусных программ и сопутствующих услуг, по данным авторитетной исследовательской компании IDC, составила примерно 0,5% (при этом 60% бизнеса компании ориентировано на экспорт).

Kaspersky Lab предлагает широкий спектр программных продуктов для обеспечения информационной безопасности как для частных, так и для корпоративных пользователей. В числе клиентов компании — крупнейшие российские и зарубежные государственные и коммерческие организации, такие как Центральный банк РФ, Сбербанк, «Татнефть», Golden Telecom, La Poste, Министерство образования Франции, Министерство иностранных дел Италии, BBC Worldwide. В России и странах бывшего СССР «Лабораторию Касперского» представляют более 300 партнеров.

5.3 ABBYY

Российская компания ABBYY (до 1997 года — BIT Software) была основана в 1989 году.

Основные продукты ABBYY — семейство электронных словарей ABBYY Lingvo (англо-русских и многоязычных) для персональных компьютеров и для Pocket PC; система распознавания (OCR) ABBYY FineReader, позволяющая вводить в компьютер документы с помощью сканера; ABBYY FormReader — ICR-система, предназначенная для массового ввода в компьютер данных из различных форм, заполненных от руки (анкет, бланков, опросных листов, заявлений и т.д.); система распознавания платежных поручений ABBYY FineReader Банк; инструментарий разработчика ABBYY Retrieval & Morphology Engine и другие программы. Среди клиентов за рубежом — Archivista (Швейцария), Arkenstone (США), C Technologies (Швеция), eFax (США), Lockheed Space and Missile Corporation (США), MAS Elektronikhandels GmbH (Германия), Samsung Data Systems (Южная Корея), Siemens Nixdorf (Германия), Sumitomo Electric Industries Ltd (Япония) и ряд других компаний.

Экспорт готового программного обеспечения — наиболее прибыльный вид экспорта высокотехнологичных продуктов. По этому пути развития идут такие страны, как Израиль, Финляндия, Швеция, Исландия, Норвегия, а также крупные индийские компании. Значительных результатов в этой области добился Израиль, именно поэтому эту модель часто называют «израильской». Подобная модель гораздо перспективнее офшорного программирования, однако для ее осуществления необходимы на порядок большие ресурсы. Теоретически, для экспорта готового продукта необходимы хороший маркетинг, знание американского и европейского рынков, налаженные связи и организация продаж, а следовательно, и большие капиталовложения: крупные компании тратят на маркетинг и продажи 40-50% своих средств. Кроме того, необходимо вкладывать средства в исследования и разработки — минимум 10-15% от доходов фирмы. Именно так действуют западные компании, выводя на рынок готовый продукт.

Российским компаниям для перехода к продуктовой модели необходимы деньги, люди и ноу-хау. Если компания уже имеет достаточно серьезный технологический задел и, заработав деньги на офшоре, вкладывает их в развитие своей продуктовой линии, то у нее появляются серьезные шансы для перехода к продаже законченных продуктовых решений. Главной проблемой российских компаний при выходе на международные рынки является недостаток опыта маркетинга и продаж, и именно к этому направлению необходимо привлекать зарубежных партнеров, чтобы снизить нагрузки, связанные с маркетингом продукта. Стремление компании позиционировать себя как партнера, уделяющего особое внимание качеству, обязательно приведет к успеху. Такой подход, в совокупности с продуманной специализацией, дает компании возможность достичь долговременных успехов в продаже законченных продуктовых решений за рубежом.

6. Заключение

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

• машинные (языки программирования низкого уровня);

• машинно-ориентированные (ассемблеры);

• машинно-независимые (высокого уровня).

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

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

7. Список литературы

1. Абрамов С.А., Зима Е.В. Начало программирования на языке Паскаль. – М.:Наука, 2012. – 112 с.

2. Алексеев В.Е. и др. Вычислительная техника и программирование. Практикум по программированию. - М.: ВШ, 2013, 200 с.

3. Бондарев В. - М., Рублинецкий В.И., Качко Е.Г. Основы программирования. - Харьков: Фолио, Ростов н/Д: Феникс, 2013. - 368 с.

4. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 2013, 406 с.

5. Гладков В.П. Конспект лекций по программированию для начинающих: Учеб. пособие / Перм. гос. техн. ун-т. - Пермь, 2013. - 217 с.

6. Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. - М.: "ДМК", 2012. - 416 с. 7. Калашников О. Ассемблер? Это просто! Учимся программировать (+ CD-ROM); СПб: БХВ - Москва, 2013. - 384 c.

8. Кнут, Д. Искусство программирования для ЭВМ; М.: Мир - Москва, 2013. - 569 c.

9. Кьоу, Дж.; Джеанини, М. Объектно-ориентированное программирование. Просто и понятно; СПб: Питер - Москва, 2015. - 238 c.

10. Муртаф, Б. Современное линейное программирование; Мир - Москва, 2013. - 224 c.

11. Намиот, Д.Е. Практическое использование MS Windows; Унитех - Москва, 2012. - 124 c.

12. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. - СПб: Питер, 2013.-393с.

13. Технология программирования. Основные понятия и подходы [Электронный ресурс], режим доступа: http://www.arctic-cooler.com/programming/1/comptechnology0.html.

14. Лекции по информационным технологиям [Электронный ресурс]/ http://www.studfiles.ru/dir/cat32/subj1177/file9554/view96799/page20.html

15. Лекции по технологии программирования (Гвоздев) [Электронный ресурс], режим доступа: http://gendocs.ru/v28091/?cc=10

16. История развития языков программирования [Электронный ресурс], режим доступа: http://life-prog.ru/view_articles.php?id=41

17. История создания языков программирования [Электронный ресурс], режим доступа: http://www.shapovalov.org/publ/7-1-0-77.

18. История создания языков программирования [Электронный ресурс], режим доступа: http://www.psciences.net/main/sciences/computer_sciences/articles/istyazprog.html

19. История создания языков программирования [Электронный ресурс], режим доступа: http://dic.academic.ru/dic.nsf/ruwiki/987061.

20. Д.А. Поспелов, «Становление информатики в России», в сб. «Очерки истории информатики в России», под ред. Д.А. Поспелова и Я.И. Фета. Новосибирск, Научно-издательский центр ОИГГМ СО РАН, 1998 г.