WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Введение

Очевидно, что проблемы хранения, передачи, обработки информа

ции появились у человечества еще на самой ранней фазе его разви

тия. Нашим далеким предкам важно было знать, например, сколько

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

ник в разных условиях, какие условия имеются в новых местах оби

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

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

Думается, что одновременно они делали попытки как то облегчить и труд умственный: зарубками на стенах пещер они отмечали количе ство убитых животных, фактически используя стены как «запоми нающее устройство», светом зажженных в условленных местах ко стров или звуками ударов передавали на значительные расстояния информацию о тех или иных событиях. Чем больше развивался че ловек, тем большее количество информации ему было необходимо запоминать, получать, передавать и обрабатывать. Как известно, считать люди научились тысячи лет назад, да и первое устройство, механизирующее счет, — счеты — созданы задолго до начала нашей эры. Одна из их разновидностей — абак — использовалась в Древ нем Египте и была знакома китайцам еще в VI в. до нашей эры.

В самых ранних устройствах больше внимания уделялось механи зации арифметических операций, однако хранение результатов оказа лось делом не менее важным. Иногда с этой целью использовались устройства, подобные счетам. В качестве носителей информации испо льзовались глиняные дощечки, береста, а позднее — бумага. Однако скорость выполнения арифметических операций была невелика, «устройства памяти» работали медленно, а главное — еще не было ост рой необходимости в поиске способов механизации управления после довательностью вычислительных операций.

Первый революционный прорыв в этой области произошел в ткац ком деле. В 1801 г. в ткацком станке Жаккара использовались картон 4 Введение ные перфокарты с пробитыми в них отверстиями для управления пере плетениями нитей в ткани.

Чарльз Бэббидж (1791–1871 гг.), работая с астрономическими таб лицами, обнаружил в них множество ошибок, вызванных неточ ностью расчетов. Исследуя причины их возникновения, он пришел к мысли о возможности расчета таких таблиц с помощью специальной вычислительной машины, которая получала бы описание необходи мых действий, выполняла их и выдавала готовый результат. Бэббидж детально разработал проект такой аналитической машины, по своему техническому уровню намного опередивший его время, однако из за отсутствия финансовой поддержки он так и не смог завершить разра ботку.

Интересно, что первые программы для этой машины написала Ада Аугуста Лавлейс, дочь гениального поэта лорда Байрона. Аду Лавлейс можно считать первым в мире программистом: еще тогда она разрабо тала научную основу программирования на вычислительных маши нах, ввела понятия цикла и условного перехода. Именно в честь нее был назван разработанный в США в 1960 х гг. язык программирова ния «Ада».

В изданных в 1843 г. «Примечаниях переводчика»1 Ада Лавлейс пи сала о машине Бэббиджа2:

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

Вдумайтесь: ведь это написано более 160 лет назад!

В 1890 г. в США проводилась перепись населения. Одним из тех, кому была поручена обработка огромного объема информации, полу ченной в результате этой переписи, был доктор Герман Холлерит.

Рассказывают, что как то раз он ехал в поезде и размышлял о непоси Наиболее важные сведения о научных основах программирования были опублико ваны Адой Аугустой Лавлейс в качестве примечаний к выполненному ею переводу ста тьи итальянского инженера Л. Ф. Менабреа с описанием аналитической машины Бэббиджа, а не в виде отдельной публикации; тем не менее данный факт нисколько не умаляет ценности этой публикации, а по объему «Примечания» почти вдвое превыша ют размеры самой статьи Л. Ф. Менабреа. — Прим. ред.

Цитата приведена по книге: Апокин И. А., Майстров Л. Е. История вычислительной техники. М.: Наука, 1990.

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

Первая треть ХХ в. ознаменовалась созданием и внедрением целого ряда вычислительных устройств. Большой вклад в их разработку внес математик Алан Тьюринг, который в 1937 г. опубликовал работу с яс ным и глубоким описанием универсальной схемы вычислений. Для этого он использовал некую «гипотетическую», или, говоря современ ным языком, «виртуальную» машину с удивительно простой структу рой (она так и вошла в историю под названием «машина Тьюринга»).



