Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

Семантика на програмните езици. Синтаксис на рекурсивните програми


Информационни технологии | 2009-12-04 | 36 сваляния

8.Синтаксис на рекурсивните програми.



Ще разгледаме само два типа данни: Nat и Bool.Елементите на Nat ще бъдат естествените числа.Ще предполагаме че разполагаме и с определен запас от операции от тип Natn Nat, n1, като +, * и т.н.Елементите на Bool ще са булевите ст/сти tt и ff. За всички операции в основните типове данни ще използзваме термина основни операции.синтактични елементи на езика:

  • константи за означяване на елементите на Bool и Nat

  • символи за основните операции

  • обектови променливи от тип Nat коитто ще означяваме с главни латински букви,евентуално с индекс

  • функционални променливи Fkn , n=1,2; k=0,1,, където всяка променлива с горен индекс n е от тип Natn ђ Nat .

Ще използваме три вида термове които ще наричаме съответно термове от тип Nat , термове от тип Bool и условни термове. Термовете от тип Nat се определят посредством следната индуктивна дефиниция:

1.Всяка константа от тип Nat е терм.

2.Всяка обектова променлива е терм.

3.Ако f е основна операция от тип Natn ђ Nat , а c1,..., cn са термове от тип Nat ,то f(c1,..., cn) е терм от тип Nat.

4.Ако F е финкционална променлива от тип Natn ђ Nat а c1,..., cn са термове от тип Nat то F(c1,..., cn) е терм от тип Nat.

Термове от тип Bool се определят както следва:

1.Булевите константи са термове от тип Bool.

2.Ако f е основна операция от тип Natn ђ Bool , а c1,..., cn са термове от тип Nat то (c1,..., cn) е терм от тип Bool.

3.Ако f е основна операция от тип Bool n ђ Bool а p 1,..., p n са термове от тип Bool то f(p 1,..., p n) е терм от тип Bool.

Накрая ще определим условните термове.Това са изрази от вида if p then c1 else c2 където p е терм от тип Bool а c1 и c2 са термове от тип Nat.Ако c е терм от кой да е тип то в c може да участвуват най-много краен брой обектови и функционални променливи.Ще използваме записването c(Х1,..., Хn ,F1m1 ,, Fkmk ), за да означяваме че всички обектови променливи-сред F1m1 ,..., Fkmk .Рекурсивна програма ще наричаме синтактичен обект R от следният вид:

c01,..., Хn ,F1m1 ,, Fkmk ), where

F1m1 (Х1 ,, Хm1)= c1 (Х1 ,, Хm1 , F1m1 ,, Fkmk)

.

Fkmk (Х1 ,, Хmk)= ck(Х1 ,, Хmk , F1m1 ,, Fkmk)

където всеки от термовете c1,..., cк е от тип Nat или е условен терм а c0 е от тип Nat.Както се вижда от синтаксиса, рекурсивните програми твърде много наподобяват програни на Lisp.Основнта разлика е че ние сме въвели списъци и не представяме самите програми като списъци.Рекурсивните програми са въведени в теоретичното програмиране от автора на езика Lisp Дж. Маккарти макар че под една или друга форма те са били изучавани и преди него.Пример на рекурсивна програма:

F(Х), where

F(Х)= if Х =0 then 1 else F(Х-1)*Х

Семантика на програмните езици. Синтаксис на рекурсивните програми

Добави своя коментар:



Тагове от реферата: , , , , , ,

Изтегли в DOC | PDF | ZIP

Подобни материали


Преобразуване на последователен код в паралелен Информационни технологии | 2010-11-14 | 70 прочитания
Приложение на специАлизирана компютърна програма microsoft-excel за решаване на задачи от линейното програмиране Информационни технологии | 2010-11-14 | 199 прочитания
Основна задача на линейното оптимиране.Каноничен вид.Симплекс метод Информационни технологии | 2010-11-14 | 87 прочитания
Сигнали. Характеристика на сигналите. Предаване на сигналите Информационни технологии | 2010-11-14 | 167 прочитания
Нови измерения в общуването, комуникацията и размяната на информация Информационни технологии | 2010-11-14 | 58 прочитания
Примери към лекциите по обектно-ориентирано програмиране Информационни технологии | 2010-11-14 | 95 прочитания
ИНТЕГРИРАНА ИНФОРМАЦ. С-МА НА ЗАСТРАХОВАТ.Д-ВА Информационни технологии | 2010-11-14 | 27 прочитания
Програмиране и използване на компютри(3) Информационни технологии | 2010-11-14 | 49 прочитания
Приложение на база данни MS ACCESS Информационни технологии | 2010-11-14 | 214 прочитания
Операционната система Линукс Информационни технологии | 2010-11-14 | 75 прочитания