next up previous contents index
Next: LogTalk: popis a ukázky Up: Jazyky, které spojují OOP Previous: OBJECT-PROLOG: V jednotě je   Obsah   Index


KSL/LOGIC: Reflexivní a rozšiřitelný

KSL/LOGIC je OOP jazyk KSL (Knowledge Specification Language) rozšířený prvky LP. Jednoznačným cílem při tvorbě KSL byla možnost sjednocení několika různých programovacích technik. KSL/LOGIC je tedy jedním z příkladů takového spojení. Aby toto spojení bylo možné, jsou jazykové konstrukce reprezentovány pomocí datových objektů. To způsobilo, že jazyk může prakticky spravovat sám sebe. Což je na jedné straně velmi užitečné pro implementaci takových nástrojů jako např. překladače a ladicí programy a navíc může být jazyk jednoduše rozšířen pouhým přidáním nových tříd. Těchto výhodných vlastností bylo dosaženo podobně jako v LISPu několika omezeními a sjednocením syntax jazyka. Vše v KSL (hlavičky metod, deklarace proměnných, příkazy atd.) je reprezentováno prakticky pomocí několika druhů seznamů.

Následující příklad, který vypočítá věk osoby, ukazuje strukturu jazyka:


    (#Method
        (&Selector Vek)
        (&Class Osoba)
        (&ParmList (#List Self))
        (&VarList (#List Rok_narozeni Mesic_narozeni))
        (&ExprList (#List
            (Set Rok_narozeni (Rok (Datum_narozeni $Self)))
            (Set Mesic_narozeni (Mesic (Datum_narozeni $Self)))
            (When
                (#List (GreaterThan $Mesic_narozeni $Stavajici_mesic)
                    (Subtrackt (Subtrackt $Stavajici_rok $Rok_narozeni) 1))
                (#List True
                    (Subtrackt $Stavajici_rok $Rok_narozeni)
    )))



Tomáš Kubíček 2002-05-19