Правда, эта машина так и осталась на бумаге, поскольку из за свой медлительности уже тогда была экономически невыгодна, но она при влекла к себе внимание многих талантливых ученых и инженеров и, бесспорно, ускорила процесс создания первой реальной универсальной вычислительной машины. Кстати, и сегодня гипотетическая машина Тьюринга и сходная с ней машина Поста используются в теоретиче ской информатике для доказательства теорем, анализа алгоритмов и т. д.; существуют также компьютерные программы, моделирующие эти Как это ни печально констатировать, но войны всегда стимулирова ли развитие определенных отраслей науки и техники. Не явилась иск лючением и Вторая мировая война. Одним из первых электромехани ческих вычислительных устройств такого рода стала машина «Ц 3», созданная немецким инженером К. Цузе в 1939–1941 гг., которая ра ботала в двоичной системе и была первой программно управляемой универсальной вычислительной машиной. Тремя годами позже, в 1944 г., под руководством Говарда Айкена и при содействии компании IBM была создана электронно вычислительная машина (ЭВМ) Harvard Mark I на релейных логических элементах. (Интересно, что сам Айкен комментировал создание Mark I фразой: «Мечта Бэббиджа претворена в жизнь» и цитировал работы Бэббиджа в рабочей инструкции по этой машине. — Прим. ред.) В 1945 г. американцы Дж. П. Эккерт и Дж. В. Моучли создали ЭВМ на электронных лампах — ENIAK. И на конец, в 1951 г. началось серийное производство ЭВМ UNIVAC I.

Следует заметить, что в нашей стране также было сделано немало замечательных достижений в этой области. Так, создание первого арифмометра связывают с именем замечательного русского математи ка Пафнутия Львовича Чебышева. Что же касается ЭВМ, то в конце 1940 х гг. группа ученых во главе с академиком С. А. Лебедевым созда ла в Киеве машину МЭСМ (Малая электронно счетная машина), а в 1952 г. — БЭСМ (Большая электронно счетная машина).

Правда, позже кибернетика — наука, лежащая в основе созда ния ЭВМ, была в СССР под запретом, но уже во второй половине 1950 х гг. пошла в серию новая советская ламповая ЭВМ «Урал 1», а затем появилась еще одна отечественная ЭВМ «Стрела». И американ ские, и наши ЭВМ первого поколения включали в себя десятки тысяч электронных ламп и выделяли огромное количество тепла, из за чего были оснащены системами воздушного охлаждения, занимали огром ные (до 300 кв. м) площади и обладали быстродействием всего лишь в несколько сотен операций в секунду, что, однако, по тем временам ка залось просто чудом.

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

