Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

История ПО

.pdf
Скачиваний:
25
Добавлен:
18.03.2015
Размер:
1.4 Mб
Скачать

Самая совершенная компьютерная операционна система в мире становится совершеннее.

Уже доступна в App Store для Mac

Операционные системы Apple

A/UX, Apple Darwin, Apple DOS, GS/OS, Mac

OS, Mac OS 8, Mac OS 9, Mac OS X, 10.0 Cheetah, 10.1 Puma, 10.2 Jaguar, 10.3 Panther, 10.4 Tiger, 10.5 Leopard, 10.6 Snow Leopard, 10.7 Lion, IOS, ProDOS,SOS

DEC/Compaq/HP

AIS; OS-8; ITS (для PDP-6 и PDP-10); TOPS-10 и TOPS-20 (для PDP-10); WAITS; TENEX (от

BBN); RSTS/E (работала на нескольких типах машин, в основном PDP-11); RSX-11

(многопользовательская многозадачная ОС для PDP-11); RT-11 (однопользовательская для

PDP-11)

RTE-II (система реального времени для HP-2000/2100 и ДОС РВ для М-6000/7000, СМ-1) VMS (от DEC для серии компьютеров VAX, позднее переименована в OpenVMS)

HP-UX от HP; NonStop OS — разработана компанией Tandem Computers, впоследствии

приобретённой фирмой Compaq; OSF/1 (от DEC; дважды переименована, сначала в Digital

UNIX, затем в Tru64 UNIX)

Control Data Corporation

CDC KRONOS; CDC NOS; CDC SCOPE

Control Data Corporation

CDC KRONOS; CDC NOS; CDC SCOPE

IBM

IBSYS; OS/2; OS/2 v1.0 — Выпущена в декабре 1987 года. Одна из первых операционных

систем с поддержкой многозадачного режима процессора 80286. S/2 v1.10SE — Выпущена в октябре 1988 года. SE = Standard Edition. OS/2 v1.10EE — 1989 год. OS/2 v1.20 — 1989 год.

Редакции SE и EE. Улучшенный Presentation Manager. OS/2 v1.30 — 1991 год. Также редакции SE и EE. OS/2 v2.00 — Весна 1992 года. Первая версия OS/2, которой для работы

необходим процессор 80386 с его защищённым режимом.

OS/2 v2.10 — Май 1993 года. OS/2 v2.11 — Конец 1993 года. Не содержит подсистемы Win-OS/2 и устанавливается поверх Windows 3.1. Стоит дешевле других версий OS/2.

OS/2 v3.0 «Warp» и «Warp Connect» — Октябрь 1994 года. OS/2 v4.0 «Merlin»

Сентябрь 1996 года. OS/2 Warp 4.5 Server for E-business «Aurora» — Апрель 1999 года. Дальнейшие обновления получили имена CP1 и CP2 (Convenience Package) и базировались на Aurora. eComStation

AIX Unix-подобная ОС: AIX/RT; AIX/6000; AIX PC; AIX/ESA; AIX/370; AIX 5L DYNIX Unix-подобная ОС, разработана компанией Sequent Computer Systems, которая

позже была поглощена IBM; OS/400; VM; DOS/360; DOS/VSE

OS/360 — первая ОС для архитектуры System 360; MFT — позднее переименована в OS/VS1 MVT — позднее переименована в OS/VS2; SVS; MVS — разновидность MVT; TPF; ALCS; OS/390; z/OS — следующая версия после IBM OS/390; z/VM — разновидность VM; z/VSE — разновидность VSE

Basic Operating System — первая ОС для архитектуры System 360; PC DOS OEM-версия

MS-DOS, впоследствии дорабатывалась самостоятельно.

ОС ЕС, СВМ, МВС, ДОС ЕС, МОС ЕС — IBM-совместимые операционные системы (клоны) советского производства

Языки низкого уровня

Язык ассемблера

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

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

Символические мнемоники запоминаются легче, чем шестнадцатеричные коды команд.

Для регистров и областей памяти также можно использовать символические имена.

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

команды, — это простейший транслятор.

Языки низкого уровня сегодня применяют в тех случаях, когда имеются особые требования к скорости работы и компактности программы. Они также удобны, если нужен прямой доступ к аппаратным ресурсам.

