Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование. Лекция 1.docx
Скачиваний:
14
Добавлен:
21.03.2015
Размер:
48.21 Кб
Скачать

Программирование. Лекция 1.

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

Краткая история развития вычислительной техники.

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

Человечество научилось пользоваться простейшими счётными приспособлениями тысячи лет назад (в качестве примера можно назвать абак или счеты – количество подсчитываемых предметов равнялось количеству передвинутых костяшек такого инструмента).

В 1623 году Вильгельм Шикард придумал «Считающие часы» — первый механический калькулятор, умевший выполнять четыре арифметических действия. Считающими часами устройство было названо потому, что, как и в настоящих часах, работа механизма была основана на использовании звёздочек и шестерёнок.

За этим последовали машины Блеза Паскаля («Паскалина», 1642 г.) и Готфрида Вильгельма Лейбница.

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

Примерно в 1820 году Чарльз Томас создал первый удачный, серийно выпускаемый механический калькулятор — арифмометр Томаса, который мог складывать, вычитать, умножать и делить.

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

Ада Лавлейс, дочь лорда Байрона, перевела и дополнила комментариями труд «Sketch of the Analytical Engine». Её имя часто ассоциируют с именем Бэббиджа. Утверждается также, что она является первым программистом, хотя это утверждение и значение её вклада многими оспаривается.

Хотя двоичная система счисления была описана еще Лейбницем, многие последующие разработки вплоть до 1940-х гг. (включая машины Чарльза Бэббиджа и даже ЭНИАК 1945 года) были основаны на более сложной в реализации десятичной системе.

Одними из первых электромеханических компьютеров стали устройства так называемой Z-серии Конрада Цузе. Первый вычислитель серии (1936 год) уже имел память (весьма ограниченную) и возможность программирования. Z3 (1941 г.) был построен на телефонных реле и стал первым работающим компьютером, управляемым программой (к тому же он был сконструирован на основе двоичной логики, что делало его реализацию более простой).

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

В 1937 году Клод Шеннон показал, что существует соответствие один-к-одному между концепциями булевой логики и некоторыми электронными схемами, которые получили название «логические вентили», которые в настоящее время повсеместно используются в цифровых компьютерах. В 1939 году Джон Винсент Атанасов и Клиффорд Берри (Clifford E. Berry) из Университета штата Айова разработали Atanasoff-Berry Computer (ABC) – первый в мире электронный цифровой компьютер. В этом устройстве электронные лампы использовались в сумматоре.

Американский ENIAC, который часто называют первым электронным компьютером общего назначения, публично доказал применимость электроники для масштабных вычислений. Это стало ключевым моментом в разработке вычислительных машин, прежде всего из-за огромного прироста в скорости вычислений, но также и по причине появившихся возможностей для миниатюризации. Созданная под руководством Джона Мочли и Дж. Преспера Эккерта, эта машина была в 1000 раз быстрее, чем все другие машины того времени. Разработка «ЭНИАК» продлилась с 1943 до 1945 года. В то время, когда был предложен данный проект, многие исследователи были убеждены, что среди тысяч хрупких электровакуумных ламп многие будут сгорать настолько часто, что «ЭНИАК» будет слишком много времени простаивать в ремонте, и тем самым, будет практически бесполезен. Тем не менее, на реальной машине удавалось выполнять несколько тысяч операций в секунду в течение нескольких часов, до очередного сбоя из-за сгоревшей лампы.

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

Первое поколение эвм. 1948 – 1958 г.

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

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

Первой работающей машиной с архитектурой фон Неймана стал манчестерский «Baby» — Small-Scale Experimental Machine (Малая экспериментальная машина), созданный в 1948 году. Другим претендентом на звание «первый цифровой компьютер с хранимой программой» стал EDSAC, разработанный и сконструированный в Кембриджском университете. Заработавший менее чем через год после «Baby», он уже мог использоваться для решения реальных проблем.

Первый универсальный программируемый компьютер в континентальной Европе был создан командой учёных под руководством Сергея Алексеевича Лебедева из Киевского института электротехники СССР, Украина. ЭВМ МЭСМ (Малая электронная счётная машина) заработала в 1950 году. Она содержала около 6000 электровакуумных ламп и потребляла 15 кВт. Машина могла выполнять около 3000 операций в секунду.

В октябре 1947 года директора компании Lyons & Company, владеющей сетью магазинов и ресторанов, решили принять активное участие в развитии коммерческой разработки компьютеров. Компьютер LEO I начал работать в 1951 году и впервые в мире стал регулярно использоваться для рутинной офисной работы.

В июне 1951 года UNIVAC 1 был установлен в Бюро переписи населения США. Машина была разработана в компании Remington Rand, которая, в конечном итоге, продала 46 таких машин по цене более чем в 1 млн $ за каждую. UNIVAC был первым массово производимым компьютером; все его предшественники изготовлялись в единичном экземпляре.

Первой советской серийной ЭВМ стала Стрела, производимая с 1953 на Московском заводе счётно-аналитических машин. ЭВМ имела быстродействие 2000-3000 операций в секунду.

В 1954 году IBM выпускает машину IBM 650, ставшую довольно популярной — всего было выпущено более 2000 машин. Она весит около 900 кг, и ещё 1350 кг весит блок питания; оба модуля имеют размер примерно 1,5 × 0,9 × 1,8 метров. Цена машины составляет 500000 долл. (около 4 млн долл. в пересчёте на 2011 год) либо может быть взята в лизинг за 3500 долл. в месяц (30000 долл. на 2011 год).

В 1955 году Морис Уилкс изобретает микропрограммирование, принцип, который позднее широко используется в микропроцессорах самых различных компьютеров. Микропрограммирование позволяет определять или расширять базовый набор команд с помощью встроенных программ (которые носят названия микропрограмма или firmware).