Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

1.  M = N

N = M.

2.  M = N, N = P

M = P.

3.  M = N

PM = PN.

4.  M = N

MP = NP.

5. M = N

lx. M = lx. N.

Рассмотрим примеры b-редукции (в прикладной варианте записи)

(lх. х + 2у)(а) = а + 2у

(lу. х + 2у)(а) = х + 2а

(lх.(lу. х + 2у))(а)(b) = (lу. а + 2у)(b) = a + 2b

(lx.((ly. xy)u))( lv. v) = (ly.(lv. v)y)u = (lv. v)u

(lx.((ly. xy)u))( lv. v) = (lx. xu)(lv. v) = (lv. v)u

(lx. xx) (lx. xx) = (lx. xx) (lx. xx) = (lx. xx) (lx. xx) =…

((lx. x*3) (ly. if y > 4 then e = 2 else x/2) (ly. y>2)) (5) = 2*5 = 10

(ln.(lx. x-n))(2) = lx. x-2

(lf.2*f(8) – f(f(8)))(half) = 2*8/2 – (8/2)/2 = 6 (half – половина).

7. Формальные грамматики

7.1. Понятие формальной грамматики

Формальная грамматика - это четверка G = <VN, VT, P, S >, в которой

VN - нетерминальный словарь (множество нетерминальных символов);

VT - терминальный словарь (множество терминальных символов ) ;

P - множество грамматических правил;

S Î VN - начальный нетерминальный символ.

Метаязык - язык, с помощью которого описывается язык:

::= - есть по определению;

| - “ исключающее или”;

< ... > - внутри – один нетерминальный символ ;

[ ] - необязательная часть;

, - запятая – разделитель при перечислении.

Пример: Построим грамматику G1:

<прог>::=<оп> | <оп>; <прог>

<оп>::=<пер> := <выр>

<пер>::=a | b | c

<выр>::=<пер> | <пер> <зн> <выр>

<зн>::= + | - | * | /

V = VN È VT - обобщенный словарь.

НЕ нашли? Не то? Что вы ищете?

V* - цепочка символов (строка, слово) из обобщенного словаря;

V*N - цепочка символов (строка, слово) из нетерминального словаря;

V*T - цепочка символов (строка, слово) из терминального словаря.

e Î V - пустой символ, входит в обобщенный словарь.

Строка a непосредственно порождает строку b и обозначается: a Þ b,

если a = vxw b = vyw и существует некоторое правило p: x::= y,

где v, w, Î V* , х Î VN, у = V* \ {e}

Строка a порождает строку b и обозначается a Þ* b, когда от строки a можно перейти к строке b с помощью последовательности непосредственных порождений.

Продолжая пример:

<прог> Þ <оп> ; <прог> Þ <оп> ; <оп> Þ <пер> := <выр> ; <оп> Þ*

a := b + c; c := a + b - c;

Грамматика, использующая процедуры (непосредственного) порождения – порождающая грамматика.

Строка b непосредственно свертывается в строку a и обозначается: a Ü b,

если a = vxw b = vyw и существует некоторое правило p: x::= y,

где v, w, Î V* , х Î VN, у = V* \ {e}

Строка b свертывается в строку a и обозначается a *Ü b, когда от строки b можно перейти к строке a с помощью последовательности непосредственных свертываний.

Грамматика, использующая процедуры (непосредственного) свертывания –распознающая грамматика.

Строки символов из обобщенного словаря, получающиеся в процессе порождения или свертывания, называются сентенциальными формами.

Язык L, порождаемый данной грамматикой G - множество нетерминальных цепочек, порождаемых из начального нетерминального символа. Такие терминальные цепочки называются предложениями данного языка.

L(G) = { x Î V*N | S Þ* x }

Аналогично можно определить язык L через свертывание.

L(G) = { x Î V*N | S *Ü x }

Замечание. Другой вариант метаязыка

вместо ::= используется стрелка ® , терминальные символы записываются маленькими (строчными) буквами, а нетерминальные – большими (прописными) буквами.

Такой вариант мета языка чаще используется в математической литературе. Первый предпочитают использовать в литературе для программистов. Так что мы будем пользоваться и тем и другим вариантами…

7.2. Деревья вывода

Порождение и свертывание можно также представлять с помощью деревьев вывода.

Пусть дана грамматика.

I ® T

I ® I + T

I ®I - T

T ® M

T ® T*M

T ® T/M

M ® (I)

M ® K

K ® a

K ® b

K ® c

Построим дерево вывода.

Для предложения a * b + c дерево вывода будет:

I

I T

T M

 

T * M K

 

M K c

 

a b

Этот же результат можно получить и другим способом:

I ® I + I

I ® I - I I

I ® I*I

I ® I/I I + I

I ® (I)

I ® a I * I c
I ® b

I ® c a b

7.3. Классификация языков по Хомскому

Н. Хомский предложил подразделять формальные грамматики, как и порождаемые ими языки на четыре типа.

Тип 0 - формальная грамматика, на правила которой не накладывается никаких ограничений. Для исследования они интереса не представляют – поскольку режим «делай, что хочешь» для математики и для практики редко представляют интерес.

Тип 1 . К этому типу относятся грамматики, правила которых имеют вид:

vaw ::= vbw, где

v, w Î V* - произвольные цепочки символов, возможно пустые;

a Î VN - нетерминальный символ;

b Î V*\{e} [ иногда b Î V* ].

[ b Î V* ].

Эти грамматики еще называют контекстно-зависимыми или КЗ-грамматиками.

Здесь строка a заменяется на строку b в рамках какого-то контекста. Часто используется на практике подмножество таких грамматик, называемое грамматиками непосредственных составляющих:

vAw ::= vaw, где v, w, aÎV* , AÎVN

При этом часто рассматриваются неукорачивающиеся грамматики (что обеспечивается непустой цепочкой b).

Тип 2 . К этому типу относятся грамматики, правила которых имеют вид:

a ::= b

a Î VN - нетерминальный символ;

b Î V*\{e}:

Здесь также представляют наибольший интерес грамматики непосредственных составляющих.

Такие грамматики называются контекстно-свободными грамматиками или КС-грамматиками.

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

Тип 3 . К этому типу относятся грамматики, правила которых имеют один из двух видов:

æ A := Bcö

è A := b ø

где A, B, C ÎVN ; b, c Î VT ;

Это так называемый леворекурсивный вариант. В качестве альтернативы возможен и праворекурсивный вариант:

æ A := сBö

è A := b ø

Такие грамматики называют регулярными или автоматными грамматиками. Лексический анализ в компиляторе обычно наиболее целесообразно описывать с помощью этих грамматик.

7.4. Распознающие автоматы

Распознающим называется автомат Мура с множеством выделенных состояний, называемых конечными. Говорят, что автомат распознает входное слово, если, начав свою работу в одном из начальных состояний, он заканчивает ее в одном из конечных.

Пример: Автомат, распознающий слова содержащие попарное вхождение букв а

и b, вроде aabbbbaa. f1, f2 - конечные состояния

2 a

a

b f1

a, b a a

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29