Одновременно с аппаратной составляющей развивалось и про граммное обеспечение ЭВМ. Дело в том, что для ЭВМ первого поко ления (да и в значительной степени — второго) программы надо было писать в машинных кодах. Причем у каждого типа ЭВМ была своя система команд, которую программист должен был использо вать при написании программы. Сами программы для удобства за писывались в большинстве случаев в восьмеричной системе счисле ния, а в машине были представлены в двоичной (где каждая восьмеричная цифра соответствует «триаде» двоичных цифр от По своей архитектуре машины подразделялись на одно, двух и трехадресные. Например, отечественная ЭВМ «Урал» была одноадрес ной, «Минск» — двухадресной, а машины типа М20 (например, БЭСМ) были трехадресными. Для одно и двухадресных машин каждая команда имела разные модификации: например, для «Минск 22»

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

Более логичными выглядели трехадресные системы команд: пер вым записывался код команды (иногда со специальными признака ми), затем адрес размещения первого операнда, потом — второго, а результат записывался по третьему адресу. Например, команда сло жения могла выглядеть так: 01 2356 4563 7644. Это означало:

взять число из ячейки оперативной памяти с адресом 2356, сложить (код команды — 01) его с числом, находящимся в ячейке с адресом 4563, а полученный результат записать в ячейку с адресом 7644. При чем команды сложения тоже могли быть разными: с блокировкой нормализации, с блокировкой округления, с блокировкой и того, и другого, либо без блокировок. Кроме того, имелся специальный ре гистр адреса, содержимое которого программист мог использовать для модификации команд (например, при организации циклов). Та кие системы команд требовали от программиста не только хорошего знания всех их нюансов, но и почти полного представления о работе аппаратной части компьютера. И при всем этом программист, пишу щий, например, для БЭСМ 4, был беспомощен перед ЭВМ «Минск 22», поскольку система команд, адресация, да и многое дру гое в ней было иным. Это резко снижало эффективность работы.

Еще в 1950 х гг. ученые задумывались над тем, как приблизить машинный язык к естественному человеческому. Первой важной раз работкой в этом направлении было создание символического языка программирования, автором которого была Грейс Хоппер. В этом языке команды заменялись символами, которые мнемонически отра жали их суть, адресам можно было давать имена и т. д. Но поскольку ЭВМ продолжала работать в кодах, потребовалась программа «пере водчик» с символического языка на язык кодов. Такие программы стали называть трансляторами или ассемблерами, а первые симво лические языки — автокодами или, соответственно, языками ассем блера. При этом по прежнему как сам символический язык (язык ас семблера), так и транслятор для каждого типа ЭВМ был своим и совершенно неприменимым на другом типе ЭВМ, т. е. такие языки программирования были машинно ориентированными. Языки ас семблера также получили название языков низкого уровня, т. е. наи более приближенных к конкретной системе команд ЭВМ. Все это не давало возможности непосредственной работы на компьютере уче ным, инженерам, экономистам и т. д.; они были вынуждены пользо ваться услугами программиста, чтобы решать свои задачи.

Такое положение, конечно же, долго не могло оставаться неизмен ным, и уже в 1956 г. появился язык, максимально приближенный к ес тественному (английскому) языку и включающий в себя многие при вычные элементы алгебраических обозначений, — Фортран (от «FORmula TRANslation»). Само его название указывало, что на этом языке наиболее удобно писать программы, реализующие решение рас четных, формализованных задач. Этот язык, разработанный фирмой IBM, получил очень широкое распространение во всем мире, и некото рые его модификации используются до сих пор. В 1960 г. был создан язык Алгол 60, который получил большое признание в научном мире, особенно среди математиков. Затем появился КОБОЛ, предназ наченный для решения экономических задач. Языки программирова ния стали создаваться десятками, причем степень их ориентированно сти на конкретные задачи (числовое программное управление станками, проектирование многослойных печатных плат, управление технологическими процессами и т. д.) возрастала неимоверно. Такие языки получили название проблемно ориентированных. Тем не менее разработчики стремились к созданию универсального языка, на кото ром можно было бы эффективно писать программы для всех отраслей деятельности. На рубеже 1960 х—1970 х гг. такой язык был создан и получил название PL/1 (от англ. «язык программирования»). Это был мощный язык с очень развитой «философией умолчания», он получил широчайшее распространение во всем мире и у нас в стране, но потом распался на отдельные подмножества, лишний раз подтвердив прави ло, что у универсализма, как и у узкой специализации, есть свои плю сы и минусы.

Между тем, сама вычислительная техника тоже продолжала разви ваться. Успехи в создании микросхем, содержащих сотни, а впоследст вии — и тысячи полупроводниковых элементов, дали мощный толчок для разработки в конце 1960 х гг. ЭВМ третьего поколения. Причем, учитывая опыт использования ЭВМ первого и второго поколений, ма шины третьего поколения стали выпускать семействами малых, средних и больших ЭВМ, которые были программно совместимыми между собой. Самыми известными из таких семейств («клонов») ста ли IBM/360 и IBM/370. Они имели унифицированную периферию, были программно совместимы между собой «снизу вверх», т. е. про граммы, которые работали на младших моделях семейства, были вы полнимы и на более старших моделях. В нашей стране и в странах Вос точной Европы аналогами IBM/360 и IBM/370 стали семейства «Ряд 1» и «Ряд 2». Например, малую машину ЕС 1010 изготавлива ли в Венгрии, ЕС 1020 — в Минске, ЕС 1030 — в Казани, ЕС 1040 — в Восточной Германии, ЕС 1050 — в Пензе, ЕС 1060 — в Минске, но все эти модели были совместимы по системе команд. Аналогичные семей ства ЭВМ производились и в других странах — в ФРГ («Сименс»), в Японии («Токио джуки»), в Великобритании («Эллиот»), во Франции («Ирис», «Мистраль»), в Италии («Оливетти») и т. д.

Важной особенностью ЭВМ третьего поколения было появление в них операционных систем (ОС). Это, конечно, не означает, что по добные попытки не делались ранее. Так, на ЭВМ типа М20 имелась так называемая ИС 22 («интерпретирующая система»), которая, ин терпретируя псевдокод, значительно упрощала вызов стандартных программ. На ЭВМ «Минск 32» существовала программа «Диспет чер», которая, в частности, обеспечивала диалог с пользователем че рез двухцветную печатающую машинку типа CONSUL, и т. п. На компьютерах IBM и на их отечественных аналогах использовалась сначала DOS (Disk Operation System), а потом OS (Operation System) и их разновидности. Именно начиная с ЭВМ третьего поколения, благо даря наличию в них ОС, был реализован принцип мультипрограм мности (многозадачности) — например, в системе OS могло одно временно выполняться до 52 задач, как пользовательских, так и служебных (внутренних). Именно с появлением этих ЭВМ програм мист был освобожден от управления ресурсами компьютерной сис темы, — оно было возложено на операционную систему.

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

Может возникнуть вопрос: а зачем нам все это нужно знать сегод ня? Чтобы только лишь посмеяться над слабыми возможностями ЭВМ прошлого века? Но именно с помощью этих ЭВМ были соверше ны выдающиеся научные открытия, многие из которых были удосто ены Нобелевской премии. С их помощью осуществлен прорыв в кос мос, раскрыты секреты атомного ядра, созданы лазерные системы и многое другое. И если мы хотим действительно хорошо разбираться в информатике, в компьютерной технике и в программировании, то мы должны знать их историю, поскольку без прошлого нет будущего.

Технологии программирования Общие сведения Читающие эту книгу, видимо, знакомы с основными понятиями алго ритмизации и знают, что алгоритм — это однозначная конечная по следовательность элементарных дискретных действий исполнителя, будь то человек или компьютер. Напомним, что каждая команда (инст рукция) алгоритма должна быть однозначно понятна исполнителю.

Совокупность команд (инструкций), понятных исполнителю, называ ется его системой команд. Иными словами, система команд представ ляет собой язык исполнителя, а программа — это последовательность таких команд.

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

1) начать процесс;

