Конспект установочных лекций по комплексному курсу Информатика, Теория информации



Элементы чисто аппликативных языков программирования


Особый класс языков программирования (ЯП) образуют так называемые аппликативные,

или функциональные, ЯП. Они называются так потому, что для них центральным элементом языка является применение функций.

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

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

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

Пример (функция факториала). Математически факториал может быть специфицирован следующим образом: факториал есть отображение !: N>N в постфиксной записи (точка показывает позицию аргумента.). Имеют место равенства:

О! = 1,

(n+1)! = (n+1) * (n!).




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