Языки программирования. Практический сравнительный анализ



Языки программирования. Практический сравнительный анализ - стр. 58


В-третьих, мы уже говорили о возможности распараллелить работу по функциональной программе-формуле. А как это сделать в программе (ap)? Опять сравнение не в пользу Алгола.

                

Задача. Найдите аргументы в пользу Алгола.

               

Замечание. Программа скалярного произведения в модели Б - это формула, операциями в которой служат формы, а операндами - основные скалярные функции (+, x) и некоторые другие (транс). В этой связи интересно напомнить, что Джон Бэкус - "отец" Фортрана, который тоже начинался как Formula Translation (и "испортился" под натиском "эффективности"). Так что Джон Бэкус пронес идею "формульного" программирования через многие годы, от своего первого знаменитого Фортрана до теперь уже также знаменитого "функционального стиля". Излагая модель Б, мы пользуемся лекцией, прочитанной Джоном Бэкусом по случаю вручения ему премии Тьюринга за выдающийся вклад в информатику [3].

              

Мы показали, как функции высших порядков помогают писать концептуально ясные программы. В дальнейшем нам предстоит заняться моделью Б подробнее. Основная цель - познакомить с алгеброй программ, разработанной в этой модели, и с применением алгебры для доказательного программирования.

2.4. Модель Бэкуса

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

Для выразительности и краткости при наших определениях будем пользоваться общематематической символикой.


Содержание  Назад  Вперед