54
правки
Изменения
→Псевдокод
=== Псевдокод ===
<tex>a_1...a_na</tex> - входная строка. <tex>A_1...A_mA</tex> - нетерминалы.
<tex>P[i,j,k] = true</tex> если есть продукция <tex>A_i \Rightarrow A_j A_k</tex>.
<tex>S([i,c) j] = true</tex> если есть продукция <tex>A_i \Rightarrow ca_j</tex> (где <tex>c</tex> - терминал).<tex>d[i][,j,k]</tex> - можно ли вывести из нетерминала <tex>A_i</tex> подстроку <tex>a_j...a_k</tex>.Считаем, что <tex>A_0</tex> - стартовый нетерминал.
function CYK (a: array [1..n] of char, P: array [1..m,1..m,1..m] of bool, S: array []) : bool var d: array [1..m,1..n,1..n] of bool begin for i = 1 to m for j = 1 to n d[i][,j,j] = S([i,a[j])
= Ссылки =