Программное обеспечение
1. Программное обеспечение (ПО) компьютеров делится на общее (базовое), предназначенное для решения типовых задач и изготовляемое массовыми тиражами, и специальное, создаваемое под заказ для уникальных приложений. В свою очередь, общее ПО подразделяется на системное, служащее для технологических целей и для обеспечения вычислительного процесса, и прикладное, поддерживающие типовые задачи обработки данных (обработка текстов, электронные таблицы, СУБД и т.п.). 2. Накопленный за 50 лет существования компьютеров массив общего программного обеспечения представляет собой гигантскую интеллектуальную ценность. Он постепенно выкристаллизовывался из специального. В результате эволюции и конкурентного отбора. Каждое десятилетие внесло свой наиболее существенный вклад в формирование общего ПО. • 50-е годы: библиотеки стандартных программ, низкоуровневые языки и системы автоматизации программирования (ассемблеры и автокоды); • 60-е годы: высокоуровневые языки и системы автоматизации программирования, пакетные операционные системы; • 70-е годы: диалоговые операционные системы, системы управления базами данных (СУБД); • 80-е годы: пакеты прикладных программ для персональных компьютеров, системы автоматизации проектирования (CASE); • 90-е годы: программное обеспечение компьютерных сетей, мультимедиа. 3. Библиотеки стандартных программ и первые системы символического кодирования ассемблеры возникли еще в доэлектронную эпоху (гарвардский MARK-I), первая собирающая программа — ассеблер — была разработана в 1949 году в Англии Морисом Уилксом в процессе работы над ЭВМ EDSAC. 4. История высокоуровневых языков программирования начинается с гипотетического, то есть не реализованного на ЭВМ, языка Plancalcul, разработанного Конрадом Цузе в конце 1940-х годов. Важную роль в автоматизации программирования сыграла предложенная А.А.Ляпуновым и реализованная в 1954 - 56 годах М.Р.Шура-Бурой и А.П.Ершовым идея автоматизации программирования на основе операторной схемы. 5. Языки и системы программирования наиболее бурно развивались в 60-е годы, когда были разработаны основные принципы их построения и родились многие сотни языков различного назначения. В результате естественного отбора до конца века дожили немногие «великие языки», в которых воплощены пять основных концепций современного программирования: • процедурное программирование, составляющее основу классических алгоритмических языков Фортран, Бэйсик, Кобол, Алгол, Си и др.; • объектно-ориентированное программирование (ООП), в чистом виде присутствующее в языке Smalltalk, и в той или иной степени — во всех современных языках; • визуально-событийное программирование, являющиеся развитием ООП в части работы с особыми классами визуальных объектов, реализованное в визуальных средах Visual Basic, Delphi, Visual FuxPro, VisualAge, Java и др.; • функциональное программирование, реализованное в языке обработки списков Лисп; • логическое программирование, воплощенное в декларативном языке Пролог. 6. Первым широко распространенным алгоритмическим языком стал язык Фортран (Fortran — FPRmula TRANslator), разработанный Джоном Бэкусом в корпорации IBM, и реализованный в 1957 году для ЭВМ IBM-704. Впоследствии этот язык был перенесен практически на все типы компьютеров, он постоянно совершенствовался и развивался. На Фортране накоплен колоссальный массив стандартных программ, он неизменно остается одним из «великих» языков для программирования научных задач во всем мире. 7. Язык Бэйсик (Basic — Beginner`s All Purpose Symbolic Instruction Code) является младшим братом Фортрана. Он был разработан в 1964 году в Дармутском колледже (г. Ганновер, штат Нью-Хемпшир, США) Джоном Кемени и Томасом Курцем. Язык предназначался для учебных целей, поэтому одновременно с интерпретатором была создана система разделения времени для одновременной работы с нескольких терминалов. Бурное развитие Бэйсик получил после того, как Билл Гейтс и Пол Аллен разработали в 1975 году интерпретатор Бэйсика для первого персонального компьютера Altair и образовали фирму Microsoft. 8. Язык Кобол (Cobol — COmmon Business Orientated Language), созданный в 1960 году комитетом КОДАСИЛ по инициативе Грейс Хоппер, предназначен для программирования экономических задач. В Коболе впервые появились описания структур данных. В США до сих пор пользуется большой популярностью, в СССР и России широкого распространения не получил из-за англоязычного многословия. 9. Язык Алгол (Algol — ALGOritmic Language) был предложен в 1960 году авторитетным международным комитетом. Это был первый язык с формальным описанием синтаксиса в форме Бэкуса-Наура. Алгол оказал мощнейшее влияние на всю последующую историю языков программирования. На основе Алгола-60 создано множество обобщений и расширений. Язык получил распространение в Европе, в частности, в СССР, где для него было создано несколько компиляторов. В США особенной популярностью не пользовался. В последующие десятилетия Алгол проиграл в конкурентной борьбе с Фортраном, так как уступал ему по возможностям ввода-вывода и по богатству накопленных прикладных программ. 10. Развивая Алгол, международная федерация по обработке информации организовала разработку нового высокоуровневого языка Алгол-68. Он отличался предельной теоретической проработанностью и богатством возможностей, однако из-за сложности понимания и проблем реализации практического применения не имел. 11. Член комитета по Алголу-68 Никлаус Вирт, не согласный с проектом переусложненного языка, разработал в 1971 году простой алголоподобный язык Паскаль (Pascal). Паскаль получил очень широкое распространение, когда в 1984 году Филипп Кан разработал для него скоростной компилятор для IBM PC и организовал фирму Borland Inernational. На основе базового Паскаля, первоначально предназначенного только для обучения программированию, впоследствии были созданы языки и системы промышленного программирования Ada, Modula, Delphi. 12. Язык PL/1 — Programming Language One был создан фирмой IBM и 1964-67 годах как универсальный суперязык для новой серии машин S/360, призванный заменить все известные до него языки программирования. Теоретически этот язык очень несовершенный и противоречивый, однако на практике использовался очень широко. Стал основным языком программирования задач обработки данных в СССР в 70-е и 80-е годы, в эпоху массовой разработки автоматизированных систем управления (АСУ). 13. Объектно-ориентированное программирование берет начало от языка Simula — SIMULAtion, созданного в 1964 году в Норвегии Оле-Джоном Далом и Кристеном Нюгордом, и предназначенного для моделирования систем с дискретными событиями. Там впервые появились понятия объекта, класса, метода. Развивая эти идеи, Алан Кей в 1973 году в исследовательском центре РАRС фирмы Xerox создал язык Smalltalk, являющийся до сегодняшнего дня эталоном объектности. Впоследствии объектная ориентированность перешла во все современные языки — Pascal, C, Basic. 14. Язык Си был создан Деннисом Ричи и Кеннетом Томпсоном в 1973 году в Bell Laboratories в связи с разработкой ими операционной системы Unix. Вместе с этой бесплатной системой он разошелся по университетам и стал излюбленным языком системных программистов. Язык отличается компактностью и возможностью писать программы на низком уровне, используя все ресурсы процессора. Объектное расширение языка Си, названное Си++, было произведено Бьярном Страуструпом в начале 80-х годов. 15. Язык Java был создан в 1995 году компанией Sun Microsystems на основе Си++ специально для программирования в интернете. Отличается особой технологией исполнения программ специальными интерпретаторами (виртуальными Java-машинами), встроенными во все современные браузеры. 16. Язык Лисп (Lisp — LISt Processing) был разработан Джоном Маккарти в 1960 году. Он реализует парадигму функционального программирования и служит для обработки списков. Лисп до сих пор широко используется для программирования задач искусственного интеллекта и даже, несмотря на некоторую громоздкость, для вычислительных задач. 17. Язык Пролог (Prolog — PROgramming for LOGic), созданный в Европе в начале 70-х годов, в отличие от всех предыдущих, не предназначен для написания алгоритмов. Он является декларативным языком логического программирования, с помощью которого можно описать факты и правила логического вывода в некоторой предметной области. Язык активно используется для решения задач искусственного интеллекта и построения экспертных систем. В 80-е годы с этим языком связывались большие надежды в связи с японским проектом ЭВМ пятого поколения. однако этим надеждам не суждено было сбыться. 18. История операционных систем начинается в 60-е годы, когда для облегчения труда операторов и экономии машинного времени были созданы первые программы-автооператоры и мониторные системы. Впоследствии они развились в операционные системы следующих основных типов: • пакетные (однозадачные и с мультипрограммированием); • диалоговые (с разделением времени — ОС РВ); • системы реального времени. 19. Пакетные операционные системы, поддерживающие режим мультипрограммирования, были разработаны в начале 60-х годов. Наиболее совершенной системой такого типа было OS/360 MVT для IBM S/360. Следующий этап в развитии ОС для больших ЭВМ — диалоговые операционные системы с разделением времени (ОС РВ). Экспериментальные ОС такого типа, сформировавшие идеологию систем, были созданы в Массачусетском технологическом институте. Сама идея была высказана Джоном Маккарти в 1961 году, проект Multics под руководством Фернандо Корбато реализовывался во второй половине 60-х годов. Промышленные ОС РВ появилась в 70-х годах, их разработка и доводка выполнялась как правило фирмами-производителями соответствующих ЭВМ, например, OS/VM для IBM S/360 или RSX-11 для PDP-11. Для отечественной ЭВМ БЭСМ-6 также было разработаны ОС «Диспак» и «Дубна». 20. Среди ОС РВ особое место занимает система Unix, первый вариант которой был разработан Кеннетом Томпсоном и Деннисом Ричи в Bell Laboratories в 1969 году. Написанная на машинно-независимом языке Си, она является портируемой, то есть допускает перенос на различные аппаратные платформы. Это свойство, а также доступность и бесплатность исходного кода, сделали Unix чрезвычайно популярной в 80-х и 90-х годах. Однако доступность исходного кода привела к тому, что единая система перестала существовать, образовалось множество хоть и близких по существу, но различающихся в деталях Unix-подобных систем, как бесплатных, так и коммерческих, например, Solaris от Sun, AIX от IBM, Xenix от Microsoft. 21. Появление персональных ЭВМ в 80-х годах породило новый класс настольных операционных систем, которые на первых порах относились к классу простейших пакетных однозадачных ОС. Для первого поколения 8-битовых ПК характерной была ОС CP/M, разработанная в 1976 году Гэри Килдолом. Второе поколение, ознаменовавшиеся выпуском 16-битовой IBM PC, оснащалось в основном операционной системой MS-DOS, выпущенной фирмой Microsoft в 1981 году. Эта система стала классической ОС для 80-х годов, однако ей присущи принципиальные недостатки, вытекающие из ограниченности аппаратных ресурсов: • однозадачный режим работы, • отсутствие встроенных средств управления расширенной памятью и внешними устройствами, прикладная программа должна решать эти задачи сама; • отсутствие унифицированного графического интерфейса, каждое приложение имеет свою логику взаимодействия с пользователем. 21. Третье поколение 32-битовых персональных компьютеров, появившееся к концу 80-х годов, обладало достаточными аппаратными возможностями для организации графического человеко-машинного интерфейса. Идеи этого интерфейса, разработанные еще в 70-х годах в Xerox PARC, были впервые широко использованы фирмой Apple в операционной системе Mac OS для ЭВМ Macintosh, выпущенной в 1984 году. Фирма Microsoft, отставшая в этом отношении от Apple, выпустила в 1985 году графическую надстройку над DOS под названием Windows. Первые две версии коммерческого успеха не имели, и только Windows 3.0, появившаяся в 1990 году, стала завоевывать рынок. К концу века Microsoft с настольными ОС Windows-95/98/Me, поддерживающими многозадачный режим работы, стала фактическим монополистом на рынке ОС для платформы Intel, победив в конкурентной войне фирму IBM с ее OS/2. 22. Кроме настольных ОС, в 90-е годы разрабатывались серверные операционные системы, являющиеся прямыми потомками ОС с разделением времени 70-х и 80-х годов. На рынке доминировали NetWare фирмы Novell, Windows NT фирмы Microsoft и различные версии Unix, среди которых наиболее активно развивалась бесплатная система Linux, первая версия которой была создана в 1991 году финским студентом Линусом Торвальдсом. 23. Особый класс операционных систем — системы реального времени. Они применяются в системах управления технологическими процессами, в которых критическим является время реакции системы на запросы внешних устройств. 24. Системы управления базами данных (СУБД), появившиеся в середине 60-х годов, имеют ряд преимуществ по сравнению с прежней схемой независимой работы программ с данными: • однократный ввод данных, • независимость программ от данных, • сокращение затрат на программирование. 25. Основные функции СУБД: • описание логической структуры данных, • манипулирование данными, • обеспечение целостности данных, • обеспечение многопользовательского доступа, • защита данных. 26. Существуют три основных типа СУБД, различающиеся логической организацией данных: иерархические, сетевые и реляционные. Первыми были иерархические СУБД (первая промышленная СУБД IMS была разработана фирмой IBM в 1968 году), затем в результате теоретических исследований, предпринятых рабочей группой КОДАСИЛ, появилась сетевая модель данных. Наиболее совершенными и распространенными в настоящее время являются реляционные СУБД, основанные на табличной (реляционной) модели данных, предложенной в 1970 году сотрудником IBM Эдгаром Коддом. Стандартным языком запросов в такой СУБД является язык SQL, разработанный в 1974 году Чемберленом и Бойсом. 27. Современные промышленные СУБД являются очень дорогими и долгоживущими программными продуктами, соизмеримыми по сложности с операционными системами. К концу века на рынке лидирует «большая шестерка»: Oracle, DB2, Informix, Sybase, Ingres, MS SQL Server. 28. Микрокомпьютерная революция и появление персональных ЭВМ в корне изменили ситуацию на рынке программного обеспечения. Из профессионального инструмента оно превратилось в товар массового спроса, доступный миллионам неквалифицированных пользователей. В 80-е годы на рынок было выброшено множество пакетов прикладных программ для персональных компьютеров, расцвел софтверный бизнес, авторы удачных разработок в одночасье делали миллионные состояния. К наиболее популярным ППП относятся текстовые редакторы, электронные таблицы и настольные СУБД. 29. Рынок текстовых редакторов делится на три основных сектора: простейшие текстовые редакторы, текстовые процессоры широкого применения типа MS Word и настольные издательские системы, берущие начало от пакета Page Maker, разработанного в 1985 году для Apple Macintosh. Особое место среди издательских пакетов занимает система TeX, созданная классиком информатики Дональдом Кнутом и принятая в качестве стандарта многими научными журналами 30. Электронные таблицы были изобретены сотрудником Digital Equipment Corp. Дэниэлом Бриклином и впервые реализованы им совместно с Робертом Фрэнкстоном в 1979 году для персонального компьютера Apple-II. Лидером рынка элкутронных таблиц в среде MS DOS был пакет Lotus 1-2-3, разработанный основателем фирмы Lotus Development Митчелом Кэпором в 1982 году. После появления Windows наиболее распространенной стала система Excel фирмы Microsoft. 31. Первой настольной СУБД стала простейшая система, разработанная в 1981 году Уэйном Рэттлифом и выпускаемая фирмой Ashton-Tate под названием dBase-II. Формат данных «dbf» и язык запросов этой системы стали классическими, породившими множество аналогичных разработок. К концу века, когда мощности персональных ЭВМ резко возросли, в качестве настольных стали использоваться облегченные версии реляционных промышленных СУБД, например, DB2 или Oracle. 32. Поскольку передача данных между различными программами в однозадачной операционной системе невозможна, в эпоху MS DOS, то есть в 80-е годы, достаточно популярными были интегрированные системы (Lotus 1-2-3, Simphony, Framework и др.), дающие возможность в рамках одного приложения работать с текстом, таблицами, графиками. С переходом на Windows, изначально обладающей интегрирующими свойствами, интерес к таким пакетам упал, однако после создания компьютерных сетей идея интеграции возродилась на новом уровне в виде клиент-серверных систем и пакетов поддержки групповой работы.
|