Реферат по предмету: Высокоуровневые методы математики и программирования на тему: ALGOL скачать бесплатно
Реферат на тему: ALGOL. Скачать бесплатно
3. Алгол 60
Этот язык воплотил в себе все передовое, что было наработано теоретиками и практиками к моменту своего появления (конец 50-х годов), однако был встречен промышленностью и военными довольно прохладно и так и не получил должного признания.
Может быть интересно
- Реферат на тему: Сканеры. Назначение. Виды. Особенности сканирования текста и изображения. Скачать бесплатно
- "Двухтактный АЦП "напряжение – код" (двухтактного интегрирования)
- Лабораторная работа. УНИВЕРСАЛЬНОЕ КОДИРОВАНИЕ. СЛОВАРНОЕ МОДЕЛИРОВАНИЕ. АНАЛИЗ ОПТИМАЛЬНОСТИ КОДОВ ХАФФМАНА. Скачать бесплатно
Несмотря на это, роль Algol 60 (в дальнейшем – Algol) в истории языков программирования огромна, потому что идеи, заложенные в этом языке, получили дальнейшее развитие и породили целую плеяду так называемых “алголоподобных языков”, среди которых в первую очередь можно выделить Algol 68 и Pascal. Эти языки получили значительно большее распространение. Кроме того, они в процессе своего развития в свою очередь стали основой для еще более развитых и мощных языков. Своеобразие роли Algol в информатике заключается еще и в том, что этот язык стал алгоритмическим, в отличие от подавляющего большинства других языков, являющихся языками программирования. Алгоритм можно реализовать практически на любом языке программирования, но особенность Algol заключается в том, что этот язык обладал непревзойденными (на время своего появления) выразительными средствами для строгого и изящного представления алгоритма. В результате, не получив признания в промышленности как язык программирования, Algol стал стандартом де-факто для публикации алгоритмов в научной среде. Так, например, на страницах Communications of the ACM долгие годы ему отдавалось предпочтение перед другими языками.
Algol разрабатывался комитетом, специально созданным для разработки языка высокого уровня общего назначения, пригодного для научных вычислений.
Интересно, что впервые в истории язык был определен формально. Algol, которому было предназначено противопоставить четкость и элегантность конструкций хаотичности и сумбурности FORTRAN, был описан посредством модификации Нормальной Формы Бэкуса (создателя FORTRAN). Нормальная Форма Бэкуса была доработана одним из членов комитета, Питером Науром, и в дальнейшем стала известна как Расширенная Форма Бэкуса-Наура (РБНФ). РБНФ оказалась настолько удобной формой описания синтаксиса формальных языков,что в дальнейшем практически все языки программирования стали описываться в этой нотации (еще один, косвенный вклад Algolа в развитие информатики).
Очень немногие короткие документы оказали глубокое влияние на компьютерное сообщество. Легкость, с которой в последующие годы слова “ALGOL” и “ALGOL-подобный” использовались как незащищенные торговые марки, чтобы придать часть своей славы незрелым проектам, порой имеющим весьма слабое отношение к предмету, – комплимент его основам.
Одной из слабостей языка был переработанный и не слишком систематический синтаксис.
Как и в большинстве других языков программирования, программа на Algol состоит из главной программы и набора подпрограмм. При их построении используются блоки – наборы описаний и последовательности операторов, ограниченные “скобками” begin и end. Структуры данных, созданные внутри блока, локальны в его пределах и при выходе из блока уничтожаются. Таким образом, можно управлять временем жизни данных и областью видимости их идентификаторов. Идентификатором называется любая конечная последовательность букв и цифр, начинающаяся с буквы.
Программа записывается в виде конечной последовательности основных символов (букв, цифр, знаков препинания, знаков операций и некоторых служебных слов в английском написании). Запись программы производится в одну строчку; подстрочные индексы, всякого рода надстрочные показатели не допускаются. Между любыми соседними символами можно оставить пробел.
Определение подпрограммы состоит из заголовка, в котором указываются имя подпрограммы и перечисляются имена и типы ее формальных параметров, и тела, которое представляет собой просто блок. Динамическое выделение памяти для переменных в блоке позволяет эффективно использовать рекурсию.
К особенностям языка можно отнести механизмы передачи параметров подпрограммам. Их два: хорошо известная передача по значению и передача по имени. В большинстве случаев она эквивалентна передаче по ссылке, однако между этими механизмами имеются довольно различия.
Очень важно, что блоки могут образовывать вложенные структуры, т.е. внутри блока может быть вложен блок, в него – другой блок и т.д. Важной особенностью языка является также то, что блок является разновидностью оператора – составным оператором и может быть употреблен везде, где допустим обычный оператор. В сочетании с развитым набором структурных управляющих конструкций (условный оператор, цикл со счетчиком, циклы с пред- и постусловием) это позволяет строить хорошо структурированные программы, обходясь без оператора go to.
К сожалению, типы и структуры данных в языке гораздо менее разнообразны, чем управляющие конструкции. Во многом это определило дальнейшую судьбу языка, применявшегося в первую очередь для научных вычислений. Из типов имеются логический, целочисленный и вещественный, а из структур данных – лишь однородный массив. Правда, массивы являлись динамическими, что позволяло эффективно управлять распределением памяти.
Способ изображения десятичного числа в Алголе отличается от традиционного способа изображения употреблением точки вместо запятой. Арифметическое выражение строится из чисел и простых переменных с использованием знаков арифметических операций, круглых скобок и стандартных функций.
Для ввода данных и вывода результатов используются операторы ввода и вывода:
Ввод(х1, х2, у)
Вывод(х)
Основной символ := называется знаком присваивания. Допускается присваивание значения какого-нибудь арифметического выражения сразу нескольким простым переменным.
Кроме операторов программа содержит описания. Описание является сообщением о том, какие простые переменные используются в программе:
Real х1
Пример 3 (Программа вычисления корней квадратного уравнения ax2+bx+c=0, заданного коэффициентами a, b, c. Предполагается, что a ≠ 0 и что корни действительные):
Begin real a, b, c, x1, x2;
Ввод (a, b, c);
X1:= (-b + sqrt(b↑2 – 4 × a × c))/ (2 ×a);
X2:= (-b – sqrt(b↑2 – 4 × a × c))/ (2 ×a);
Вывод (x1, x2)
End
В программах на Алгол могут быть использован условный оператор If…then…else…
Пример 4 (Программа, после выполнения которой меньшее из двух данных неравных чисел будет увеличено вдвое, а большее оставлено без изменений):
Begin real x, y;
Ввод (x, y);
If x>y then y:= 2×y else x:= 2×x;
Вывод (x, y)
End
Оператор может быть как простым, так и составным. Структура составного оператора: Begin P1; P2; …; Pk end
Каждый оператор может быть помечен меткой. В качестве меток употребляются идентификаторы. Метка располагается перед оператором и отделяется от него двоеточием.
В Алголе помимо простых переменных используются переменные с индексами.
Для многократного повторения каких-либо действий применяется оператор цикла. Структура оператора цикла: for p:=A step B until C do S. Буквой р обозначена некоторая простая переменная (параметр цикла), буквами А, В, С – арифметические выражения, буквой S – оператор.
Пример 5 (Программа вычисления n!):
Begin integer i, n, p;
Ввод (n);
P:=1;
For i:=2 step 1 until n do p:=p×i;
Вывод (p)
end
Пример 6 (Программа переводит градусы по Фаренгейту в градусы по Цельсию):
fahrenheit
begin
real fahr;
print (“Enter Fahrenheit “);
read (fahr);
print (“Celsius is “, (fahr-32.0) * 5.0/9.0);
end
finish
Здравствуйте. Скажите пожалуйста, планирую поступать в магистратуру на факультет Психологии « Психология личности»в РГГУ скажите пожалуйста, есть ли у вас, ответы на вступительные экзамены? так как, планирую, сделать акцент на бюджет. Спасибо.
Арсений, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Дистанционная помощь в защите ВКР
Анастасия, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте. Нужна срочно практическая часть вкр, третья глава. Скину похожие работы, на которые можно ориентироваться
Александр, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
вкр по теме: экологический туризм России : анализ состояния, проблемы и перспективы
Людмила, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте вы защищаете ВКР?
Ольга, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать магистерскую ВКР на тему «Совершенствование логистических бизнес-процессов на примере торговой компании». Не менее 100 страниц.
Миша, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте нужна работа Вкр
Лена, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать ВКР 3 раздела Тема строительство строительство жилого дома с применением каркасно-монолитных технологий Антиплагиат от 75% ПЗ и чертежи
Владимир, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.