Microsoft осталась верна Бейсику. QuickBasic, VisualBasic - входит в поставку Windows.
В начале 80-х годов появилась, разработанная сотрудником «Белл телефон лабораторис» Бъярном Строуструпом, новая версия языка Си Си++ (++ это обозначение инкремента в Си). В него были внесены ряд добавлений (возможность работы с абстрактными данными и др.), главным из которых были средства ООП. При этом осталась ориентация на системное программирование. До последнего времени самый модный язык. Сейчас принято считать, что Си++ сложноват и не слишком надежен. В 1998 г. – стандарт С++.
Показано, что наиболее удобными для реализации программных систем, разработанных в рамках объектно-ориентированного подхода, являются объектно-ориентированные языки программирования, хотя возможна реализация и на обычных (не объектно-ориентированных) языках (например, на языке C и на языке Fortran). Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и др. Наиболее распространенным объектно-ориентированным языком программирования безусловно является C++. Свободно распространяемые коммерческие системы программирования C++ существуют практически на любой платформе. Широко известна свободно распространяемая система программирования G++, которая дает возможность всем желающим разобрать достаточно хорошо и подробно прокомментированный исходный текст одного из образцовых компиляторов языка C++. Разработка новых объектно-ориентированных языков программирования продолжается.
С 1995 года стал широко распространяться новый объектно-ориентированный язык программирования Java, ориентированный на сети компьютеров и, прежде всего, на Internet. Синтаксис этого языка напоминает синтаксис языка C++, однако эти языки имеют мало общего. Java интерпретируемый язык: для него определены внутреннее представление (bytecode) и интерпретатор этого представления, которые уже сейчас реализованы на большинстве платформ. Интерпретатор упрощает отладку программ, написанных на языке Java, обеспечивает их переносимость на новые платформы и адаптируемость к новым окружениям. Он позволяет исключить влияние программ, написанных на языке Java, на другие программы и файлы, имеющиеся на новой платформе, и тем самым обеспечить безопасность при выполнении этих программ. Эти свойства языка Java позволяют использовать его как основной язык программирования для программ, распространяемых по сетям (в частности, по сети Internet).
2. Программное управление компьютером
Современные достижения в области минитюаризации электронных схем позволили создать устройства, которые размещаются на кремниевой пластине размером несколько миллиметров, но по вычислительной мощности превосходят гигантские машины 50-х годов. Это сделало компьютеры доступными практически любому человеку. Они позволяют решать задачи, гораздо более сложные, чем во времена компьютеров на электронных лампах и перфокартах, и самые разнообразные. Такая универсальность обусловлена программным обеспечением, которое позволяет использовать одну и ту же машину для решения огромного множества самых разнообразных задач.
Однако по существу команды компьютера заметных изменений по сравнению с ранними годами развития современной вычислительной техники не претерпели. Любой компьютер должен разложить задание на последовательность логических операций, а затем выполнить их одну за другой.
Можно выделить несколько основных типов программ. Центральное место занимает специальная совокупность программ, называемая операционной системой, которая координирует работу компьютера и управляет размещением программ и данных в оперативной памяти. Она дает указания компьютеру, как интерпретировать команды и данные, как распределять аппаратные ресурсы для выполнения задания и как управлять периферийными устройствами (монитор, принтер и т.д.). Она также обеспечивает возможность непосредственного взаимодействия человека и компьютера, выполняя такие действия, как хранение программ и файлов данных.
Если операционная система – «режиссер», то прикладные программы – «артисты». Именно благодаря таким программам (текстовый редактор, электронные таблицы, игры и т.д.) компьютер приобретает свою разносторонность. Предназначены для решения специальных задач.
В состав программного обеспечения входят также утилиты и компиляторы (utility – польза). Это вспомогательные программы, позволяющие оптимизировать работу компьютера, например, произвести сортировку и перемещение файлов (утилиты) или преобразовать созданную на языке высокого уровня программу в машинный код (компиляторы).
Вычислительный процесс состоит из нескольких последовательных этапов: ввод информации в компьютер, ее специализированная обработка и вывод результатов. Такие устройства ввода, как клавиатура и «мышь», служат для задания компьютеру простых команд и данных (рис.1). Они поступают в центральный процессор (ЦП) – сердце аппаратной части вычислительной системы. ЦП координирует движение потоков информации и выполняет вычисления. ЦП понимает определенную систему команд, т.е. те коды, которые предписывают ему выполнение определенных операций. Любая программа представляется в виде последовательности таких кодов. В период работы программы ЦП в каждый момент времени выполняет только одну из ее команд. Процессор обменивается информацией с оперативным запоминающим устройством (ОЗУ) (оперативная память), которое хранит данные и программы во время их обработки. Большие и сложные программы обычно загружаются в оперативную память с устройств внешней памяти (жесткие и гибкие диски, магнитная лента), которые обеспечивают долговременное хранение программных и информационных файлов. Эти устройства совмещают в себе функции ввода и вывода. Полученные результаты компьютер может записать обратно на диск или ленту. Имеется также постоянное запоминающее устройство (ПЗУ), в котором хранятся программы, обеспечивающие начальную активизацию компьютера при его включении. Эти программы должны отыскать на диске операционную систему и загрузить ее в оперативную память. Устройствами вывода информации являются видеотерминал-монитор, принтер, а также звуковые колонки и др.
Телетайп (как и монитор) предназначен для ввода и вывода информации в диалоговом режиме. Ввод осуществляется посредством клавиатуры. При этом вводимые символы одновременно печатаются на бумажной ленте. Вывод результатов также осуществляется на бумажную ленту. Там же печатаются сообщения системы. Достоинство - непрерывное документирование. Недостатки - отсутствие простых способов корректировки прогираммы и низкая скорость вывода.
Перфокарты содержит 80 колонок и 12 строк. Каждый символ в одной колонке и кодируется одним, двуми или тремя отверстиями (кодируется перфоратором). Фотоэлектрический способ считывания. Основными характеристиками вычислительных машин являются ее быстродействие (т.е. количество операций, выполняемых в единицу времени) и объем оперативной памяти.
Быстрый и точный доступ к обрабатываемой информации и программам, управляющим работой ЦП, возможен благодаря тому, что программы и данные кодируются в виде последовательности электронных импульсов, каждый из которых соответствует одной двоичной цифре: 1 или 0. Импульсы записываются в микроэлектронных элементах - переключателях, из которых состоит оперативная память. Каждый элемент хранит одну двоичную цифру, или, как иначе говорят бит информации (binary digit) (рис.2). Эти элементы группируются друг с другом, формируя, таким образом, более крупную единицу хранения информации, называемой байтом, которая состоит из 8-ми бит. Производными являются Кбайт (103 байт), Мбайт, Гбайт.
Иногда используют обозначение 1К = 210 бит (1024 бита).
I80286 – на кристалле 130 т. транзисторов, Win3.0, 16-разрядный процессор, 16 Мбайт памяти, 8 МГц. I80386DX (1985)– 32-разрядный процессор и 32-разрядная шина данных, 386SX – 16-разрядную внешнюю шину данных и 24-разрядную адресную. 486DX – 1.2 млн. транзисторов, 32-разряда. Pentium (1993) – 66 МГц – частота процессора (затем умножение), 3.1 млн. транзисторов, 32-разр.адресную (процессор) и 64-разрядную внешнюю шину данных, обмен данными с системной платой на частоте 528 Мбайт/с.
Есть разрядность – внутренних регистров, шины данных, шины адреса.
Системная шина – передача информации между процессором и другими электронными компонентами. IBM PC/XT – 8 разрядов, т.к процессор 8088 имел 8 линий связи. ISA (Industry Standard Architecture) – в РС АТ с 286 процессором, имела 16 разрядов данных. EISA (Extended) расширение ISA до 32 бит. Локальные шины (VLB, PCI) обеспечивают подключение периферии к скоростной шине собственно процессора. Обе 32/64 бита.