Obsah | Dal¹í | Pøedchozí |
Interpretace jazyka probíhá ve vyhledávacím i v sí»ovém serveru shodnì. Dokonce i implementaènì není mezi obìma servery rozdíl. V obou je nejprve jazyk pøelo¾en do vnitøní formy a poté zpracován.
Jestli¾e má server vykonat pøíkaz zadaný u¾ivatelem, musí nejprve rozpoznat o jaký pøíkaz se jedná. Toto rozpoznávání mù¾e být implementováno buï pøímo v kódu pøíslu¹ného serveru, nebo je vstupní text rozebrán pomocí nìjakého automatu. První mo¾nost sice umo¾òuje rychlej¹í bìh programu, ale oproti druhé má podstatnou nevýhodu. A to nedostateènou pru¾nost pøi zmìnách v pou¾ívaném jazyce.
Proto¾e pøi vývoji systému postupnì docházelo k obmìnám komunikaèního jazyka, byla pro nás volba jasná. Zvolili jsme jednoduchý automat, který vyhodnotí vstupující pøíkaz a pøelo¾í ho do vnitøní formy. Tento automat je vytvoøen na základì gramatiky, kterou naèítá z konfiguraèního souboru (obì je mo¾né zhlédnout v pøíloze). Zmìnou gramatiky v tomto souboru je mo¾né zmìnit podobu komunikaèního jazyka.
Automat je vnitønì reprezentován tabulkou stavù a v ní jsou nadefinovány pøechody. Pøi pøechodech ze stavu do stavu se vytváøí vnitøní reprezentace jazyka.
Po rozpoznání pøíkazu se tento musí také provést. Kdy¾ je pøíkaz pøelo¾en do vnitøní formy, je podle typu pøíkazu vytvoøen výkonný objekt. Tento objekt si pøi vytváøení naplní své struktury z vnitøní formy jazyka. Poté vykoná akci pøíslu¹ející pøíkazu jazyka a vrátí správný výsledek.
Výkonné objekty jsou samostatné pro ka¾dý typ pøíkazu. To opìt umo¾òuje snadnou modifikaci systému pøi libovolné zmìnì jazyka nebo jeho funkènosti.
1999-03-04 | Pavel Krtièka |