Языки высокого уровня

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

инструкция (оператор) языка преобразуется в группу машинных. Эти языки ориентируются не

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

Сегодня абсолютное большинство программ создается именно на основе языков высокого уровня. Эти языки имеют следующие достоинства.

Машинная независимость. Программа с одинаковым исходным текстом может быть

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

Использование естественных обозначений (например, привычных математических знаков).

Эффективное представление этапов обработки данных средствами языка. Набор

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

Расширенный набор поддерживаемых типов данных.

Готовые библиотеки стандартных подпрограмм для выполнения часто встречающихся

действий.

Применение языков программирования высокого уровня для создания программ началось в 60-е годы XX века. С тех пор по настоящее время создано и используется множество языков программирования, как универсальных, так и ориентированных на определенные группы задач.

Процедурные языки

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

Логические языки

Логические языки программирования (ЛИСП, ПРОЛОГ и другие) представляют собой отдельную линию развития. Их используют при теоретическом исследовании алгоритмов, в работах по созданию искусственного интеллекта, в операциях с базами данных и в сложных системах автоматического управления. Программа на логическом языке программирования представляет собой набор данных и логических правил. Иногда ее можно рассматривать как единое сложное логическое образование. Работа программы состоит в выполнении формальных логических преобразований и получении всех возможных выводов.

Объектно-ориентированные языки

Объектно-ориентированные языки программирования (Visual BASIC, C++, Object Pascal, Java) — это новая ступень развития процедурных языков программирования. Они ориентированы на создание очень больших и сложных программ. Многие из этих языков созданы путем расширения синтаксических правил процедурного языка-предка. Программы, написанные на объектно-ориентированном языке программирования, обычно используют событийный механизм управления. Различные воздействия на программные объекты рассматриваются как последовательность событий. Работа программы состоит в том, что объекты, составляющие программу, реагируют на эти события.

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

Этот код может быть выполнен на любом компьютере, на котором имеется специальная программа для его интерпретатора {виртуальная машина Java).

Развитие языков программирования

Язык

 

Год создания

 

 

 

Fortran

1957

Algol-58

1958

Lisp

1958

Cobol

1959

Algol-60

1960

PL/1

1964

Algol-68

1968

Pascal

1970

Prolog

1972

C

1972

Basic

1975

Forth

1976

Modula-2

1979

Ada

1980

C++

1980

Oberon

1987

Oberon-2

1992

Java

1996

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

компьютерами.

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

естественные языки и способные на основании одного

предложения строить несколько команд компьютера, принято считать языками “высокого уровня”.

В настоящее время насчитывается несколько сотен таких языков; если же учитывать все их варианты,

называемые диалектами, то, возможно, и более

тысячи.

•В 1954 г. группа разработчиков фирмы IBM под руководством Джона Бэкуса, одного из ведущих участников разработки компьютеров IBM-701 и 704, приступила к разработке языка программирования высокого уровня для IBM-704. Работа оказалась сложной и продолжалась более двух лет, в результате чего появился “транслятор формул” FORTRAN (FORmula TRANslation language).

В1962 г. появилась версия Фортран IV, которая существенно расширила возможности языка. Учитывая, что Фортран многократно адаптировался ко всем новым системам машин, у него накапливалось множество различий. Для наведения порядка в 1966 г. была произведена стандартизация языка, в результате чего он был утвержден как язык Фортран-66. В 1977 г. Фортран еще раз был стандартизован как Фортран-77, а в 1990 г. был принят стандарт Фортран-90.

В1959 г. состоялась международная конференция по языкам программирования, возглавляемая директором Института исследований систем обработки данных Министерства обороны США Чарльзом Филлипсом. Эта конференция получила название CODASYL (Conference on Data System Language – “конференция по языкам систем обработки данных”). Конференция должна была обсудить проблему создания единого языка для деловых приложений.

Лисп

Семантика: мультипарадигмальный: объектно-ориентированное, функциональное, процедурное программирование

Появился в: 1958

Автор(ы): Джон Маккарти Типизация данных: сильная, динамическая

Диалекты: Common Lisp (CLOS), Scheme, Arc, Clojure, BEE Lisp,

языки расширения: AutoLisp и ELisp

