Начало на реферати

Увод във функционалното програмиране


Основни предимства на функционалния стил на програмиране:

може да се извършва лесна проверка и поправка на съответните програми поради липсата на странични ефекти;

могат да бъдат доказвани точно (с математически средства) свойства на функционалните програми.

Основни недостатъци на функционалното програмиране:

строгата функционалност понякога изисква многократно пресмятане на едни и същи изрази;

неестествено и често неефективно е използването им при решаване на задачи от процедурен (алгоритмичен) характер.

Теоретичен модел на функционалното програмиране е l-смятането, въведено от Чърч.

На базата на l-смятането през 1958-1961 г. Дж. Маккарти разработва езика за функционално програмиране LISP. В LISP програмата е списък от дефиниции на функции. Дефиницията на функция се осъществява с помощта на едно равенство, но чрез използване на множество от примитивни функции.

През 1977 г. M. O’Donnell обосновава математически изчисленията в системи, описани с равенства. O’Donnell ги нарича системи за програмиране с равенства, а също и системи за заместване на поддървета. При тях програмата е съвкупност от равенства от вида A = B. Равенствата са ориентирани в смисъл, че B може да замести A, но A не може да замести B. Сред най-популярните езици за програмиране с равенства са HOPE, ML и др.

През 1978 г. Дж. Бекус поставя основите на т. нар. FP-стил на програмиране. FP-програмите са или примитивни форми, или дефиниции, или функционални форми. Бекус доказва, че FP-системите имат следните важни свойства:

а) проста формална семантика;

б) ясна йерархична структура на FP-програмите, при която програми от високо ниво могат да се комбинират и да образуват програми от още по-високо ниво;

в) основните FP-форми за комбиниране са операции в силна алгебра на програми, която може да се използва за трансформиране на програми, за решаване на уравнения от рекурсивно дефинирани програми и др.

3. ЕЗИЦИ ЗА ФУНКЦИОНАЛНО ПРОГРАМИРАНЕ

Най-общо програмата на един функционален език се състои от поредица от уравнения, чрез които се описват някакви функции. Редът, в който са подредени уравненията, не е съществен (за разлика от операторите в програмите на императивните езици). Идеята за функционалност изключва използването на оператори за присвояване и управление (за преход, за цикъл). Поради съображения за ефективност обаче голяма част от използваните в практиката функционални езици съдържат императивни конструкции, които са подобни на операторите за присвояване и операторите за управление.

Функционалните езици могат да се разделят на:

строги (чисти) функционални езици – при тях единствените управляващи структури са функциите. Странични ефекти не се допускат. Такива езици са: Pure LISP, HOPE, Miranda, FP, W и др.;

Увод във функционалното програмиране facebook image
Публикувано от: Радослав Макавеев

Увод във функционалното програмиране 9 out of 10 based on 2 ratings. 2 user reviews.