Page 3 - Enterpress Magazin - 2022. 3-6.
P. 3

2022. május – december                                                                           3. oldal


                                                Zzzzip






                           A BASIC compiler - 2. rész




                                           Peter Hiner - 1986.



        RESTORE                                               rést, mégpedig úgy, hogy a WHEN EXCEPTION sort közvet-
                                                              lenül az elé a sor elé tesszük, amelybe vissza akarunk térni
        Ha adott egy sorszám (mint pl. a RESTORE 200 -ban), ez
        egy DATA-t tartalmazó sor kell, hogy legyen. Máskülönben   (például, egy INPUT sor elé).
        a ZZZIP hibaüzenetet ad.
                                                              CHAIN, IMAGE, PRINT USING, TRACE, TYPE

        RUN
                                                              Ezeket a parancsokat a ZZZIP nem fogadja el és használa-
                                                              tuk a fordítás alatt hibaüzenetet eredményez.
        Ezzel a paranccsal egy lefordított program újraindítható (az
        elejétől vagy egy kijelölt sorszámtól). Egy másik program
        (BASIC vagy lefordított) betöltésére és futtatására is használ-  6. beépített függvények
        ható, de egyik programból a másikba történő paraméterá-
        tadás már nem lehetséges.                             A ZZZIP megtart minden beépített függvényt, habár néhány
                                                              esetben korlátozza használatukat, ezekről külön említést te-
        STOP                                                  szünk. Talán meglepő lehet, hogy a ZZZIP megtartja a SIN
                                                              és COS trigonometrikus függvényeket, hisz ezek valójában
        Programban szereplő parancsként a STOP az END-hez ha-  nem kompatibilisek az egész értékű matematikával. Ezeket
        sonlóan kezelődik, s a BASIC-hez való kilépést eredménye-  használni is nehezebb, addig ne is foglalkozzunk velük, amíg
        zi. A STOP billentyű egy lefordított program megszakítására   nincs elegendő tapasztalatunk a ZZZIP működtetésében.
        is használható, akárcsak a BASIC-ben, de a lefordított prog-
        ram futása a megszakítási ponttól már nem folytatható a   BIN(X)
        CONTINUE segítségével. Újra kell indítani élőiről, a START
        utasítással.                                          Azokra az X értékekre, amelyek nem haladják meg a 32767
                                                              értéket, a függvény a szokásos módon használható a zá-
        EXCEPTION handling (megszakítás kezelése)             rójelben lévő változó vagy konstans értékű operandussal.
                                                              Nagyobb értékek esetén az operandus csak konstans lehet
        Az EXCEPTION szó már önmagában is azt jelenti, hogy   pl. BIN(11010101), s ezt az esetet a ZZZIP megkülönbözte-
        valami hiba következett be, s ezért nehéz ezt lekezel-  tetten kezeli.
        ni egy lefordított programban. Ennek ellenére a ZZZIP
        megkísérli  egy  jól  használható  EXCEPTION  kezelő  bizto-  CEIL(X), INT(X), IP(X), ROUND(X.N), TRUNCATE(X,N)
        sítását. Nem valószínű, hogy a fordítás során problémák
        lennének,  mivel  a  ZZZIP  minden  kapcsolódó  parancsot   Mivel  az  egész  értékű matematika  nem  veszi  figyelembe
        elfogad, beleértve a CONTINUE és a RETRY parancso-    a törteket, ezek a függvények gyakorlatilag nem csinálnak
        kat is. A lehetséges problémák futás során jelentkeznek.   semmit, egyszerűen az X értékét vissza.
        A CAUSE EXCEPTION parancs nyomán előállt helyzetek
        nem okozhatnak zavart, de ha egy másik forrásból, mint   EPS(X)
        például egy EXOS-beli hibaellenőrzésből bekövetkező
        EXCEPTION után próbáljuk használni a CONTINUE pa-     Ez a függvény mindig az 1 értéket adja vissza. Az 1 az egész
        rancsot, az eredményt illetően semmi biztosíték nincs!   értékű matematikában az értékváltás legkisebb egysége.
        A ZZZIP részéről két Különleges korlátozás áll fenn. Csak
        egyszintű EXCEPTION kezelés biztosított, más szóval a   EXLINE
        WHEN EXCEPTION parancsok egymásba skatulyázása nem
        megengedett és bármely második megszakítás egy hiba-  Egy lefordított programban a végrehajtás alatt álló sor szá-
        üzenetet, valamint a BASIC-be történő visszatérést ered-  mának a rekordja nem őrződik meg, s ezért ez a függvény
        ményez. Kis mértékben a RETRY parancs is különbözik -   mindig a 0 értéket adja vissza.
        a lefordított program ahelyett, hogy abba a sorba menne
        vissza, amelyikben az EXCEPTION előfordult, a legutóbbi    FP(X)
        WHEN EXCEPTION parancshoz fog visszatérni. Természe-  Mivel az egész értékű matematika nem veszi figyelembe a
        tesen megfelelő elrendezéssel elérhetjük a kívánt visszaté-  törteket, ez a függvény mindig a 0 értéket adja vissza.
   1   2   3   4   5   6   7   8