2) найти глазами портфель;

3) протянуть к нему руку;

4) поднять его;

5) поставить к себе на колени;

6) определить, закрыт ли он на замок;

7) если условие (6) истинно (портфель закрыт на замок), то открыть за мок, иначе пропустить данный пункт;

8) найти в портфеле нужную книгу;

9) если она найдена, то взять ее, иначе завершить процесс;

10) положить книгу на стол;

11) завершить процесс.

На самом деле этот алгоритм можно было бы записать значительно более подробно, поскольку в нем участвуют зрительная, мышечная, центральная нервная и другие системы человеческого организма, где каждая выполняет множество своих «микрокоманд». Мы же условно будем считать приведенную выше последовательность действий доста точно подробной.

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

В двоично восьмеричной системе каждой восьмеричной цифре соот ветствует три двоичных цифры (триада):

Например, программист, использующий систему команд М 20, что бы выполнить деление одного числа на другое, писал в программе команду 04 3625 6521 4452, где 04 — код команды деления, 3625 — адрес делимого в оперативной памяти, 6521 — адрес делителя, 4452 — адрес ячейки оперативной памяти, в которую нужно поместить резуль тат. Тогда на пульте ЭВМ эта команда индицировалась следующим об Что и говорить: трудоемкость и неэффективность такой работы оче видны. Именно поэтому возникла идея приближения языков програм мирования к естественному человеческому языку (в частности, к анг лийскому). Теперь та же самая команда деления приняла вид: DIV ALPHA BETA GAMMA. Это означало: разделить (DIV) число, которое хра нится в оперативной памяти под именем ALPHA, на число, хранящееся под именем BETA, а результат записать в память под именем GAMMA. Со гласитесь — такая команда ближе к естественному языку и, следовате льно, более понятна человеку. Но компьютер продолжал понимать то лько свой, машинный язык. Возникла необходимость в создании программ — «переводчиков» с более удобного человеку исходного язы ка, на котором написана программа, на язык машины. Такие програм мы получили название трансляторов, а языки программирования стали называть языками символического кодирования или автокода ми. Очевидно, что для каждого типа ЭВМ существовал свой автокод, поскольку он был жестко привязан к системе команд данной ЭВМ и Алгоритмическая (процедурно ориентированная) технология программирования практически каждой команде машинного языка соответствовала своя команда автокода. Такой язык программирования был машинно ори ентированным, рассчитанным на конкретный тип ЭВМ.

Позже трансляторы с машинно ориентированных языков получили название ассемблеров, а сами эти языки стали называться языками ас семблера. Процесс же перевода с исходного языка на машинный полу чил название «ассемблирование». Очевидно, что и сегодня не существует единого языка ассемблера: можно говорить о языке ассемб лера для IBM или для Макинтоша, но это — разные языки. Тем не ме нее языки ассемблера стали языками более высокого уровня, нежели машинные. Программы, написанные на языках ассемблера, позволя ют наиболее полно использовать возможности компьютера, создавать наиболее быстрые и компактные программы, но в то же время их напи сание более трудоемко и требует от программиста большего объема знаний по конкретной модели компьютера, для которой он пишет про грамму. Есть такая закономерность: чем ниже уровень языка програм мирования, тем более высокой квалификацией должен обладать про граммист.

