История и эволюция систем программирования

Автор работы: Пользователь скрыл имя, 21 Ноября 2013 в 07:40, творческая работа

Описание работы

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

Файлы: 1 файл

Мусабиров А.Ф.ТР Тех.прог..doc

— 83.50 Кб (Скачать файл)

Основные данные о работе

Версия шаблона

2.1

ЦДОР

Стерлитамакский

Вид работы

Творческая работа

Название дисциплины

Технология программирования

Тема

История и эволюция систем программирования

Фамилия

Мусабиров

Имя

Альберт

Отчество

Фанилевич

№ контракта

3809120601010


  

Содержание

История и эволюция систем программирования ……………………………………3

Основная часть

История и эволюция систем программирования

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

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

К настоящему моменту сложилось  представление о традиционном составе  системы программирования, в который  входят следующие программные инструменты и библиотеки:

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

Этот минимум, позволяющий  достаточно эффективно вести процесс  создания программ, был представлен еще в начале 70-х годов XX века. Однако настоящую популярность такой интегрированный набор инструментов приобрел в середине 1980-х годов благодаря компании Borland Inc. Пакет Turbo Pascal впервые появился в 1983 году для операционной системы СР/М, а в начале 1984 года был перенесен в MS-DOS. Практически все начало истории персональных компьютеров IBM PC связано с системой Turbo Pascal - наиболее популярной средой разработок.

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

Утилита - программа, обеспечивающая некоторые общие функции (например, копирование файлов, подготовку текстов, организацию перекрестных ссылок и т. п.).

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

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

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

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

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

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

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

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

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

В-четвертых, совершенствование самих  ЭВМ приводит к необходимости создания систем, максимально реализующих новые возможности ЭВМ.

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

В 1950-х гг. появляются первые средства автоматизации программирования – языки Автокоды. Позднее для языков этого уровня стало применяться название «Ассемблеры». Появление языков типа Автокод-Ассемблер облегчило участь программистов. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (словесные) обозначения, которые легче запомнить. Язык программирования стал понятнее для человека, но при этом удалился от языка машинных команд. Чтобы компьютер мог исполнять программы на Автокоде, потребовался специальный переводчик – транслятор. Транслятор – это системная программа, переводящая текст программы на Автокоде в текст эквивалентной программы на языке машинных команд.

Компьютер, оснащенный транслятором с Автокода, понимает Автокод. В этом случае можно говорить о псевдо-ЭВМ (аппаратура плюс транслятор с Автокода), языком которой является Автокод. Языки типа Автокод-Ассемблер являются машинно-ориентированными, т.е. они настроены на структуру машинных команд конкретного компьютера. Разные компьютеры с разными типами процессоров имеют разный Ассемблер. Языки программирования высокого уровня являются машинно-независимыми языками. Одна и та же программа на таком языке может быть выполнена на ЭВМ разных типов, оснащенных соответствующим транслятором. Форма записи программ на языке программирования высокого уровня по сравнению с Автокодом еще ближе к традиционной математической форме, к естественному языку. Очень скоро вы увидите, что, например, на языке Паскаль она почти такая же, как на школьном Алгоритмическом языке. Языки программирования высокого уровня легко изучаются, хорошо поддерживают структурную методику программирования.