Повлиял на: Io, Nemerle, Python, Ruby, Smalltalk, Лого, Factor, Perl

Джон Маккарти (1927-2011)

Язык программирования LISP был создан американцем Джоном Маккарти в 1958 году. Маккарти довольно активно занимался исследованием и разработкой различных систем искусственного интеллекта. Для этих целей им был создан язык LISP, описание которого он опубликовал в журнале «Communications of the ACM» через пару лет – в 1960 году. После этого LISP стал постепенно набирать популярность. Традиционно, у языка LISP имеется динамическая система типов. Этот язык – функциональный, но – впоследствии были разработаны различные системы. Например, существует платформа «CLOS» - Объектная система LISP. Как обычно, объектно-ориентированный подход проник во все современные языки программирования =) Язык LISP прошел примерно такой же путь стандартизации, как и язык Ада. В результате всех стадий стандартизации, был принят стандарт ANSI в 1994 году, который назвали Common LISP. Его приняли для того, чтобы не допустить дальнейшего увеличения числа диалектов языка программирования LISP.

Основной идеей язык LISP является то, что каждый символ являлся узлом матрицы с множеством координат. Причем – все показатели этого узла записываются в специальные ячейки памяти – слоты. Существуют несколько основных слотов – Имя символа, Функциональный слот, Значение и Дополнительный. Выполняются программы на так называемых LISP-машинах.

Так как основой языка LISP являются списки, то все построено на их основе. Суть заключается в том, что есть головной элемент списка – и к ней подключен хвост списка. Этот самый хвост может быть одновременно головой и для другого списка – все это может повторяться, программы на языке LISP довольно сложные. Зато – LISP – очень динамический язык программирования.

С редким единодушием комитет по разработке Алгола-60 «голосует» для этой групповой

фотографии, сделанной на конференции в

Париже 1960 г. В работе комитета участвовали американский специалист по компьютерам Джон Бекус (ближайший к камере справа) и датский астроном Петер

Наур (четвертый слева), в честь которых

 

система описания языков программирования

 

получила название «форма Бекуса - Наура».

 

(Фотографию сделал Джон Маккарти,

Комитет по разработке Алгола-60.

создатель языка Лисп.)

 

Язык, созданный на конференции в Цюрихе, многое унаследовал от Фортрана, но в Алголе

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

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

компилятора языка.

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

Одним из таких оптимистов был Джон Бекус. В феврале 1959 г. он ознакомил с Алголом

мощную организацию SHARE потребителей компьютеров фирмы IBM. Его доклад был воспринят с энтузиазмом, и от фирмы настойчиво потребовали реализовать Алгол.

ПЛ/1 (РL/1, от Programming Language One)

В 1964 г. фирма IBM, практически одновременно с созданием новой линии компьютеров «Система 360», под руководством Джорджа Рэдина вела разработку нового языка высокого уровня, который должен был удовлетворять в равной степени потребности как в аналитических вычислениях, так и в обработке данных в сфере бизнеса и в специальных приложениях.

Для написания спецификации РL/1 был создан «Комитет по разработке передового

языка», составленный из представителей фирм Lockheed, Union Carbait, Standard Oil из

Калифорнии и специалистов из фирмы IBM. Работа над компилятором языка была поручена лаборатории IBM в Англии. Сначала он назывался New Programming Language, а потом был переименован в Programming Language One (PL/1). Многие черты Фортрана, Кобола и Алгола-60 нашли отражение в PL/1. Работа велась в условиях нехватки времени. Группа

приступила к работе в октябре 1963 г., а поскольку срок окончания работ по «Системе-360»

был назначен на апрель 1964 г. Участники изо всех сил стремились успеть к сроку. Фортран предлагался в качестве основы нового языка, но комиссия отвергла Фортран: он имел слишком ограниченные возможности, чтобы стать основой универсального языка. Споры по этому вопросу задержали работу на несколько недель. PL/1 значительно мощнее Паскаля,

Фортрана-90, Кобола, Бейсика, Си и во многом похож на Аду. К преимуществам PL/1

относятся:

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

аккуратные средства работы с указателями, напоминающие средства Java;

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

разрядности переменных; работа с различными типами данных;

встроенные средства отладки и диагностики выполнения программы и т. д.