الگوریتم سی وای کا
الگوریتم سی وای کا الگو:به انگلیسی در علوم رایانه یک الگوریتم برنامهریزی پویا برای بدست آوردن تجزیه گرامری جملات با استفاده از گرامر مستقل از متن است.
اهمیت این الگوریتم از لحاظ پیچیدگی محاسباتی آن است که است. این الگوریتم از برنامهنویسی پویا به این شکل استفاده میکند که ابتدا برای هر حرفِ یک جمله ورودی، تمام متغیرهایی که منجر به تولید آن حرف میشوند را در مجموعه ای مجّزا قرار میدهد. بعد همین کار را برای زیرجملههای دوحرفی تکرار میکند و بعد زیرجملههای سه حرفی تا به کل جمله برسد. در نهایت اگر متغیر ابتدایی را در مجموعه متغیرهای جمله پایانی یافت نتیجه میگیرد که جمله توسط گرامر تولید شدهاست.
let the input be a string S consisting of n characters: a۱... an.
let the grammar contain r nonterminal symbols R۱... Rr.
This grammar contains the subset Rs which is the set of start symbols.
let P[n,n,r] be an array of booleans. Initialize all elements of P to false.
for each i = 1 to n
for each unit production Rj -> ai
set P[i,1,j] = true
for each i = 2 to n -- Length of span
for each j = 1 to n-i+1 -- Start of span
for each k = 1 to i-1 -- Partition of span
for each production RA -> RB RC
if P[j,k,B] and P[j+k,i-k,C] then set P[j,i,A] = true
if any of P[1,n,x] is true (x is iterated over the set s, where s are all the indices for Rs) then
S is member of language
else
S is not member of language
منابع
- جان کوک and Jacob T. Schwartz (1970). Programming languages and their compilers: Preliminary notes. Technical report, موسسه ریاضی کورانت, دانشگاه نیویورک.
- T. Kasami (1965). An efficient recognition and syntax-analysis algorithm for context-free languages. Scientific report AFCRL-65-758, Air Force Cambridge Research Lab, بدفورد، ماساچوست.
- Daniel H. Younger (1967). Recognition and parsing of context-free languages in time n۳. Information and Control 10(2): 189–208.
- الگو:Citation
- الگو:Citation
- الگو:Citation
- الگو:Citation
- الگو:Citation