Существует такое важное понятие, как система программирования.

Ее неотъемлемыми составляющими являются:

l входной язык, на котором пишется программа;

l транслятор (компилятор или интерпретатор) — программа, ко торая переводит текст нашей программы с исходного (входного) языка на язык компьютера;

l библиотека подпрограмм, включающая в себя стандартные под программы, которые можно использовать (вызывать) в своих про Алгоритмическая (процедурно ориентированная) технология программирования Несмотря на создание машинно ориентированных языков программи рования, которые облегчили труд программистов, проблема «модель ной разобщенности» оставалась. Она заключалась в том, что про граммы, реализованные для одного типа ЭВМ, нельзя было использовать на другом их типе, да и программист, отлично знавший автокод (язык ассемблера) для одной машины, был беспомощен перед другой. Эта ситуация привела к созданию языков еще более высокого уровня. В конце 1950 х гг. было создано несколько таких языков, са мыми известными из которых были Algol 60 и FORTRAN IV. Это были уже алгоритмические языки, которые позволяли описывать алгорит мы без привязки к конкретной модели ЭВМ. (Строго говоря, некото рые элементы такой привязки оставались и здесь, но они были несоиз меримы с машинно ориентированными языками.) Естественно, что трансляторы для них стали значительно сложнее, поскольку разница Рис. 1. Классификация процедурно ориентированных языков программирования между исходным языком программы и машинным языком существен Кстати, начиная с этого момента трансляторы стали подразделять ся по принципам их работы на интерпретаторы и компиляторы. Ин терпретаторы переводят и выполняют программу покомандно. Их можно сравнить с переводчиком синхронистом, который переводит речь иностранного гостя по фразам: гость произнес очередное предло жение — переводчик его перевел, и т. д. Компиляторы же сразу дела ют перевод всего исходного текста программы и формируют (с по мощью некоторых других программ) готовую к выполнению программу на машинном языке, но сами ее не выполняют. Если об ратиться все к той же аналогии с переводчиком, это похоже на пи Алгоритмическая (процедурно ориентированная) технология программирования сьменный перевод всей произнесенной речи иностранного гостя, после чего весь переведенный текст зачитывает другой оратор.

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

Впоследствии появились аналогичные языки для решения экономиче ских задач (COBOL), управления технологическими процессами, про ектированием и т. д., ориентированные на решение проблем в конкрет ных областях. Именно это обусловило их общее название:

проблемно ориентированные.

По мере сужения специализации, соответственно, росло и количество таких языков: сначала оно измерялось десятками, потом сотнями. Это породило новые проблемы, и возникла идея создания универсальных языков программирования, «на все случаи жизни». Одним из таких язы ков стал PL/1, который, впрочем, вскоре распался на определенное коли чество подмножеств. Универсальные языки, конечно же, наиболее удоб ны в использовании, поскольку максимально приближены к естественному человеческому языку, но процесс компиляции для них очень сложен. Тем не менее современные языки этого класса (Бейсик, Паскаль, Си и др.) занимают скорее промежуточное положение между проблемно ориентированными и универсальными языками.

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

1. Какие языки программирования называются машинными?

3. К какому классу языков принадлежит язык ассемблера?

5. Какие существуют виды трансляторов?

6. Как сложность транслятора связана с уровнем языка?

7. Какие языки называют проблемно ориентированными?

8. Что такое процедурно ориентированный язык программирования?

9. Почему для написания программ на языках более низкого уровня от программиста требуется более высокая квалификация?

10. Чем определяется уровень языка программирования?

11. Какие языки называют алгоритмическими?

12. Приведите примеры алгоритмических языков.

Объектно ориентированная технология программирования Исторически сложилось так, что программирование возникло и разви валось поначалу только как процедурное, для которого основой основ является алгоритм — процедура обработки данных.

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

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

Использование объектно ориентированного программирования — удобное решение при разработке крупных программных проектов. Од ним из наиболее важных преимуществ объектно ориентированного программирования является возможность многократного использова ния программных модулей. Если вы, например, создали некоторый класс объектов, то вы можете затем порождать от него новые классы, изменяя их свойства и функциональное назначение.

В основе объектно ориентированного языка программирования ле жат два основных понятия: объект и класс. Основными их свойствами являются:

инкапсуляция — единство данных с процедурами и функциями, ко торые их обрабатывают;

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

полиморфизм — возможность изменения сущности одноименной операции для разных уровней иерархии объектов.

[...] 6. Какова основная идея технологии объектно ориентированного программирования?

