Készítette: Weigel Szilvia számítástechnika szak III. évfolyam, Budapest – ADU A Logo programozási nyelv X
X Bevezetés Ezt a bemutatót, mely a Logo programozási nyelvről szól, ajánlom mindazoknak akik a programozás alapjait már ismerik, így össze tudják hasonlítani a Logo-t más programnyelvekkel. X
X Tartalom A Logo bemutatása A Logo jellemzői A Logo mint automata nyelv A Logo mint funkcionális nyelv Lokális és globális változók Vezérlő szerkezetek Feltételes elágazások Ismétlés Rekurzió Ugrási utasítás Utasítás sor kiértékelése X
X A Logo bemutatása A programozási nyelvet és a hozzá kapcsolódó pedagógiai elveket elsősorban Seymour Papert amerikai matematikus dolgozta ki az 1960-as években. A LISP programozási nyelv mellékleteként jött létre. A Logo az interpreter (értelmező) nyelvek közé tartozik, azaz közvetlenül lehet utasítást adni és végrehajtatni. Grafikai része alapján az automata elvű nyelvek közé, szövegkezelő része alapján pedig a funkcionális nyelvek családjába sorolható. Pedagógiai környezet, „mikrovilág”, amelyben a gyerekek maguk tehetnek felfedezéseket.
X A Logo jellemzői A Logo jelentősen eltér a hagyományos, Neumann-elvű programozási modelltől. Kettő ettől lényegesen különböző koncepcióra építkezik. Automata elvű nyelvek Funkcionális nyelvek X
X A Logo mint automata nyelv Az automata nyelven írt programok végrehajtója egy vagy több automata. Pl.: rajzoló automata a Logoban. Az automata rendelkezik állapotokkal, valamint állapotok közötti átmenetet leíró függvényekkel. Definiálni kell az automata kezdeti vagy alapállapotát. Pl.: festőkar helye, festék színe. A rögzített nevű állapotkomponensekre általában állapotmódosító, állapotlekérdező utasítások léteznek. Pl.: menjen előre X
X A Logo mint automata nyelv Nincs hagyományos értelemben vett változó, mert a változók száma, típusa, elnevezése rögzített illetve utasítások paraméterei lehetnek. A paraméterek érték szerinti paraméterek, híváskor kapnak értéket. Eljárások, ciklusok paraméter függőek lehetnek. A paraméterfüggő ciklus csak egy primitív, ciklusváltozó nélküli, adott lépésszámú lehet. Minden más feladatra rekurzív eljárást célszerű írni. Automata elvű nyelvek képesek párhuzamos végrehajtásra. Ez a legtöbb Logo-verzióban még kihasználatlan. X
X A Logo mint funkcionális nyelv A funkcionális nyelveknél a program egy függvény, így a program futása a függvény kiértékeléséből áll. Nem léteznek változók, csak függvényparaméterekről beszélhetünk. Ezek egyszer, függvényhíváskor kapnak értéket, később csak felhasználjuk őket. Függvényparaméter lehet újabb függvény is. A program egy függvény, a program végrehajtása a függvény kiértékeléséből áll. X
X A Logo mint funkcionális nyelv A programstruktúrálásra következők állnak rendelkezésre: Összetett függvények Alternatív függvények Rekurzív függvények Konstans függvények A megőrzendő értékeket függvényparaméterként tárolhatjuk, így amire többször van szükség, azt vagy rekurzívan számítjuk ki, vagy pedig újabb függvényhívás paraméterének adjuk. X
X Lokális és globális változók Változók létrehozása: egy-egy szóhoz bizonyos tartalmat rendelünk. Globális változót csak akkor tanácsos használni, ha tényleg globálisan szükség van rá. A funkció paraméterek mindig lokálisak, azokat a segédértékeket amelyek csak egy funkcióra korlátozódnak, LOCAL segítségével mindig lokális értékként kell definiálni. A funkcióbemeneteknek ez a lokális jellege teszi lehetővé, hogy egymás után azonos paraméternévvel rendelkező funkciókat definiálhassunk anélkül, hogy ebből gondok származnának. X
X Vezérlő szerkezetek: Feltételes elágazások Egyágú programelágazás: IF [igaz-ág] Kétágú programelágazás: IF [igaz-ág] [hamis-ág] A Then és Else szavak feleslegesek, csak egy vagy két utasítás áll a feltétel után Kétszeres programelágazások esetében az olvashatóság könnyebb ha TEST szót használjuk az IF helyett. A TEST szóval kezdődő sor után az IFTRUE [igaz-ág] és az IFFALSE [hamis-ág] utasítássor következik. X
X Vezérlő szerkezetek: Ismétlés Két bemenete van, az első az ismétlések száma, a második egy lista különböző utasításokkal: REPEAT X
X Vezérlő szerkezetek: Rekurzió Az ismétlés egy fajtája. A rekurziók olyan programok, amelyek önmagukat hívják. A rekurzív műveletek a felhasználó által előállított funkciók, amelyek feldolgozásuk eredményét OUTPUT-tal adják tovább. Minden rekurzív művelet három részre osztható: Befejezési tétel; Feldolgozó rész; Ismételt programhívás módosított bemenettel. X
X Vezérlő szerkezetek: Ugrási utasítás A GO utasítás lehetővé teszi, hogy a programon belül több utasítássort átugorjunk. A LABEL –lel, melyet egy szó követ, a programban jelölhetjük a beugrás helyét. A GO utasítás bemenete a beugrási hely neve. Példa: Végtelen ciklusban kiírja „Indul a görög aludni” TO HUROK LABEL „Kezdet” PR ‘Indul a görög aludni’ GO „Kezdet” END X
X Vezérlő szerkezetek: Utasítás sor kiértékelése Egy utasítási sor kiértékelése és végrehajtása: RUN Bemenete egy lista, mely tulajdonképpen egy utasítássorozat Főleg a saját vezérlőszerkezetek előállításánál van jelentős szerepe X
X Felhasznált irodalom A Logo programozási nyelv Műszaki Könyvkiadó, Budapest, 1986 Comenius Logo prezentáció (Birinyiné Kleszó Anita III.évf.-os hallgató) X
X Köszönöm a figyelmet! „A számítógépprogram nem kívánságaid, hanem utasításaid szerint működik!” Weigel Szilvia X