Реферат по дисциплине История и методология компьютерных наук по теме Создание первых компьютеров. Языки программирования высокого и низкого уровня
Скачать 1.45 Mb.
|
Министерство высшего образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Кемеровский государственный университет» Институт фундаментальных наук Кафедра ЮНЕСКО по информационным вычислительным технологиям Реферат по дисциплине «История и методология компьютерных наук» по теме «Создание первых компьютеров. Языки программирования высокого и низкого уровня» Выполнила: студент гр. МОАм-211 Мельникова Ю.С. Проверил: Доцент кафедры фундаментальной математики Саблинский А.И. Оценка: подпись «» 20 г. ОглавлениеВведение 3 1.Создание первых компьютеров 4 1.1 Счётно-решающие средства до появления ЭВМ 4 1.3 Изобретатель первого компьютера 13 1.4 Архитектура фон Неймана 14 1.5 Изобретатель первого компьютера в России 16 2.Языки программирования высокого и низкого уровня 18 2.1 Понятие о языках программирования. 18 2.2 Компиляторы и интерпретаторы. 20 2.3 Уровни языков программирования. 22 2.4 Языки низкого уровня. 25 2.5 Языки высокого уровня 27 2.5.1 Проблемно – ориентированные языки 28 2.5.2Универсальные языки 29 2.5.3Диалоговые языки 30 2.5.4Непроцедурные языки 30 Заключение 32 Список литературы 33 ВведениеСовременному человеку сегодня сложно представить свою жизнь без компьютера и других электронных устройств. Поэтому прогресс в вычислительной технике. Слово «компьютер» означает «вычислитель», т.е. устройство для вычислений. Необходимость в создании компьютера для автоматизации обработки данных, возникла давно. Более 1500 лет тому назад для счета использовались счетные палочки, камешки и т.д. До конца XX века особенно были распространены русские счеты, которые работали в десятичной позиционной системе. Компьютер прочно вошел в нашу жизнь, став главным помощником человека. На сегодняшний день в мире существует множество компьютеров различных фирм, различных групп сложности, назначения и поколений. Вклад в появление самой первой сложной вычислительной машины внесли многие разработчики, работающие в разных странах. Это усложняет ответ на вопрос, кто изобрел первый компьютер в мире. Однозначно первый изобретенный ПК стал прорывом в сфере техники, а потому данная тема заслуживает особого внимания. При создании машины, известной как "персональный компьютер", было использовано большое число открытий и изобретений, каждое из которых внес свой вклад в развитие компьютерной техники. И в данном реферате мы рассмотрим историю развития и историю изобретений вычислительной техники, а также сделаем краткий обзор о возможностях применения современных вычислительных систем и дальнейшие тенденции развития персональных компьютеров. Создание первых компьютеровСчётно-решающие средства до появления ЭВМЧеловечество научилось пользоваться простейшими счётными приспособлениями тысячи лет назад. Накопление запасов, делёж добычи, обмен – все подобные действия связаны со счётом. Для подсчёта люди использовали различные предметы: собственные пальцы, камешки, веточки и д.р. Для этих целей первым простейшим изобретенным устройством считаются балансирные весы, которые стали одним из первых устройств для количественного определения массы. Однако, потребность в поиске решений для всё более усложняющихся задач и более сложных и длительных вычислений, поставила человека перед необходимостью находить и другие способы и изобретать различные приспособления, которые могли бы облегчить ему жизнь. Во всех странах возникли собственные денежные единицы, меры веса, длины, объёмов и расстояний. Для перевода из одной системы измерения в другую требовались вычисления, которые чаще всего могли производить специально обученные люди, которых иногда приглашали из других стран. Это в последствие и привело к созданию изобретений, облегчающих счёт. Принцип эквивалентности широко использовался и в простейшем счётном устройстве – специальная доска для вычислений, названную «абак». Вычисления на ней производились перемещением камешков или костей в углубления досок из бронзы, камня или слоновой кости. Со временем эти доски стали расчерчивать на несколько полос и колонок. В Греции абак существовал уже в V веке до н. э., у японцев он назывался «серобян», у китайцев — «суанпан». В Древней Руси при счёте применялось устройство, похожее на абак, называемое «русский шёт». В XVII веке этот прибор уже обрёл вид привычных русских счёт. В начале XVII столетия, когда математика стала играть ключевую роль в науке, всё острее ощущалась необходимость в изобретении счётной машины. В середине века французский математик и физик Блез Паскаль создал «суммирующую» машину, названной Паскалиной, которая кроме сложения выполняла и вычитание. Рисунок 1 – Аппарат Паскаля В 1670 – 1680 гг. немецкий математик Готфрид Лейбниц конструировал счётную машину, которая выполняла все арифметические действия. В течение следующих двухсот лет было изобретено и построено ещё несколько подобных счётных устройств, которые, однако, из-за своих недостатков, в том числе из-за медлительности в работе, не получили широкого распространения. Лишь в 1878 году русский ученый П. Чебышёв предложил счётную машину, выполнявшую сложение и вычитание многозначных чисел. Наибольшую популярность получил тогда арифмометр, сконструированный петербургским инженером Однером в 1874 году. Конструкция прибора оказалась весьма удачной, так как позволяла довольно быстро выполнять все четыре арифметических действия. В 30-е годы XX столетия в Советском Союзе был разработан более совершенный арифмометр «Феликс». Эти счётные устройства использовались несколько десятилетий, став основным техническим средством облегчения человеческого труда. Выпускались с 1929 по 1978 год. Рисунок 2 – Счётная машинка «Феликс» Изобретение первого компьютера В 1812 году английский математик Чарльз Бэббидж начал работу над созданием «разностной» машины, которая должна была выполнять арифметические действия и проводить вычисления по программе, задающей определённую функцию. В качестве основного элемента своей машины Бэббидж взял зубчатое колесо для запоминания одного разряда числа (всего таких колёс было 18). К 1822 году учёный построил небольшую действующую модель и рассчитал на ней таблицу квадратов. В 1834 году Бэббидж приступил к созданию «аналитической» машины. Его проект содержал более 2000 чертежей различных узлов. Машина Бэббиджа предполагалась как чисто механическое устройство с паровым приводом. Она состояла из хранилища для чисел, названное склад, устройства для производства арифметических действий над числами – фабрикой, и устройства, управляющего операциями машины в нужной последовательности, включая перенос чисел из одного места в другое. Бэббидж работал над созданием своей машины до конца своей жизни, успев сделать лишь некоторые узлы своей машины, которая оказалась слишком сложной для того уровня развития техники. В 1842 году в Женеве была опубликована небольшая рукопись итальянского военного инженера Л. Ф. Менабреа «Очерк об аналитической машине, изобретённой Чарльзом Бэббиджем», переведённая в последствии ученицей и помощницей Бэббиджа дочерью Дж. Г. Байрона – леди Адой Лавлейс. При содействии Бэббиджа Ада Лавлейс составляла первые программы для решения систем двух линейных уравнений и для вычисления чисел Бернулли. Леди Лавлейс стала первой в мире программисткой. После Бэббиджа значительный вклад в развитие техники автоматизации счёта внёс американский изобретатель Г. Холлерит, который в 1890 году впервые построил ручной перфоратор для нанесения цифровых данных на перфокарты и ввёл механическую сортировку для раскладки этих перфокарт в зависимости от места пробива. Им была построена машина - табулятор, которая прощупывала отверстия на перфокартах, воспринимала их как соответствующие числа и подсчитывала их. Табуляторы Холлерита были использованы при переписи населения в США, Австрии, Канаде, Норвегии и в др. странах. В 1896 году Холлерит основал всемирно известную фирму Computer Tabulating Recording, специализирующуюся на выпуске счетно-перфорационных машин и перфокарт. В дальнейшем фирма была преобразована в фирму International Business Machines (IBM), ставшую сейчас передовым разработчиком компьютеров. Первым создателем автоматической вычислительной машины считается немецкий учёный К. Цузе. Работы им начаты в 1933 году, а в 1936 году он построил модель механической вычислительной машины, в которой использовалась двоичная система счисления, форма представления чисел с «плавающей» запятой, трёхадресная система программирования и перфокарты. Рисунок 3 – Двоичная программируемая вычислительная машина Z1 В качестве элементной базы Цузе выбрал реле, которые к тому времени давно применялись в различных областях техники. В 1938 году Цузе изготовил модель машины Z1 на 16 слов. Основные характеристики модели Z1 Реализация: тонкие металлические пластины Частота: 1 Гц Вычислительный блок: обработка чисел с плавающей запятой Средняя скорость расчета: умножение – 10 секунд, сложение – 5 секунд Ввод данных: клавиатура, устройство считывания с перфоленты Вывод данных: ламповая панель (десятичное представление) Память: 64 слова по 22 бита Вес: около 1000 кг В следующем году ученый изобрел улучшенную модель – Z2, а ещё через два года он построил первую в мире действующую вычислительную машину с программным управлением (модель Z3), которая демонстрировалась в Германском научно-исследовательском центре авиации. Это был релейный двоичный компьютер, имеющий память на 64 22-разрядных числа с плавающей запятой: 7 разрядов для порядка и 15 разрядов для мантиссы. К несчастью, все эти образцы машин были уничтожены во время бомбардировок в ходе Второй мировой войны. После войны Цузе изготовил модели Z4 и Z5. К. Цузе в 1945 году создал язык Plankalkul (от немецкого «исчисление планов»), который относится к ранним формам алгоритмических языков. Этот язык был в большей степени машинно-ориентированным, но по некоторым возможностям превосходил АЛГОЛ. Цузе создал собственную фирму Zuse KG, которая являась первой в мире коммерческой компанией, занимающейся исключительно развитием и производством компьютерных технологий для авиации и оптической промышленности, университетских лабораторий. Компания наладила выпуск коммерческих компьютеров, популярных в Германии 50-х годов (Z5, Z11, Z22 и Z23). Фирма Цузе создала первый компьютер с памятью на магнитных носителях Z22. Рисунок 4 – Компьютер с памятью на магнитных носителях Z22 Однако, К. Цузе отставал от своих американских конкурентов. Послевоенная Германия была не самым подходящим местом для инноваций в электронное будущее. Все средства правительства шли на восстановление страны. В США построением релейных автоматических вычислительных машин занимались Д. Штибитц и Г. Айкен. Д. Штибитц, тогда работавший в фирме Bell, собрал на телефонных реле первые суммирующие схемы. В 1940 году вместе с С. Уильямсом Штибитц построил «вычислитель комплексных чисел», или релейный интерпретатор, который впоследствии стал известен как специализированный релейный компьютер «Bell-модель 1». В этом же году машина демонстрировалась на заседании Американского математического общества, где были проведены её первые промышленные испытания. В последующие годы были созданы ещё четыре модели этой машины. Последняя из них разработана Штибитцем в 1946 году (модель V) — это был компьютер общего назначения, содержащий 9000 реле и занимающий площадь почти 90 м2, вес устройства составлял 10 т. Другую идею релейного компьютера выдвинул в 1937 году аспирант Гарвардского университета Г. Айкен. Его идеей заинтересовалась фирма IBM. В помощь Айкену подключили бригаду инженеров во главе с К. Лейком. Работа по проектированию и постройки машины, названной «Марк-1», началась в 1939 году и продолжалась 5 лет. Машина состояла из стандартных деталей, выпускаемых IBM в то время. Электронные лампы при создании вычислительной машины были впервые применены американским профессором физики и математики Д. Атанасовым. Атанасов работал над проблемой автоматизации решения больших систем линейных уравнений. В декабре 1939 году Атанасов окончательно сформулировал и осуществил на практике свои основные идеи, создав вместе с К. Берри работающую настольную модель машины. После этого он приступил к созданию машины, способной решить систему с 29 неизвестными. Память машины была энергоёмкая — использовалось 1632 бумажных конденсатора. Всего использовалось 300 электронных ламп. К весне 1942 г. когда монтаж машины был почти завершён, США уже находилось в состоянии войны с Германией, и, к несчастью, проект был свёрнут. В 1942 году профессор электротехнической школы Мура Пенсильванского университета Д. Маучли представил проект «Использование быстродействующих электронных устройств для вычислений», положивший начало созданию первой электронной вычислительной машины ENIAC. В 1943 году под руководством Д. Маучли и Д. Эккерта были начаты работы по созданию ENIAC, демонстрация состоялась 15 февраля 1946 года. Новая машина имела «впечатляющие» параметры: 18000 электронных ламп, площадь 90 × 15 м2, весила 30 т и потребляла 150 кВт. ENIAC работала с тактовой частотой 100 кГц и выполняла сложение за 0,2 мс, а умножение — за 2,8 мс, что было на три порядка быстрее, чем это могли делать релейные машины. По своей структуре ЭВМ ENIAC напоминала механические вычислительные машины. Рисунок 5 – Электронный числовой интегратор и вычислитель ЭНИАК Долгое время считалось, что ENIAC единственный электронный компьютер, но в 1975 году Великобритания сообщила о том, что уже с декабря 1945 года в государственном институте Блетчли-Парк работал первый программируемый ЭВМ «Колосс», но для правильной оценки компьютера Англия не предоставила много данных. С точки зрения архитектуры ЭВМ с хранимой в памяти программой, революционными были идеи американского математика Джона фон Неймана. Изобретатель первого компьютераРодоначальником принято называть именно Чарльза Бэббиджа, который увлекался вычислительными науками с молодого возраста. На основании многолетних трудов он изобрел механизм, способный выполнять сложения разностным методом. Его разработка состояла из множества громоздких шестеренок. Аппарат путем применения десятичных схем счисления выдавал точный результат в течение минуты. Разработчик Чарльз Бэббидж за свои труды был вознагражден Британской субсидией, общая сумма дотаций составила 17 000 фунтов стерлингов. Эти деньги были пущены на модернизацию аппарата, однако финансирования не хватило для завершения новых проектов. Резюмируя в ответе на вопрос, кто изобрел первый компьютер, первым в списке значится Чарльз Бэббиджей – изобретатель, разработавший проект механического устройства. Свой вклад также внесли: Конрад Цузе – разработчик первого электромеханического программируемого аппарата. Джон Атанасов – разработал электронный непрограммируемый компьютер. Алан Тьюринг – создал универсальную техническую схему. Джон Мокли – сконструировал первую ЭВМ. Джон фон Нейман – описал архитектуру ЭВМ – устройство хранение информации, которая стала базовой для всех современных компьютеров. Архитектура фон НейманаАрхитектура компьютера – это его устройство и принципы взаимодействия его основных элементов – логических узлов, среди которых основными являются процессор, внутренняя память (основная и оперативная), внешняя память и устройства ввода-вывода информации. Принципы, лежащие в основе архитектуры ЭВМ, были сформулированы в 1945 году Джоном фон Нейманом, который развил идеи Чарльза Беббиджа, представлявшего работу компьютера как работу совокупности устройств: обработки, управления, памяти, ввода-вывода. Принципы фон Неймана. Принцип однородности памяти. Над командами можно выполнять такие же действия, как и над данными. Принцип адресуемости памяти. Основная память структурно состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так чтобы к хранящимся в них значениям можно было бы впоследствии обращаться или менять их в процессе выполнения программы с использованием присвоенных имен. Принцип последовательного программного управления. Предполагает, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности. Принцип жесткости архитектуры. Неизменяемость в процессе работы топологии, архитектуры, списка команд. Рисунок 6 – Архитектура фон Неймана В 1945 г. Англия приступила к созданию первой машины с неймановским типом памяти. Работа была возглавлена Т. Килбрном из Манчестерского университета и Ф. Вильямсем из Кембриджского. Уже 21 июня 1948 года Т. Килбрн и Ф. Вильямс просчитали первую программу на ЭВМ «Марк-1» (одинаковое название с машиной Айкена). Другая группа во главе с М. Уилксом 6 мая 1949 года произвела первые расчёты на машине того же типа — EDSAC. Вскоре были построены ещё машины EDVAC (1950 г.), BINAC и SEAC. В ноябре месяце того же года в Киевской лаборатории моделирования и вычислительной техники Института электротехники АН УССР под руководством академика С. А. Лебедева была создана первая советская ЭВМ — МЭСМ. МЭСМ была принципиально новой машиной, так как профессор Лебедев применил принцип параллельной обработки слов. Изобретатель первого компьютера в РоссииСоветские разработчики впервые сконструировали компьютер в 1948 году. Придумал электронную счетную машину профессор Лебедев, в конструировании участвовали 20 инженеров и 10 помощников. Отечественная машина занимала площадь в 60 кв.м. В ее конструкции присутствовало так много ламп и кабелей, что при запуске машина выделяла слишком много тепла. Инженерам даже пришлось разобрать часть крыши, чтобы свежий воздух охлаждал компоненты. Называлась машина МЭСМ. Лебедев разработал МЭСМ всего через три года после создания первого в мире электронного компьютера ENIAC в США и одновременно с британским EDSAC. К началу 1950-х годов МЭСМ использовалась для решения задач в области ядерной физики, комических полетов, ракетостроения, а также передачи электроэнергии. В 1952 году вслед за созданием МЭСМ Лебедев разработал еще одну вычислительную машину — БЭСМ. Это была самая быстродействующая ЭВМ в Европе, по крайней мере в течение некоторого периода, способная составить конкуренцию лучшим мировым разработкам в этой области. Это был триумф. БЭСМ-1 была выпущена в единственном экземпляре, но уже следующие модели, особенно БЭСМ-6, производились сотнями и использовались для разных целей. Производство БЭСМ-6 было прекращено в 1987 году. В 1975-м в ходе совместного космического проекта «Союз — Аполлон» советские специалисты обработали параметры орбиты «Союза» на БЭСМ-6 быстрее американцев. Но после столь многообещающего старта в области вычислительной техники Россия сегодня отстает от лидеров отрасли. Понять причину этого провала можно, только проанализировав историю развития отрасли, принимая во внимание социальные и экономические факторы, повлиявшие на ее трансформацию. В ведущих западных странах область вычислительной техники после Второй мировой войны формировалась под действием трех главных движущих сил: научного сообщества, государства и деловых кругов. Роль научного сообщества и правительства была особенно важна на начальном этапе, роль бизнеса проявилась позднее. Область вычислительной техники в Советском Союзе была успешна до тех пор, пока разработка этих устройств преимущественно зависела от достижений научной мысли и государственной поддержки. Поддержка вычислительных технологий со стороны государства была безграничной, если они использовались для нужд противовоздушной обороны или исследований в области ядерного оружия. Однако затем главной движущей силой на Западе стал бизнес. Символически этой переходной точкой является решение компании General Electric в 1955 году закупить вычислительные машины IBM 702 для автоматизации работ с платежными ведомостями и другими документами на своем заводе в Скенектади и решение Bank of America в 1959 году автоматизировать процессы (с использованием компьютера ERMA, созданного в Стэнфордском научно-исследовательском институте). Языки программирования высокого и низкого уровняЯзык программирования – один из способов записи алгоритмов; совокупность набора символов системы, правил образования и истолкования конструкций из символов для задания алгоритмов с использованием символов естественного языка. Понятие о языках программирования.Процессор компьютера – это большая интегральная микросхема. Все команды и данные он получает в виде электрических сигналов, но их можно представить и как совокупности нулей и единиц, т. е. числами. Поэтому реальная программа, с которой работает процессор, представляет собой последовательность чисел, называемых машинным кодом . Написать программу в машинном коде достаточно сложно, причем сложность работы непропорционально возрастает с увеличением размера программы. Условно можно считать, что машинный код приемлем, если размер программы не превосходит нескольких десятков байтов и нет потребности в операциях ручного ввода и вывода данных. Такая ситуация встречается, например, при программировании простейших автоматов. Более сложные программы создают с помощью так называемых языков программирования . Теоретически программу можно написать и средствами обычного человеческого языка – это называется программированием на метаязыке, но автоматически перевести в машинный код обычный человеческий язык пока невозможно. Перевод выполняют специальные служебные программы, называемые трансляторами , а трансляторов, способных перевести в машинный код обычный человеческий язык, пока не существует из-за высокой неоднозначности естественного языка. Языки программирования – искусственные языки. Они отличаются от естественных человеческих языков малым количеством слов, значение которых понятно транслятору , эти слова называются ключевыми , и довольно жесткими требованиями по форме записи операторов. Совокупность этих требований образует грамматику и синтаксис языка программирования. Нарушения формы записи приводят тому, что транслятор не может правильно выполнить перевод и выдает сообщение об ошибке Компиляторы и интерпретаторы.По принципу действия различают два вида транстяторов: компиляторы и интерпретаторы. Соотвественно с этим можно выделить два класса языков языков программирования: компилируемые и интерпретируемые. Трансляция – это перевод. Если мы посмотрим, как работают переводчики с иностранных языков, то тоже увидим, что существует два подхода: синхронный перевод и перевод текстов. Интерпретаторы работают как синхронные переводчики. Они берут один оператор из программы, транслируют его в машинный код (или в какой-то промежуточный код, близкий к машинному коду) и исполняют его. Если какой-то оператор многократно используется в программе, интерпретатор всякий раз будет добросовестно выполнять его перевод так, как будто встретил его впервые. Компиляторы обрабатывают программу в несколько приемов. Сначала они несколько раз просматривают исходный текст (обычно он называется исходным кодом), находят общие места, Выполняют проверку на отсутствие ошибок синтаксиса и внутренних противоречий, и лишь потом переводят текст в машинный код. В результате программа получается компактной и эффективной. Если программа написана на интерпретируемом языке программирования, то ее можно выполнить только на том компьютере, на котором предварительно будет установлен интерпретатор, ведь он должен участвовать в исполнении программы. Программы, написанные на компилируемых языках программирования, в посредниках не нуждаются – после компиляции уже получен машинный код, в котором есть все необходимее для работы процессора. Поэтому такие программы работают на любом компьютере и делают это в сотни раз быстрее. Это достоинство компилируемых языков программирования. Однако у программ, написанных на интерпретируемых языках программирования, есть другое преимущество. Так как мы можем исполнять их только под управлением интерпретатора, то соответственно мы можем в любой момент времени остановить работу программы, посмотреть ее операторы, внести нужные изменения, вновь запустить и т. д. Содержание программы открыто для пользователя. Для откомпилированных программ все это сделать практически невозможно. После компиляции программы ее исходный текст остается только у автора. Все остальные пользователи получают машинный код, который можно исполнять, но практически нельзя ни посмотреть, ни изменить. Хотя теоретически это сделать можно, но для этого необходимы огромные затраты времени, наличие специальных программ и высокий уровень знаний и опыта. Уровни языков программирования.Существует два уровня языков программирования: языки низкого уровня и языки высокого уровня . Язык программирования низкого уровня – это язык программирования, созданный для использования со специальным типом процессора и учитывающий его особенности. Языки программирования низкого уровня близки к машинному коду. Он позволяет непосредственно реализовать некоторые команды процессора. Языки низкого уровня мало похожи на привычный человеку язык. Большие программы на таких языках пишутся редко. Зато если программа будет написана на таком языке, то она будет работать быстро, занимая маленький объем и допуская минимальное количество ошибок. Чем ниже и ближе к машинному уровень языка, тем меньше и конкретнее задачи, которые ставятся перед каждой командой. Для каждого типа процессоров самым низким уровнем является язык ассемблера , который позволяет представить машинный код не в виде чисел, а в виде условных обозначений, называемых мнемониками. У каждого типа процессора свой язык ассемблера; его можно рассматривать одновременно и как особую форму записи машинных команд, и как язык программирования самого низкого уровня. Достоинством языков низкого уровня является то, что с их помощью создают самые эффективные программы (краткие и быстрые). Недостаток таких языков в том, что их трудно изучать из-за необходимости понимать устройство процессора и в том, что программа, созданная на таком язык, неприменима для процессоров других типов. Машинно-ориентированные языки – это языки, наборы операторов иизобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные языки позволяют использовать все возможности иособенности машинно-зависимых языков: высокое качество создаваемых программ (компактность и скоростьвыполнения); возможность использования конкретных аппаратных ресурсов; предсказуемость объектного кода и заказов памяти; для составления эффективных программ необходимо знать системукоманд и особенности функционирования данной ЭВМ; трудоемкость процесса составления программ (особенно на машинныхязыках и ЯСК), плохо защищенного от появления ошибок; низкая скорость программирования; невозможность непосредственного использования программ,составленных на этих языках, на ЭВМ других типов. Языки программирования высокого уровня заметно проще в изучении и применении. Программы, написанные с их помощью, можно использовать на любой компьютерной платформе, правда при условии, что для нее существует транслятор данного языка. Эти языки вообще никак не учитывают свойства конкретного процессора и не предоставляют прямых средств для обращения к нему. В некоторых случаях это ограничивает возможности программистов, но зато и оставляет меньше возможностей для совершения ошибок. Языки высокого уровня в большей степени ориентированы на человека; команды этих языков – понятные человеку английские слова. Чем выше уровень языка, тем больше приходится проделать операций для выполнения необходимой команды. С появлением языков высокого уровня программисты получили возможность больше времени уделять решению конкретной проблемы, не отвлекаясь особенно на весьма тонкие вопросы организации самого процесса выполнения задания на машине. Кроме того, появление этих языков ознаменовало первый шаг на пути создания программ, которые вышли за пределы научно-исследовательских лабораторий и финансовых отделов. Достоинства языков программирования высокого уровня : алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста; набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса; конструкции операторов задаются в удобном для человека виде; поддерживается широкий набор типов данных. Существуют также как универсальные, так и специализированные языки программирования. Языки низкого уровня.К языкам низкого уровня относятся языки Ассемблера. Свое название они получили от имени системной программы Ассемблер, которая преобразует исходные программы, написанные на таких языках, непосредственно в коды машинных команд. Термин «ассемблер» произошел от английского слова assembler – сборщик частей в одно целое. Частями здесь служат операторы, а результатом сборки – последовательность машинных команд. Процесс сборки называется ассемблированием. Ассемблер машинно-зависимый язык, т. е. он отражает особенности архитектуры конкретного типа компьютера. Исходная программа, написанная на ассемблере, состоит из одного или нескольких модулей, а каждый модуль – из операторов. Язык Ассемблера объединяет в себе достоинства языка машинных команд и некоторые черты языков высокого уровня. Ассемблер обеспечивает возможность применения символических имен в исходной программе и избавляет программистов от утомительного труда по распределению памяти компьютера для команд, переменных и констант, что неизбежно при программировании на языке машинных команд. Ассемблер позволяет также гибко и полно использовать технические возможности компьютера, как и язык машинных команд. Транслятор исходных программ в Ассемблере проще транслятора, требующегося для языка программирования высокого уровня. На Ассемблере можно написать столь же эффективную по размеру и времени выполнения программу, как и программу на языке машинных команд. Это достоинство отсутствует у языков высокого уровня. Данный язык часто применяют для программирования систем реального времени, технологическими процессами и оборудованием, для обеспечения работы информационно-измерительных комплексов. К таким системам обычно предъявляются высокие требования по объему занимаемой машиной памяти. Часто язык Ассемблера дополняется средствами формирования макрокоманд, каждая из которых эквивалентна целой группе машинных команд. Такой язык называют языком макроассемблера. Применение «макстроительных» блоков и приближает язык Ассемблера к языкам высокого уровня. Языки высокого уровняМашинно-независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС. Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять системапосле трансляции программы на машинный язык. т.о., командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены ввысокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровнемашинных команд, а сосредоточиться на основных особенностях алгоритма. К языкам высокого уровня относят: Проблемно-ориентированные. Данные языки имеют средства для организации структур данных, описания алгоритмов и ориентированы на решение задач определенного класса. К ним относятся: Фортран, Алгол, Кобол, Ада и др. Универсальные. Такие как: Алгол 68, PL/1, Паскаль, QBasic, C, C++, С# и дp. Языки проектирования программ. В настоящее время имеют самый высокий уровень абстракции, они расширяются не как языки описания процесса обработки данных, а как средства описания задач: Visual Basic, Delphi, MS Visual C++, Borland C++ Builder и др. Языки гипертекстовой разметки, такие, как HTML – набор кодов, который вводится в документ для обозначения, например, связей между его частями. Команды HTML обеспечивают соединение сайтов и главныхстраниц WWW (Всемирной паутины сети Интернет) при помощигиперссылок и указывают Web-браузеру (программе навигации) способрасположе ния массивов данных; Языки описания сценариев – макросы, в которых объединенны отдельные команды, управляющие средой в соответствии с их списком программой. Например состоящие из именованных последовательностей совокупности указанных нажа тий клавиш при работе с пакетом MicrosoftOffice. Языки моделирования систем. Например, GPSS (General PurposeSimulating System) позволяет автоматизировать при моделировании процесс программирования моделей. Язык построен в предположении, что моделью сложной дискретной системы является описание ее элементов илогических правил их взаимодействия. Для определенного класса моделируемых систем выделяют небольшой набор абстрактных элементов объектов. Набор логических правил ограничен и может быть описан не большим числом стандартных операций. Комплекс программ, описывающих функционирование объектов и выполняющих логические операции, является основой для создания программной модели систем данного класса. Проблемно – ориентированные языкиС расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач. Ими стали проблемно – ориентированные языки. Эти языки, языки ориентированные на решение определенных проблем, они должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Проблемных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами. Универсальные языкиУниверсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков PL/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной иплавающей запятой. PL/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с даннымиорганизованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в PL/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое истатистическое распределения памяти. Диалоговые языкиПоявление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ, их назвали диалоговыми языками. Работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия напрохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы, даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе. Одним из примеров диалоговых языков является Бэйсик. Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточноширокий круг задач. Непроцедурные языкиНепроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе. ЗаключениеИзобретение языка программирования высокого уровня позволило нам общаться с машиной и понимать её. Низкоуровневые и высокоуровневые языки хоть и разные, но отлично уживаются в современном мире, выполняя задачи, возложенные конкретно на них. Благодаря повышению уровня абстракции был создан весь современный цифровой мир. На сегодняшний день, любое среднее и крупное предприятие, имеет в своем штате группу программистов, обладающими знаниями программирования различными языками, которые редактируют, изменяют, и модифицируют программы используемыми сотрудниками предприятия. Это говорит о том, что на рынке труда пользуются спросом обладающими знаниями и опытом работы с различными языками программирования. Несмотря на то, что современный уровень развития языков программирования находятся на высоком уровне, тенденция их развития, а также развития информационных технологий в целом, складывается таким образом, что можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста. Список литературыВ.Э. Фигурнов, “IBM PC для пользователя. Краткий курс”, Москва, “Инфра-М”, 1998 г. 2. Жигарев А. Н. Основы компьютноной грамоты -Л. Машиностроение. Ленинг. отд-ие, 1987 г. - 255 с. 3. Кузнецов Е. Ю., Осман В. М. Персональные компьютеры и программируемые микрокалькуляторы: Учеб. пособие для ВТУЗов - М.: Высш. шк. -1991 г. 160 с. Роберт У. Себеста. Основные концепции языков программирования Concepts of Programming Languages / Пер. с англ. — 5-е изд. — М.: 2001. Вольфенгаген В. Э. Конструкции языков программирования. Приёмы описания. — М.: Центр ЮрИнфоР, 2001 Золотарев В. В. / Основы автоматизации, ч. 1, 1978. Ваулин А.С. / Языки программирования, кн. 5, 1993. Терренс П. / Языки программирования: разработка и реализация. 1979. Хротко Г. / Языки программирования высокого уровня. 1982. |