7. Приведите примеры объектно ориентированных языков програм Логическая технология программирования Традиционные процедурные языки программирования, такие как Си, Паскаль, Ада и другие, требуют подробного описания последовательно сти действий, приводящих к получению результата из входных данных.

В отличие от них, логическое программирование строится на формули ровании системы логических высказываний, описывающих задачу.

Наиболее известным инструментом технологии логического про граммирования является язык Пролог. Само это название (Prolog) происходит от английского «PROgramming in LOGic» — «логиче ское программирование». Попробуем на его примере разобраться в сути этой технологии.

Программа на Прологе представляет собой ряд логических выска зываний, описывающих ту или иную задачу. Например, тот факт, что в русском языке существует окончание « ой», на Прологе можно запи Но одних фактов для решения задачи обычно недостаточно (если только задача не сводится исключительно к хранению данных). Фак тами нужно еще и уметь пользоваться для доказательства других фактов. Для этого в Прологе существуют правила. Например, выска зывание «слово получается путем добавления окончания к основе»

можно записать так:

decline (Base, Word) :- ending(Ending), Или, дословно: «слово Word получается из основы Base, если (знак :-) существует такое окончание Ending, сложение (concat) ко торого с основой образует слово». Здесь concat — это встроенная фун кция, которая соединяет (конкатенирует) строки.

Два приведенных выше примера уже являются вполне работоспо собной программой. Теперь можно уже задавать интерпретатору Про лога вопросы. Например:

[...]



Похожие работы:

«Информационный материал о проведении оценки воздействия на окружающую среду Богучанской ГЭС на р. АНГАРА (2007 г., выдержки) СОДЕРЖАНИЕ 1. ВВЕДЕНИЕ 1.1. Цели и задачи работы 1.2. Организационная структура ОВОС 1.3. Текущий статус выполнения работ по оценке воздействия на окружающую среду 1.3.1. Общественные обсуждения 1.3.2. Исследования в рамках оценки воздействия 2. ОБЩИЕ СВЕДЕНИЯ О ПРОЕКТЕ СТРОИТЕЛЬСТВА БОГУЧАНСКОЙ ГЭС 2.1. История реализации проекта 2.2. Нормативные рамки 1. ВВЕДЕНИЕ 1.1....»

«ПРИЛОЖЕНИЕ № 3 к протоколу заседания совета Партнерства ПРОЕКТ – РОДОС от 28 августа 2014 года № 24 ПЕРЕЧЕНЬ проблем требующих решения в целях обеспечения качества подготовки проектной документации и выполнения инженерных изысканий Описание существующей проблемы Предложения по их решению Примечание ЗАО Институт Стройпроект Предлагается в Градостроительном Направлены замечания в является уточнением проектной Существует непонимание! Что кодексе РФ дать точную Минтранс России по документации,...»

«ФГБОУ ВПО Оренбургский государственный педагогический университет Положение о процессе СМК-П-6.2.1-02 О КУРСОВОЙ РАБОТЕ/КУРСОВОМ ПРОЕКТЕ СТУДЕНТОВ УТВЕРЖДАЮ Ректор ФГБОУ ВПО Оренбургский государственный педагогический университет С.А. Алешина 24 марта2014 г. СИСТЕМА МЕНЕДЖМЕНТА КАЧЕСТВА ПОЛОЖЕНИЕ О КУРСОВОЙ РАБОТЕ/КУРСОВОМ ПРОЕКТЕ СТУДЕНТОВ СМК-П-6.2.1- Дата введения: 24.03.2014 г. Оренбург, Должность Фамилия/Подпись Дата Разработал Начальник УМУ Сизинцева Н.А. Без подписи документ действителен...»

«№ 10 2007 г. ВЕСТНИК Тюменской Законы и постановления, принятые на 8-м заседании областной Думы областной 20.12.2007 Думы Официальное издание Тюменской областной Думы РЕДАКЦИОННО-ИЗДАТЕЛЬСКИЙ СОВЕТ ТЮМЕНСКОЙ ОБЛАСТНОЙ ДУМЫ Корепанов - председатель областной Думы, Сергей Евгеньевич председатель совета Корепанов - заместитель председателя областной Думы, Геннадий Семенович заместитель председателя совета Бессонова - заместитель начальника информационноОльга Михайловна аналитического управления,...»

«КРАТКОЕ РУКОВОДСТВО ПО РЕПРОДУКЦИИ ЖИВОТНЫХ Крупный рогатый скот часть 1 и 2 Введение Рада представить вам новое, 10-е издание Руководства по репродукции животных, которое нашло свое место на книжных полках и в сердцах наших коллег, практикующих ветеринаров, преподавателей, а также студентов, изучающих ветеринарию — тех, для кого управление репродукцией домашних животных стало частью ежедневной работы, и тех, кто разделяет мою не угасающую страсть к изучению воспроизводства. Цель этой книги —...»

«УДК 623.444.6(031.062) ББК 68.5 П49 Современные боевые ножи /Пер. с нем./, Поль Д. — 1 П 49 М.: Омега, 2004. — 192 с: ил. — 84х108 Аб (в пер.), 7 000 экз. ISBN 5-93209-813-9 В книге Современные боевые ножи впервые подробно изложена история их развития. Автор — журналист и дизайнер, специализирующийся в области тактических боевых ножей. Дано описание около 200 всевозможных моделей ножей, рассказано о воз­ можностях их применения и о материалах, использующихся для изготовления ножей. В книге 170...»

«ИНВЕСТИЦИОННЫЙ МЕМОРАНДУМ ЛИПЕЦКОЙ ОБЛАСТИ на 2013 год 1. Общие положения 1.1. Инвестиционный меморандум Липецкой области (далее - Меморандум) устанавливает основные приоритеты развития и поддержки инвестиционной деятельности в Липецкой области. 1.2. Центром ответственности за реализацию положений настоящего Меморандума является Управление инвестиций и международных связей Липецкой области (далее - Координатор). 1.3. Мониторинг выполнения положений Меморандума осуществляется Координатором. 1.4....»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТУРИЗМА И СЕРВИСА Факультет экономики, управления и права Кафедра менеджмента и бизнес-технологий ДИПЛОМНЫЙ ПРОЕКТ на тему: Разработка интерактивного контента по дисциплине Информационное обеспечение профессиональной деятельности по направлению подготовки: 080801.65 Прикладная информатика в экономике...»

«ООО Шелл НефтеГаз Девелопмент (II) ДОПОЛНЕНИЕ к Проекту на проведение сейсморазведочных работ 2Д на СевероВоркутинском-1 лицензионном участке ОЦЕНКА ВОЗДЕЙСТВИЯ НА ОКРУЖАЮЩУЮ СРЕДУ Москва 2014 СОГЛАСОВАНО УТВЕРЖДАЮ: Генеральный директор Генеральный директор ООО Шелл Нефтегаз ООО “ФРЭКОМ” Девелопмент(II) Т.Г. Каргиева В.В.Минасян _ 2014 г. “ ” 2014 г. ТОМ 1 ОЦЕНКА ВОЗДЕЙСТВИЯ НА ОКРУЖАЮЩУЮ СРЕДУ ТЕКСТ ОТЧЕТА Редакция Подготовлено по заказу: ООО Шелл Нефтегаз Девелопмент (II) ООО ФРЭКОМ 2014 г....»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТУРИЗМА И СЕРВИСА Факультет туризма и гостеприимства Кафедра технологии и организации туристической деятельности ДИПЛОМНЫЙ ПРОЕКТ на тему: Проект пиццерии на 75 мест в ЮВАО, г. Москва по специальности: 260501.65 Студент В.Ю. Востриков И.О.Ф. (полностью) к.т.н. В.В.Галицкий ученая степень, ученое...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Кубанский государственный университет ФАКУЛЬТЕТ УПРАВЛЕНИЯ И ПСИХОЛОГИИ ПОЛОЖЕНИЕ ОБ ИТОГОВОЙ ГОСУДАРСТВЕННОЙ АТТЕСТАЦИИ ВЫПУСКНИКОВ КубГУ ПО СПЕЦИАЛЬНОСТИ 080505 УПРАВЛЕНИЕ ПЕРСОНАЛОМ НА 2014 г. УТВЕРЖДЕНО Ученым советом факультета управления и психологии 24 декабря 2013 г., протокол № Председатель Ученого совета _ А.М. Ждановский ПРИНЯТО...»

«ГОСУДАРСТВЕННЫЙ СОВЕТ УДМУРТСКОЙ РЕСПУБЛИКИ Информационный вестник Государственного Совета Удмуртской Республики октябрь 2012 декабрь 2013 2 стр. Деятельность Государственного Совета Удмуртской Республики V созыва в декабре 2013 года Второе пленарное заседание IX сессии Государственного Совета 3 Удмуртской Республики Внеочередная сессия Государственного Совета Удмуртской Республики 9 Заседание Президиума Государственного Совета Удмуртской Республики 11 Заседания постоянных комиссий по бюджету,...»

«Захаров В.С., Симонов Д.А., Коптев А.И. Интегральный анализ прогнозной информации для выделения потенциальных зон сильных землетрясений (на примере Курило-Камчатской дуги) // Электронное научное издание ГЕОразрез. 2009, 1 вып. №1-2009 (3). http://www.georazrez.ru/articles/2009/1-3/zakharov-integralny_analiz_dlya_vydeleniya_zon_silnykh_zemletryaseny.pdf УДК 550.343 Захаров В.С., Симонов Д.А., Коптев А.И. Геологический факультет МГУ ИНТЕГРАЛЬНЫЙ АНАЛИЗ ПРОГНОЗНОЙ ИНФОРМАЦИИ ДЛЯ ВЫДЕЛЕНИЯ...»

«С.К. Дороганич, д.т.н., Ю.В. Никифоров, к.т.н. Открытое акционерное общество Научно-исследовательский и проектный институт цементной промышленности Гипроцемент РАЗВИТИЕ СУХОГО СПОСОБА ПРОИЗВОДСТВА ЦЕМЕНТА В РОССИИ. РАБОТЫ ОАО ГИПРОЦЕМЕНТ ПРОИЗВОДСТВО ЦЕМЕНТА И ПРОГНОЗ ЕГО ПОТРЕБЛЕНИЯ В МИРЕ Начало ХХI века характеризовалось значительным ростом производства цемента и его потребления. С 2001 г по 2009 г объем производства цемента возрос с 1740 млн. тонн до 2960 млн. тонн. Лидером производства...»

«Отдельные поручения Президента Российской Федерации высшим должностным лицам субъектов Федерации (прямые поручения), находящиеся на исполнении в департаменте экономики Ямало-Ненецкого автономного округа и отчет об их исполнении № Срок Ответственный Наименование и реквизиты поручения Информация о ходе исполнения п/п исполнения исполнитель Поручения Президента Российской Федерации Пр-634 от 14.03.2011 (Перечень поручений Президента Департамент экономики В соответствии с письмом помощника 1....»

«демик А. Я. Купфер, профессора Я. Г. Зембницкий, М. Энгельгардт, Д. И. Соколов и др. Некоторые члены Общества работали обер-бергмейстерами в различных районах России. В действительных членах числились также представители корпуса инженеров путей сообщения, воен­ ного ведомства, ювелиров и даже иногда духовенства (например, митрополит римско-католической церкви в России Станислав Сестренцевич-Богуш). Кроме соотечественников, в списках действительных членов числились иностранцы, в том числе...»

«1. Цель освоения дисциплины Целью освоения дисциплины Горное право является приобретение знаний о правовой системе Российской Федерации, взаимодействии ее отраслей и норм между собой, об общих принципах развития и функционирования системы лицензирования недропользования, правах и обязанностях пользователей недр, требованиях по комплексному и рациональному использованию недр и охране недр, системе и структуре органов исполнительной власти в сфере недропользования. 2. Место дисциплины в структуре...»

«ОСВОБОЖДЕНИЕ ИСЛАМА (сборник текстов) Москва 2004 Ориентация — ислам, или Назад в будущее Мистерия Октября Ислам — сакральная оппозиция мировой системе Авраамизм против естественной религии Шура (Исламский совет) как инструмент единства уммы Что такое таухид? Вера в переселение душ и единобожие Синдром пятницы российской уммы Субъект Аллаха Смерть как знак Бога Фашисты вернулись А-300: не первый и не последний Террор и революция Впереди — Третья мировая война События в Афганистане после 11...»

«2 специализированных и 3 высокотехнологичных медицинских центров, позволяет более эффективно расходовать финансовые средства. Оптимизация структуры отрасли осуществляется путем объединения маломощных больниц и поликлиник и создания многопрофильных медицинских центров, реорганизации участковых больниц во врачебные амбулатории с организацией службы общей врачебной практики и дневных стационаров, перевода врачебных амбулаторий в статус фельдшерско-акушерских пунктов (далее ФАП). Сеть медицинских...»

«Концепция Развитие кластера судостроения в Санкт-Петербурге Санкт-Петербург 1 Основания для разработки концепции В настоящее время судостроение России проходит этап реорганизации отрасли, которая заключается в реструктуризации корпоративной структуры и территориальном перераспределении мощностей. Реорганизация вызвана трансформацией глобальных рынков. Крупные игроки, к числу которых относится судостроительный сектор Санкт-Петербурга, должны отреагировать на эти изменения, определив направления...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.