Языки системного программирования, на которых создаются операционные системы, трансляторы и другие системные программы, развиваются в направлении повышения их уровня и независимости от ЭВМ. На сегодняшний день почти 90% системного программного обеспечения создается не на языке ассемблера, а на языке C. Например, операционная система Unix практически полностью написана на C. Язык C позволяет получать программы, сравнимые по своей эффективности с программами, написанными на языке ассемблера. Правда, объем программ получается больше, но зато эффективность их создания гораздо выше.  
 
   Машинная независимость достигается использованием стандарта языка, поддерживаемого всеми разработчиками трансляторов, и использованием так называемых кросс-систем для эквивалентного преобразования программ с одного языка низкого уровня на другой.  
   Другим направлением является повышение уровня самого машинного языка. Например, известны Lisp-машины, в которых машинным языком является язык Lisp (реализован аппаратно). Другим примером являются ЭВМ 5-го поколения с машинным языком искусственного интеллекта Prolog.  
   ЯВУ развиваются в направлении поддержки технологий программирования, обеспечения низкоуровневых операций (уровня ассемблера), обеспечения новых информационных технологий (НИТ) и независимости от среды реализации. Следует сказать, что по своим возможностям ЯВУ постепенно сближаются и программисту на C все труднее становится спорить о преимуществах языка C с программистом, работающим на языке Basic.  
  Принципиальными отличиями языков высокого уровня от языков низкого уровня являются: использование переменных; возможность записи сложных выражений;  расширяемость типов данных за счет конструирования новых типов из базовых;  
расширяемость набора операций за счет подключения библиотек подпрограмм;  
слабая зависимость от типа ЭВМ.  
   Тотальный бум переживает технология объектно-ориентированного программирования (ООП): практически все современные ЯВУ поддерживают ООП. Да и все современные программные системы построены на принципах ООП, и сегодня каждый программирующий студент знает, что такое инкапсуляция, наследование и полиморфизм. Для обозначения факта поддержки ООП языки получают приставку Object (например, ObjectPascal) или другие (например, C++).  
 
   Windows, сети ЭВМ, серверы, базы данных и Internet, как основа НИТ, оказывают сильнейшее влияние на современные ЯП. Разработчики ЯП просто обязаны включать в языки средства поддержки НИТ, чтобы привлечь программистов на свою сторону. Для поддержки Windows создаются системы визуального программирования с приставкой Visual, например Visual C++, Visual Basic и др. Для работы с БД, сетями и Internet в ЯП включаются специальные внутренние или внешние средства.  
 
   Стремление к созданию программ, независимых от типа ЭВМ и операционной системы, привело к созданию языка Java. Основная задача Java - обеспечить выполнение программ, распространяемых через Web-страницы Internet, на любой рабочей станции. Кроме того, Java поддерживает все средства НИТ и в ближайшее время, очевидно, станет самым популярным ЯП.  
 
   Популярность языков искусственного интеллекта за последние 10 лет, к сожалению, заметно упала. На мой взгляд это связано прежде всего с психологическими проблемами, которые испытывают программисты при использовании этих языков. Например, в мощнейшем языке Lisp программа имеет очень сложную для понимания списочную структуру и небольшой по объему проект очень быстро выходит из под контроля. В языке Prolog программист должен точно знать логику работы встроенной машины логического вывода, а работа программы зависит от структуры и содержимого базы знаний (БЗ). Если с проектированием программы и структуры БЗ программист справляется, то для заполнения БЗ он должен быть экспертом в предметной области либо тесно контактировать с экспертом и извлекать из него знания, а то и другое является сложной задачей.  
   Поэтому необходимы дополнительные обеспечивающие средства для возврата популярности этих языков.

Список использованных интернет-ресурсов

№ п/п

Наименование интернет-ресурса

Ссылка на конкретную используемую страницу интернет-ресурса

1

ASWL.ru [Электронный ресурс] – Режим доступа:

http://www.ragnit-neman.narod.ru/study/gosi/2_21_translatori_kompilatori_interpretatori.htm

2

Методучкус. [Электронный ресурс] – Режим доступа:

http://3ys.ru/yazyki-i-sistemy-programmirovaniya/evolyutsiya-yazykov-programmirovaniya.html

3

Академия информационных технологий. [Электронный ресурс] – Режим доступа:

http://www.ait.org.ua/p/pub_evolution.html

4

МГИУ. [Электронный ресурс] – Режим доступа:

http://www.maksakovsa.ru/ProgrProd/IcstorProgr/index.html


Приложения

 

Приложение А




Информация о работе История и эволюция систем программирования