В каком виде составлялись программы для первых компьютеров
Для того чтобы понять основные принципы работы компьютера, не помешает ознакомиться с его устройством, хотя бы в общих чертах.
Основой компьютера является материнская плата , к которой подключаются все остальные устройства.
От архитектуры (конфигурации) материнской платы зависит и то, сколько дополнительных устройств может быть подключено к компьютеру. Также, материнская плата является распределителем питания для всех устройств.
BIOS — Basic Input/Output System — (Базовая Система Ввода/Вывода) — первичный программный код, который записан в постоянное запоминающее устройство, находящееся на материнской плате. По своей сути BIOS это первичный язык (азбука) компьютера, который позволяет ему обнаруживать все внутренние подключенные к материнской плате устройства, работать с ними, а также содержит первичные базовые команды, которые позволяют компьютеру осуществлять загрузку более серьезного программного обеспечения.
Если сравнить компьютер с новорожденным ребенком, то BIOS это набор первичных инстинктов, с которыми ребенок рождается на свет. Он ещё ничего не знает, но уже может смотреть, кричать, хаотично двигать ручками и ножками, слышать звуки, ощущать прикосновения, запоминать какую-то незначительную информацию. У новорожденного ребенка уже всё работает, но совершенно хаотично и несистематизировано. Возможности новорожденного ребенка сильно ограничены.
Процессор — мозг компьютера. Процессор совершает все вычислительные операции. Вычислительной операцией называется абсолютно всё. Пользователь может видеть на экране текст, либо цветные картинки, либо слышать музыку из динамиков, для компьютера это всё — вычислительные операции. Компьютер работает с цифровыми значениями. Для него существуют только цифры и сочетания цифр. Все исходные данные, а также результаты вычислений записываются в оперативную память.
Оперативная память сохраняет информацию только при поддержке питания. При обесточивании, вся информация из оперативной памяти безвозвратно исчезает. Оперативная память работает в паре с процессором и от её объема зависит продуктивность процессора. К примеру, если требуется обработать файл, который может быть целиком загружен в оперативную память, он будет обработан в ней процессором, а потом сохранен на жесткий диск.
В этом случае, недостаточный объем оперативной памяти может быть частично компенсирован её быстродействием. Если обмен данными происходит быстро, то пользователь не обнаружит задержки — когда часть обработанного файла была сохранена на жесткий диск, а на освободившееся в оперативной памяти место был загружен следующий фрагмент файла.
Жесткий диск в обиходе имеет несколько названий. Иногда его называют HDD — сокращение от Hard Disk Drive, а также можно услышать: Винчестер, Винт, Хард или Хард-диск . Жесткий диск является постоянным запоминающим устройством, которое способно хранить информацию даже при полном отключении электроэнергии.
Когда возникают сбои в работе компьютера или перепады напряжения в электросети, та информация, которая была сохранена на жестком диске, не утрачивается и не теряется.
Видеокарта служит для просчета изображения и вывода его на экран. По своей сути, видеокарта это мини-компьютер, который находится внутри большого компьютера. Видеокарта имеет свой собственный процессор и свою собственную оперативную память, в которой происходит просчет изображений и виртуальных сцен.
Видеокарта берёт на себя часть задач, связанных с просчетом изображения, чтобы этим не приходилось заниматься основному процессору компьютера.
Файл подкачки это зарезервированная область на жестком диске, которая используется для хранения виртуальных страниц и создаётся операционной системой автоматически. Обычно, система создаёт файл подкачки в полтора раза больше, чем имеется в наличии оперативной памяти, если пользователь не указал иные размеры. Файл подкачки позволяет расширить общий объем виртуальной памяти и обеспечивает быстрый доступ к уже просчитанным виртуальным страницам, чтобы избавить компьютер от необходимости просчитывать страницу каждый раз при обращении к ней.
Звуковая карта это аналог видеокарты, с той разницей, что звуковая карта занимается воспроизведением звука, дабы не отвлекать на эту задачу центральный процессор компьютера. Но поскольку воспроизведение звука не является столь сложной задачей, как воспроизведение видео, в большинстве случаев, звуковая карта интегрирована в материнскую плату и является её неотъемлемой частью.
Дополнительную звуковую карту устанавливают только в тех случаях, когда требуется высококачественный, студийный звук, который будет выводиться не на компьютерные колонки, а на профессиональную аудиоаппаратуру. В других случаях, использование отдельной звуковой карты не имеет смысла.
CD/DVD-ROM это устройство чтения компакт-дисков формата CD или DVD. Устройство используется для воспроизведения (чтения) аудио или видеофайлов, просмотра фотоальбомов, а также — установки операционной системы с загрузочного компакт диска на жесткий диск компьютера. Помимо чтения дисков, такое устройство может производить запись на CD или DVD диск.
Порты USB универсальные порты, которые были разработаны для подключения к компьютеру различных внешних устройств: смартфон, цифровая камера, флеш-накопители, мышь, клавиатура, съемные жесткие диски, устройства беспроводной связи и многое другое. При подключении устройства к порту USB, устройство сообщает компьютеру свою модель и другие исходные данные, которые позволяют компьютеру "найти общий язык" и работать с подключенным устройством.
Использование стандарта USB широко применяется в ноутбуках. Как правило, ноутбук может иметь два и более внешних порта USB, доступных пользователю. На самом же деле, таких портов гораздо больше, они находятся внутри ноутбука, не имеют стандартного внешнего разъема, поскольку, к ним постоянно подключены второстепенные внутренние устройства ноутбука: веб-камера, тачпад, встроенный микрофон, встроенные модули Wi-Fi и Bluetooth, а также устройства чтения карт памяти.
Использование стандарта USB широко применяется в ноутбуках. Как правило, ноутбук может иметь два и более внешних порта USB, доступных пользователю. На самом же деле, таких портов гораздо больше, они находятся внутри ноутбука, не имеют стандартного внешнего разъема, поскольку, к ним постоянно подключены второстепенные внутренние устройства ноутбука: веб-камера, тачпад, встроенный микрофон, встроенные модули Wi-Fi и Bluetooth, а также устройства чтения карт памяти.
Принцип работы
При включении питания компьютера, в первую очередь, блок питания подаёт напряжение на материнскую плату, а через неё уже на все прочие устройства компьютера. Следующим этапом происходит чтение информации из постоянного запоминающего устройства BIOS, что позволяет компьютеру обнаружить все внутренние устройства, которые к нему подключены. В соответствии с настройками BIOS производится загрузка с дискеты, компакт-диска, запоминающего устройства подключенного к USB-порту или HDD.
В классической настройке BIOS приоритеты были расставлены следующим образом: В первую очередь производится загрузка с диска "A" или "B" - эти буквы всегда отводились под дискету (флоппи-диск). Если указанные дисководы пусты, осуществить загрузку с диска "C" - Жесткий диск компьютера. Позже, когда дискеты практически вышли из обихода, настройку BIOS изменили. Приоритет загрузки отдали устройству чтения компакт-дисков CD-ROM. Если в этом устройстве нет диска, произвести загрузку, опять же, с диска "C". Подобная настройка BIOS позволяла без лишних хлопот установить операционную систему с загрузочного диска. Достаточно было вставить компакт-диск с установочными файлами операционной системы в дисковод, и компьютер начинал загружаться с компакт-диска, выходил в режим установки операционной системы. Позже, когда компьютеры стали продаваться с уже заранее установленной операционной системой, настройку BIOS поменяли и принудили компьютер в любом случае загружаться с диска "C", игнорируя другие устройства. Итак, загрузив BIOS, определив подключенные устройства, компьютер начинает загрузку операционной системы. В большинстве случаев это происходит с жесткого диска "C" или из раздела "C" находящегося на жестком диске. Помимо загрузки самой операционной системы, производится загрузка всех необходимых драйверов для обнаруженных устройств, подключенных в данный момент к компьютеру. В процессе работы, компьютер четко следует заданному алгоритму.
Говоря простым языком, компьютер четко выполняет инструкции, которые написаны для него человеком (программистом). Компьютер не может ошибаться, это было исключено ещё на заре развития кибернетики. Частично поврежденные элементы исключаются из работы. Либо, если повреждения значительны, компьютер отказывается работать совсем. Таким образом, все ошибки, возникающие в работе компьютера, полностью лежат на совести программиста. Если программа была написана с нарушением компьютерной грамматики, компьютер, обнаружив ошибку, откажется выполнять программу. Однако, чаще бывает, что программа написана безукоризненно, но содержит логическую ошибку, которую компьютер обнаружить не способен. Говоря простым языком, все команды написаны верно, но среди них отсутствует необходимая, либо присутствует команда, которая противоречит другой команде. Тогда компьютер берется выполнять программу, пока не дойдет до ошибки, где и происходит сбой в работе или зависание. Чаще всего, ошибки возникают по той причине, что программы были написаны разными программистами, которые не могли учесть всех тонкостей, не зная заранее — что написано другим.
Алгоритм это четкая, пошаговая инструкция, предусматривающая различные варианты развития событий. Без учета различных вариантов, работа компьютера с пользователем ограничивалась бы только запуском и выполнением программы, следующей одним, заранее написанным сценарием. Возможность менять ход сценария, делает компьютер уникальным и единственным устройством в своем роде.
Двоичный код
Двоичный код, как система сохранения данных, появился очень давно. Известно, что ещё во времена древних инков использовался данный принцип передачи информации. На верёвке завязывались узелки, которые означали единицу, а отсутствие узелка означало ноль. Позже система была забыта, но с появлением электроники, снова возродилась. Чтобы найти золотую середину, необходимо познать обе крайности. Это правило актуально и для электроники.
Учитывая несовершенство первых компьютеров, проще было обозначить само наличие сигнала или его отсутствие, чем пытаться опираться на прочие характеристики электрического тока, которые могли быть сильно искажены помехами, но которые пытались использовать — как альтернативный путь развития кодирования. Одно время, разрабатывались процессоры, которые также реагировали на частоту электрического тока. Каждая частота имела собственное значение.
Слабое место подобного метода заключается в том, что любые помехи могут искажать исходный сигнал, что приведет к искажению данных — ошибке. Защитить устройство от посторонних помех довольно сложно, да и генерация импульсов различной частоты тоже усложняет задачу. Поэтому подобный путь передачи и хранения данных не получил широкого распространения.
Инженеры пошли более простым и безошибочным путем. Наличие сигнала, в определенный промежуток времени, стали рассматривать — как единицу, отсутствие сигнала, за такой же промежуток времени, взяли за ноль. Таким образом, сформировалась основа двоичного кода, которой присвоили обобщенное название бит . Для этого случая вполне справедлива поговорка: Отсутствие результата — тоже результат . И действительно, в двоичном коде, единица это один бит информации. Ноль (отсутствие сигнала) также является одним битом информации.
Один бит (ноль или единица) занимает одну ячейку памяти. Правда, из одного бита информации, даже из двух — много пользы не выжмешь. Можно поиграть с их чередованием. Скажем, выражение 00 имеет одно значение, выражению 01 можно присвоить — другое, следовательно, появляется возможность записать ещё два значения: 10 и 11. Всего четыре комбинации из двух битов.
Этого явно недостаточно для передачи и сохранения сложной информации. Если же использовать не два, а три бита, то возможных вариантов становится уже не четыре, а восемь: 000, 001, 010, 100, 101, 110, 011, 111. Увеличение количества бит всего на один — увеличивает количество возможных вариантов вдвое. Использование восьми бит даёт уже 256 вариантов комбинаций и этого вполне достаточно для того, чтобы присвоить каждому варианту свой собственный символ или определенную команду. Получается, что восемь бит уже могут иметь определенное значение и смысл. По этой причине, запись, состоящая из восьми бит, получила название байт .
Подобная схема и легла в основу BIOS , благодаря чему компьютер способен понимать буквы латинского алфавита, цифровые значения от 0 до 9, а также — специальные символы, использующиеся в программировании.
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
§ 6. История развития вычислительной техники.
Информатика. 10 класса. Босова Л.Л. Оглавление
6.1. Этапы информационных преобразований в обществе
Веками люди совершенствовали способы и методы передачи, накопления, обработки и хранения информации. При этом средства обработки информации, как и сама информация, видоизменялись и расширяли свои возможности настолько, что это приводило к переменам в общественных отношениях. Появился термин «информационная революция», которым принято обозначать кардинальные изменения инструментальной основы, способа передачи и хранения информации, а также объёма информации, доступной активной части населения.
Информационная революция — кардинальное изменение инструментальной основы, способов передачи и хранения информации, а также объёма информации, доступной активной части населения.
Принято выделять пять информационных революций, определяющих, по сути, пять этапов информационных преобразований в обществе (табл. 2.1).
Содержание первой информационной революции составляет распространение и внедрение в деятельность и сознание человека языка. Вторая информационная революция была связана с изобретением письменности. Сущность третьей информационной революции состоит в изобретении книгопечатания, сделавшего любую информацию, и особенно научные знания, продукцией массового потребления. Четвёртая информационная революция состояла в применении электрической аппаратуры для скоростного и массового распространения всех видов информации и знаний.
Таблица 2.1
Этапы информационных преобразований в обществе
Пятая, последняя, информационная революция связана с созданием сверхскоростных вычислительных устройств — компьютеров. С появлением и массовым распространением компьютеров человек впервые за всю историю развития цивилизации получил мощное средство для эффективного использования информационных ресурсов, для усиления своей интеллектуальной деятельности.
Возможность использования членами общества полной, своевременной и достоверной информации в значительной мере зависит от степени развития и освоения новых информационных технологий, основой которых является вычислительная техника.
6.2. История развития устройств для вычислений
В развитии устройств для вычислений можно выделить несколько этапов:
• «домеханический» этап — изобретение счётов, таблиц Непера и логарифмической линейки;
• «механический» этап, начало которого связывается с первыми попытками создания механической счётной машины, предпринятыми Леонардо да Винчи (1452-1519). К этому же этапу относится создание многочисленных вариантов счётных машин и арифмометров, а также проект аналитической машины Чарльза Беббиджа, которая должна была выполнять вычисления без участия человека;
• создание электрорелейных вычислительных машин (вычислительные машины Говарда Эйкена, Джона Атанасова, Конрада Цузе и др.);
• создание электронных вычислительных машин (ЭВМ):
— создание ЭВМ фон-неймановской архитектуры;
— отход от традиционной фон-неймановской архитектуры, использование процессоров, работающих параллельно.
Понятие «вычислительная техника» сегодня тесно связывается с компьютерами, которые до 80-х годов прошлого века у нас в стране называли электронными вычислительными машинами. В этом смысле в развитии вычислительной техники также можно выделить несколько этапов, связанных с возникновением разных поколений ЭВМ:
• 40-е — начало 50-х гг. XX в. (создание ЭВМ на электронных лампах);
• середина 50-х — 60-е гг. XX в. (разработка ЭВМ на дискретных полупроводниковых приборах);
• середина 60-х гг. XX в. — середина 70-х гг. XX в. (появление ЭВМ на интегральных микросхемах);
• середина 70-х гг. XX в. — наши дни (использование больших и сверхбольших интегральных схем).
Рассмотрим особенности и характеристики каждого из приведённых этапов более подробно.
6.3. Поколения ЭВМ
Первое поколение ЭВМ — ламповые машины 50-х годов. Скорость счёта самых быстрых машин первого поколения доходила до 20 тысяч операций в секунду. Для ввода программ и данных использовались перфоленты и перфокарты. Поскольку внутренняя память этих машин была невелика (могла вместить в себя несколько тысяч чисел и команд программы), они, главным обра-зом, использовались для инженерных и научных расчётов, не связанных с переработкой больших объёмов данных. Это были довольно громоздкие сооружения, содержавшие в себе тысячи ламп, занимавшие иногда сотни квадратных метров, потреблявшие электроэнергию в сотни киловатт. Программы для таких машин составлялись на языках машинных команд, поэтому программирование в те времена было доступно немногим.
Первая ЭВМ ЭНИАК (ENIAC) была создана в конце 1945 г. в США; она весила 30 т и размещалась на 170 м 2 . В нашей стране первая ЭВМ была создана в 1951 году. Называлась она МЭСМ — Малая Электронная Счётная Машина (рис. 2.1).
Рис. 2.1. ЭВМ первого поколения МЭСМ
К концу 40-х гг. XX в., когда вошли в строй первые большие электронные компьютеры, специалисты начали искать замену громоздким и хрупким, часто выходившим из строя лампам, на которых они были построены. В 1948 году в США был создан первый полупроводниковый прибор, заменяющий электронную лампу. Он получил название транзистор. В 60-х годах транзисторы стали элементной базой для ЭВМ второго поколения. Переход на полупроводниковые элементы улучшил качество ЭВМ по всем параметрам: они стали компактнее, надёжнее, менее энергоёмкими (рис. 2.2). Быстродействие большинства машин достигло нескольких сотен тысяч операций в секунду. Объём внутренней памяти возрос в сотни раз по сравнению с ЭВМ первого поколения. Большое развитие получили устройства внешней (магнитной) памяти: магнитные барабаны, накопители на магнитных лентах. Это способствовало созданию на ЭВМ информационно-справочных, поисковых систем, нуждающихся в длительном хранении больших объёмов информации.
Во времена второго поколения ЭВМ активно начали развиваться языки программирования высокого уровня, одним из первых среди которых был Фортран (Fortran — сокращение от англ. FORmula TRANslation — трансляция формулы).
Рис. 2.2. ЭВМ второго поколения БЭСМ-6
Ключевыми фигурами среди физиков, занимавшихся изучением полупроводников, стали американские учёные Джон Бардин (1908 — 1991), Уолтер Браттейн (1902 — 1987), Уильям Брэдфорд Шокли (1910 — 1989). В 1948 году в газете «Нью-Йорк тайме» была напечатана короткая заметка, в которой сообщалось об изобретении ими нового устройства — транзистора. Эта информация прошла практически незамеченной, мало кто смог в то время оценить её по достоинству. Позже транзистор был признан одним из важнейших изобретений века, а его изобретатели получили Нобелевскую премию по физике.
Благодаря транзистору — германиевому кристаллу величиной с булавочную головку, заключённому в металлический цилиндр длиной около сантиметра, — электроника ступила на путь миниатюризации: один транзистор был способен заменить 40 электронных ламп.
Хотя транзистор был выдающимся научным изобретением, он не сразу получил широкое практическое применение в вычислительной технике. Германий, из которого изготавливали первые транзисторы, — довольно редкий химический элемент, поэтому стоимость транзисторов была очень высокой. Резко снизить стоимость транзисторов удалось только в середине 50-х гг. XX в.: в 1954 году был изготовлен первый транзистор из кремния — основного компонента обычного песка, — одного из самых распространённых на Земле химических элементов.
Третье поколение ЭВМ создавалось на новой элементной базе — сложные электронные схемы монтировались на маленькой пластине из полупроводникового материала, площадью менее 1 см 2 . Их назвали интегральными схемами (ИС). Первые ИС содержали в себе десятки, затем — сотни элементов (транзисторов, сопротивлений и др.). Когда степень интеграции (количество элементов) приблизилась к тысяче, их стали называть большими интегральными схемами — БИС, а затем появились сверхбольшие интегральные схемы — СБИС. ЭВМ третьего поколения начали производить во второй половине 60-х годов, когда американская фирма IBM приступила к выпуску системы машин IBM-360. В Советском Союзе в 70-х годах начался выпуск машин серии ЕС ЭВМ (Единая Система ЭВМ). Скорость работы наиболее мощных моделей ЭВМ достигла нескольких миллионов операций в секунду. На машинах третьего поколения появился новый тип внешних запоминающих устройств — магнитные диски. В ЭВМ третьего поколения широко использовались новые типы устройств ввода-вывода: дисплеи, графопостроители (рис. 2.3).
Рис. 2.3. Рабочее помещение с установленной ЕС-1060
В этот период были созданы операционные системы (ОС), позволявшие управлять большим количеством внешних устройств и выполнять на одной машине несколько программ одновременно. Широкое распространение получили ранее созданные языки программирования. Начали появляться пакеты прикладных программ для решения задач в конкретных областях. Это существенно расширило области применения ЭВМ.
Первая интегральная схема, представлявшая собой кристалл, в котором была размещена целая схема из нескольких транзисторов, была разработана в 1958 г. американским физиком Джеком Килби, удостоенным за это изобретение Нобелевской премии.
Очередное революционное событие в электронике произошло в 1971 году, когда американская фирма Intel объявила о создании микропроцессора.
Микропроцессор — это СБИС, способная выполнять функции основного блока компьютера — процессора. Соединив микропроцессор с устройствами ввода-вывода и внешней памяти, получили новый тип компьютера — микроЭВМ. Микро-ЭВМ относятся к машинам четвёртого поколения. Существенным отличием микроЭВМ от своих предшественников являются их малые габариты (размеры бытового телевизора) и сравнительная дешевизна. Это первый тип компьютеров, который появился в розничной продаже.
Сегодня самой популярной разновидностью ЭВМ являются персональные компьютеры (ПК). Первый ПК был создан в 1976 году в США. С 1980 года и на долгие годы вперёд на рынке ПК ведущей становится американская фирма IBM. Её конструкторам удалось создать такую архитектуру, которая стала фактически международным стандартом на профессиональные ПК. Машины этой серии получили название IBM PC (Personal Computer). С точки зрения общественного развития появление и распространение ПК сопоставимы с появлением книгопечатания. Именно ПК сделали компьютерную грамотность массовым явлением. С развитием компьютеров этого типа появилось такое понятие, как информационные технологии, без которых уже невозможно обойтись в большинстве областей человеческой деятельности.
Ещё одной линией в развитии ЭВМ четвёртого поколения являются суперкомпьютеры — мощные многопроцессорные компьютеры, выполняющие параллельную обработку данных (рис. 2.4).
Все компьютеры, используемые в настоящее время, по-прежнему построены на базе идей четвёртого поколения.
Рис. 2.4. Суперкомпьютер «Ломоносов»
В начале 90-х годов прошлого века в Японии начались работы по созданию компьютера пятого поколения. По замыслу японских специалистов основой работы этих компьютеров должны были стать не вычисления, а логические рассуждения, что означало переход от обработки данных к обработке знаний. Машину обещали научить воспринимать речь человека, рукописный текст и графические изображения. Окончательные результаты в этом направлении всё ещё не достигнуты. Исследования продолжаются.
Можно проследить несколько основных тенденций, имеющих место в развитии вычислительной техники:
• возрастание вычислительной мощности компьютеров от поколения к поколению;
• изменение целей использования компьютеров от сугубо военных и научно-технических расчётов к техническим и экономическим расчётам, коммуникационному и информационному обслуживанию, управлению;
• изменение в режиме работы компьютеров от однопрограммного к пакетной обработке, работе в режиме разделения времени, персональной работе и сетевой обработке данных;
• движение от машинного языка к языкам высокого уровня;
• повышение удобства работы пользователя за счёт усовершенствования аппаратного и программного обеспечения, возможности произвольного мобильного расположения;
• неуклонное расширение областей применения и круга пользователей компьютерной техники.
САМОЕ ГЛАВНОЕ
Веками люди совершенствовали способы и методы передачи, накопления, обработки и хранения информации. Информационная революция — кардинальное изменение инструментальной основы, способов передачи и хранения информации, а также объёма информации, доступной активной части населения.
Человечество прошло через несколько информационных революций, связанных с появлением речи, письменности, книгопечатания и средств коммуникации (телеграф, телефон, радио, телевизор). Пятая информационная революция связана с новыми информационными технологиями, основой которых является вычислительная техника.
Понятие «вычислительная техника» сегодня тесно связывается с компьютерами, которые до 80-х годов прошлого века у нас в стране называли электронными вычислительными машинами.
В развитии вычислительной техники также можно выделить несколько этапов, связанных с возникновением разных поколений ЭВМ:
1) 40-е — начало 50-х гг. XX в. (создание ЭВМ на электронных лампах);
2) середина 50-х — 60-е гг. XX в. (разработка ЭВМ на дискретных полупроводниковых приборах);
3) середина 60-х — середина 70-х гг. XX в. (появление ЭВМ на интегральных микросхемах);
4) середина 70-х гг. XX в. — наши дни (использование больших и сверхбольших интегральных схем).
Все компьютеры, используемые в настоящее время, по-прежнему построены на базе идей четвёртого поколения.
Вопросы и задания
1. Что понимают под информационными революциями? Какие информационные революции пережило человечество?
2. Выясните, когда отмечается День российской информатики. С чем связан выбор именно этой даты?
3. Дайте краткую характеристику «домеханического» периода развития вычислительных устройств, связанного с изобретением и использованием счётов, таблиц и логарифмической линейки.
4. Дайте краткую характеристику «механического» периода создания вычислительных устройств, связанного с именами таких изобретателей, как Леонардо да Винчи, Вильгельм Шиккард, Блез Паскаль, Готфрид Вильгельм Лейбниц, Филипп Маттеус Ган, Евна Якобсон и др.
5. Попытайтесь обнаружить «ткацкий след» в развитии вычислительной техники.
7. По какому принципу ЭВМ делятся на поколения? Дайте краткую характеристику каждому поколению компьютеров.
8. Предложите классификацию современных персональных компьютеров. Изобразите её в виде графа.
10. Что такое суперкомпьютеры? Для решения каких задач они используются?
11. Какое место в рейтинге суперкомпьютеров (Тор500) занимают российские разработки?
12. Назовите основные тенденции, прослеживаемые в развитии вычислительной техники.
Программирование для ЭВМ — процесс создания программ управления работой компьютера.
Эволюция программирования
С изобретением программно управляемых вычислительных машин появилась новая профессия — программист. На ламповых ЭВМ первого поколения программисты составляли свои программы, используя непосредственно команды процессора. При этом программисту приходилось самому распределять ячейки памяти под данные и под команды программы. Нужно было знать систему команд процессора и коды всех команд. Исходные данные и команды представлялись в форме двоичного кода, т. е. непосредственно в том виде, в котором они хранились в памяти ЭВМ. Для сокращения записи программ на специальных бланках обычно использовали двоично-восьмеричный или двоично-шестнадцатеричный код. Вот пример команды программы для одного из компьютеров первого поколения:
Такая команда называется трехадресной. Код 0216 относится к команде сложения. 1-й и 2-й адреса — это адреса ячеек ОЗУ, в которых хранятся слагаемые, 3-й адрес — адрес ячейки, куда заносится сумма. Сама команда хранится в ячейке ОЗУ с адресом 2816.
Программирование в машинных кодах представляло собой сложный процесс. По этой причине производительность работы программистов была довольно низкой. В 1950-х годах возникает направление, которое получило название «автоматизация программирования». Основная его цель — создание средств, облегчающих и ускоряющих процесс создания программы для ЭВМ. Появляются первые языки программирования.
Первыми языками программирования были машинно-ориентированные автокоды. Позднее за языками такого уровня закрепилось название ассемблеры. Первоначально ассемблером называли программу-переводчик с языка ассемблера в машинные команды. Позднее и сам язык ассемблера стали называть именем ассемблер. Программирование на ассемблере снимает с программиста заботу о распределении памяти под данные и команды программы. Программист не должен помнить внутренние коды всех команд процессора. Вот пример той же команды сложения на ассемблере (автокоде):
ADD а, Ь, с
Слово ADD обозначает команду «сложить», а и b — имена переменных-слагаемых, с — переменная, куда помещается результат.
Язык ассемблер называется машинно-ориентированным по той причине, что для каждой команды процессора существует свой аналог команды на ассемблере. Поскольку разные типы ЭВМ имели разные системы команд процессора, ассемблеры у них тоже отличались. Современные ассемблеры точно так же ориентированы на определенные типы процессоров. Позже появились так называемые макроассемблеры, в языке которых существуют макрокоманды, соответствующие сериям команд (подпрограммам) на языке процессора.
Составление программы на ассемблере проще, чем на языке команд процессора. Работу по распределению памяти под данные и команды, перевод команд ассемблера в машинные команды берет на себя специальная системная программа — транслятор.
Из машинной ориентированности программ на ассемблере следует, что такие программы нельзя переносить для исполнения на другие типы ЭВМ с другой системой команд процессора. Эта проблема создавала серьезные ограничения для прикладных программистов. Кроме того, само программирование на ассемблере является достаточно сложным для массового освоения, что ограничивало использование ЭВМ в прикладных областях.
Языки программирования высокого уровня
Следующим этапом развития программирования стало создание языков программирования высокого уровня — ЯПВУ. Примеры ЯПВУ: Паскаль, Бейсик, Фортран, Си, Java и др. Все названные ЯПВУ относятся к так называемой процедурной парадигме программирования. Поэтому их называют процедурными языками программирования. Программы на таких языках представляют собой последовательности команд, описывающих действия (процедуры) компьютера по обработке информации. Существуют другие парадигмы программирования. Относящиеся к ним языки называют декларативными языками программирования (Пролог, Лисп и др.). Однако мы их рассматривать не будем.
Для каждого языка существует машинно-независимый стандарт. Возможность программирования на данном ЯПВУ зависит от наличия на вашем компьютере транслятора с этого языка. Трансляторы для каждого типа компьютера создают системные программисты.
Текст программы на ЯПВУ по своей форме ближе к естественным языкам (чаще всего — английскому), к языку математики. Та же команда сложения двух величин на ЯПВУ похожа на привычную форму математического равенства:
с=а+Ь (на Фортране, Бейсике, Си).
Освоить программирование на языке высокого уровня гораздо проще, чем на ассемблере. Поэтому с появлением ЯПВУ значительно возросло число прикладных программистов, расширилось применение ЭВМ во многих областях.
Большое количество языков программирования появилось в 1960-1970-х годах. В 1965 году в Дартмутском университете был разработан язык Бейсик. По замыслу авторов это простой, легко изучаемый язык, предназначенный для программирования несложных расчетных задач. Наибольшее распространение Бейсик получил с появлением микроЭВМ и персональных компьютеров.
История Паскаля
Язык программирования Паскаль был создан швейцарским профессором Никлаусом Виртом в 1969 году как язык для обучения студентов структурной методике программирования. Язык получил свое название в честь Блеза Паскаля, изобретателя первого вычислительного механического устройства. Позднее фирма Borland International, Inc (США) разработала систему программирования Турбо Паскаль для персональных компьютеров, которая вышла за рамки учебного применения и стала использоваться для научных и производственных целей. В Турбо Паскаль были внесены некоторые дополнения к базовому стандарту Паскаля, описанному Н. Виртом.
Со временем язык развивался. Начиная с версии 5.5, в Турбо Паскаль вводятся средства поддержки объектно- ориентированного программирования (ООП). В дальнейшем это привело к созданию Object Pascal — языка с возможностями объектно-ориентированного программирования. В начале 1990-х годов объединение элементов ООП в Паскале с визуальной технологией программирования привело к созданию системы программирования Delphi.
Структура процедурных языков программирования высокого уровня
Во всяком языке программирования определены способы организации данных и способы организаций действий над данными. Кроме того, существует понятие «элементы языка», включающее в себя множество символов (алфавит), служебных слов и других изобразительных средств языка программирования. Несмотря на разнообразие процедурных языков, их изучение происходит приблизительно по одной схеме. Это связано с общностью структуры различных процедурных языков программирования высокого уровня, которая схематически отражена на рис. 3.9.
Всякий язык программирования образуют три его основные составляющие: алфавит, синтаксис и семантика.
Алфавит — это множество символов, допустимых в записи текстов программ.
Синтаксис — это правописание языковых конструкций (имен, констант, выражений, операторов и пр.).
Семантика — это смысловое содержание языковой конструкции.
Структура программы на Паскале
По определению стандартного Паскаля, программа состоит из заголовка программы и тела программы (блока), за которым следует точка — признак конца программы. В свою очередь, блок содержит разделы описаний (меток, констант, типов, переменных, подпрограмм) и раздел операторов.
Раздел операторов имеется в любой программе и является основным. Предшествующие разделы носят характер описаний и не все обязательно присутствуют в каждой программе.
В Турбо Паскале, в отличие от базового стандарта Паскаля, возможно:
• отсутствие заголовка программы;
• разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке и повторяться в разделе описаний сколько угодно раз.
Вопросы и задания
1. В каком виде составлялись программы для первых компьютеров?
2. Чем отличались программы на автокодах (ассемблерах) от программ в машинных кодах?
3. Почему ЯПВУ являются машинно-независимыми языками программирования?
4. Что такое трансляция?
5. В какой парадигме программирования реализован язык Паскаль?
6. Что входит в структуру любого процедурного ЯПВУ?
7. Из каких основных разделов состоит программа на Паскале?
Следующая страница Алгоритмы, структуры алгоритмов, структурное программирование
Решение задачи с использованием компьютера включает этапы, представленные на рис. 2.1.
На первом этапе обычно осуществляется постановка задачи, происходит осознание её условия. При этом должно быть чётко определено, что дано (какие исходные данные известны, какие данные допустимы) и что требуется найти в решаемой задаче. Также должны быть чётко выделены существенные свойства рассматриваемого объекта, указаны связи между исходными данными и результатами.
Рис. 2.1. Этапы решения задачи на компьютере
На втором этапе описательная информационная модель формализуется, т. е. записывается с помощью некоторого формального языка.
Для этого требуется:
• понять, к какому классу принадлежит рассматриваемая задача;
• записать известные связи между исходными данными и результатами с помощью математических соотношений;
• выбрать наиболее подходящий способ для решения задачи.
На третьем этапе осуществляется построение алгоритма — чёткой инструкции, задающей необходимую последовательность действий для решения задачи. Алгоритм чаще всего представляется в форме блок-схемы ввиду её наглядности и универсальности.
На четвёртом этапе алгоритм записывается на одном из языков программирования. Вы учитесь записывать программы на языке Паскаль.
На пятом этапе осуществляется отладка и тестирование программы.
Отладка программы — это процесс проверки работоспособности программы и исправления обнаруженных при этом ошибок.
Проверка правильности разработанной программы осуществляется с помощью тестов. Тест — это конкретный вариант значений исходных данных, для которого известен ожидаемый результат.
О правильности разработанной программы свидетельствует также соответствие полученных данных экспериментальным фактам, теоретическим положениям и т. д. При этом может возникнуть необходимость уточнить разработанную математическую модель, полнее учесть особенности изучаемого объекта. По уточнённой математической модели снова составляется программа, анализируются результаты её выполнения. Так продолжается до тех пор, пока полученные результаты не будут достаточно точно соответствовать изучаемому объекту.
На шестом этапе по уточнённой программе проводятся необходимые вычисления, результаты которых позволяют ответить на поставленные в задаче вопросы.
Рассмотренные этапы являются основой разработки современного программного обеспечения, но при этом называются они несколько иначе (рис. 2.2).
Рис. 2.2. Этапы разработки программного обеспечения
На этапе подготовки разработчик уточняет у заказчика требования к программному продукту, осуществляет предварительное планирование этапов работ, сроков, ресурсов и стоимости разработки.
На этапе проектирования составляются требования к программе, определяются её технические характеристики, выбираются алгоритмы реализации программы.
На этапе создания происходит разработка интерфейса программы (кнопки, иконки, расположение и т. д.); создаётся программный код — пишется программа, реализующая ранее выбранный алгоритм; осуществляются отладка и тестирование программы. На этом же этапе создаётся пакет документации, включающий различные описания, инструкции и руководства. Наличие подробной документации обеспечивает в том числе возможность передачи накопленных знаний другим разработчикам.
На этапе поддержки происходит установка разработанного программного обеспечения (внедрение), исправление выявленных ошибок и поддержка пользователей (сопровождение).
2.1.2. Задача о пути торможения автомобиля
Рассмотрим последовательность этапов решения задачи на компьютере (см. рис. 2.1) на примере простой задачи.
Водитель автомобиля, движущегося с некоторой постоянной скоростью, увидев красный свет светофора, нажал на тормоз. После этого скорость автомобиля стала уменьшаться каждую секунду на 5 метров. Требуется найти расстояние, которое автомобиль пройдёт до полной остановки.
Первый этап. Дано:
υ0x — начальная скорость;
υх — конечная скорость (равна нулю, так как автомобиль остановился);
ах — ускорение (равно -5 м/с 2 ).
Требуется найти: sx — расстояние, которое автомобиль пройдёт до полной остановки.
Второй этап. В данной ситуации мы имеем дело с прямолинейным равноускоренным движением тела. Формула для перемещения при этом имеет вид:
Упростим эту формулу с учётом того, что конечная скорость равна нулю: . При аx = -5 м/с 2 получим: (при условии задания скорости в метрах в секунду и вычислении пути в метрах).
Третий этап. Представим алгоритм решения задачи в виде блок-схемы:
Четвёртый этап. Запишем данный алгоритм на языке программирования Паскаль:
Пятый этап. Протестировать составленную программу можно, используя информацию, что при скорости 72 км/ч с начала торможения до полной остановки автомобиль проходит 40 метров.
Шестой этап. Выполнив программу несколько раз при различных исходных данных, можно сделать вывод: чем больше начальная скорость автомобиля, тем большее расстояние он пройдёт с начала торможения до полной остановки.
Применяя компьютер для решения задач, всегда следует помнить, что наряду с огромным быстродействием и абсолютной исполнительностью у компьютера отсутствуют интуиция и чувство здравого смысла и он способен решать только ту задачу, программу решения которой ему подготовил человек.
САМОЕ ГЛАВНОЕ
Этапы решения задачи с использованием компьютера:
1) постановка задачи;
5) отладка, тестирование;
6) выполнение расчётов.
Для решения многих задач на компьютере необходимо владеть языком программирования, обладать знаниями в области информационного моделирования и алгоритмизации.
Вопросы и задания
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Какими слайдами вы могли бы дополнить презентацию?
2. Перечислите основные этапы решения задачи с использованием компьютера.
3. Что происходит на этапе постановки задачи? Что является результатом этого этапа?
4. Что происходит на этапе формализации? Что является результатом этого этапа?
5. Что происходит на этапе алгоритмизации? Что является результатом этого этапа?
6. Что происходит на этапе программирования? Что является результатом этого этапа?
7. Что происходит на этапе компьютерного эксперимента? Что является результатом этого этапа?
8. Какой этап решения задачи на компьютере, по вашему мнению, является наиболее трудоёмким?
9. Как вы считаете, по силам ли одному специалисту реализация всех этапов решения сложной практической задачи? Обоснуйте свою точку зрения. Проведите аналогию между этапами решения задачи на компьютере и этапами разработки программного обеспечения. Обсудите эти вопросы в группе.
10. Как правило, сложные практические задачи решаются большими коллективами разработчиков. Отдельные группы в этих коллективах специализируются на выполнении одного или нескольких этапов решения задачи. Нужно ли в таком случае им иметь представление обо всех этапах решения задачи с использованием компьютера? Обоснуйте свою точку зрения.
11. Может ли пригодиться в жизни представление об этапах решения задачи с использованием компьютера? Обоснуйте свою точку зрения.
12. В аэробусе, вмещающем 160 пассажиров, три четверти мест находятся в салонах экономического класса и одна четверть мест — в салоне бизнес-класса. Стоимость билета в салоне бизнес-класса составляет х рублей, что в два раза выше стоимости билета в салонах экономического класса. Разработайте программу, которая вычислит сумму денег, полученную авиакомпанией от продажи билетов на этот рейс, если известно, что остались нераспроданными а билетов бизнес-класса и b билетов экономического класса. Выделите все этапы решения этой задачи и опишите свои действия на каждом из них.
13. Уличный продавец газет получает а рублей с продажи каждой из первых 50 газет. С продажи каждой из последующих газет он получает на 20% больше.
Разработайте программу, которая вычислит заработок продавца, если он продаст за день 200 газет. Зафиксируйте свои действия на каждом из этапов решения этой задачи.
Электронное приложение к уроку
Файлы | Материалы урока | Ресурсы ЭОР |
Cкачать материалы урока
Многие из нас задавались вопросом: на чём и каким образом была написана самая первая программа, когда писать было ещё не на чем. И что появилось первее: программа или среда разработки? Спойлер: сначала появилась программа.
Итак, 19 век. С этого времени начинается история программирования. Ада Ла́влейс и Чарльз Бэббидж . С этих имён и начинается история программирования!
Не буду углубляться в биографию, если интересно, можете о ней узнать из видео, скажу лишь, что Чарльз был весьма талантливым математиком. Первый его проект выглядел вот так:
Суть данного изобретения в том, что оно позволяло автоматизировать вычисление различных математических формул, функций, логарифмов посредством перемещения скомбинированных между собой шестерёнок.
Вторым его проектом по счёту, но не по значимости, была Аналитическая машина . Это огромный механизм на паровом двигателе, назначением которого являлось исполнение основных математических операций: сложение, вычитание, деление, умножение. Данное устройство давало возможность работать с большими числами, с большой точностью и большой скоростью (по крайней мере для того времени)
Инструкции по её программированию были написаны Адой Лавлейс. Они-то и являлись по факту первыми программами в мировой истории.
Программирование же в том виде, в котором мы привыкли его видеть сегодня (то есть ввод команд с клавиатуры в среду разработки, затем компиляция и выполнение) появилось только в 20-м веке, когда вычислительные машины научились работать с электричеством. И стали по праву называться Электронными Вычислительными Машинами - ЭВМ. Сначала программирование производилось лишь перепадами напряжения. Наличие напряжения = 1. Отсутствие напряжения = 0. Так и появился двоичный код. После всем двоичным командам присвоили "имена" в виде конкретных слов. Например в двоичном коде команда сложения выглядела как: 000010. А после она обозначалась лишь словом ADD. Так и появился первый язык Ассемблера.
Каждая вычислительная машина программировалась на своём уникальном языке, что было не очень удобно. Дабы привести программирование к единому формату на всех платформах, был изобретён язык Fortran. После чего уже начинается история языков программирования высокого уровня.
Более подробно о первом программировании и первых программистах я рассказываю в своём ролике. Можете его посмотреть или просто послушать, если не хочется читать вышеприведённый текст.
Приятного просмотра :)
Читайте также: