Page 6 - Enterpress Magazin - 2022. 1-2.
P. 6

6. oldal                                                                           2022. január – április





                                                Zzzzip


                                 A BASIC compiler - 1. rész


                                                Peter Hiner - 1986.



                                                              ZZZIP használatára vonatkozólag, de ha gondosan kö-
          Egy programkatalógusban a Zzzip 2.0-ról írnak, de   vetjük a kézikönyv utasításait, a ZZZIP-et könnyen fog-
          nálunk csak az 1.1-es verziót lehetett megszerezni.   juk kezelni és meglepően jó eredményeket érhetünk el.
          Peter Hiner, a Zzzip írója, aki 2010-ben talált rá az   Az első nyilvánvaló kérdés: „Hányszor lesz gyorsabb a le-
          Enterprise fórumra, szintén nem tud 2.0-ás verzió-  fordított programok futása?” A válasz attól függ, hogy mi-
          ról. Azonban létezett 1.2-es verzió, amit akkor meg   lyen típusú BASIC program került lefordításra. Egy olyan
          is osztott velünk a forráskóddal együtt, kifejezve ag-  program, amely véletlenszerűen megadott számokat ren-
          godalmát, hogy hosszú ideig egy régi verziót hasz-  dez sorba, körülbelül 50-szer lenne gyorsabb, mint a BA-
          náltunk, ugyanakkor örült, hogy még mindig van      SIC, míg egy string-eket sorbarendező program esetleg
          érdeklődés a programja iránt. Arra már nem emlé-    csak(!) 12-szer. Másrészt egy olyan program, amely külö-
          kezett, hogy miben tér el egymástól az 1.1-es és az   nösebb számolás nélkül ábrázol pontokat és vonalakat,
          1.2-es verzió. Utánanézett, és kiderült, Tim Box-szal   valószínűleg csak kétszer lenne gyorsabb a BASIC-nél (ami
          való levelezése során említette, hogy probléma volt   még mindig bizonyos haladást jelent). Ha BASIC progra-
          a gyökvonás függvényével, ezt javította ki az 1.2-es   munkat úgy módosítjuk, hogy a gépi kódú programoknál
          verzióban. Emlékei szerint egy olyan verzióba is be-  alkalmazott módszereket használja, sokkal gyorsabb ké-
          lekezdett, amely sprite-okat is kezel, ezt azonban   pernyőkezelést kaphatunk (a szalagon található BENCH.
          sajnos nem találta meg. Létezik egy ZIPX verzió is,   BAS program a gyors képernyőkezelésre ad példát).
          mely a Boxsoft basic bővítéshez készült, ezt szintén a   Szalagunkon a ZZZIP (mely három részből áll -ZIP, ZIPA,
          rendelkezésünkre bocsátotta.                        ZIPB) és a BENCH. BAS programok találhatók, ez utób-
          Peter maga is írt basic játékokat, melyek Zzzippel le-  bi néhány egyszerű rutint tartalmaz, s ezekkel szem-
          fordítva jól használhatók. Ő írta a Boxsoft (Screen-  lélteti a ZZZIP által biztosított sebességnövekedést.
          play) kazettákon megjelent Pacman, Orbs, Galaxians   Javasoljuk, hogy először a BENCH.BAS-t fordítsa le, mert
          játékokat.                                          ezáltal jobban megismerheti a ZZZIP használatához szük-
          A Zzzip néhány, játékokat tartalmazó kazetta B ol-  séges eljárást.
          dalán volt megtalálható hazánkban (Gratis Soft), leg-
          inkább így lehetett hozzájutni – vagy természetesen   Mi is az a compiler?
          cserepartnertől. Az Egyesült Királyságban külön ka-
          zettás programként került forgalomba. Még az En-    A compiler egy fordítóprogram, amely egy magasszintű
          terface anno hirdetett egy pályázatot, ahova gyorsí-  nyelven (esetünkben BASIC-ben) megírt programot for-
          tást igénylő basic programokkal lehetett nevezni, és   dít gépi kódú programmá (pontosabban pszeudó-kóddá).
          az első helyezett nyereménye a Zzzip lett volna. Endi   Így lehetőségünk van gyorsabb programok készítésére,
          Miner című játéka lett a győztes, a program listáját le   anélkül, hogy más programozási nyelvet kellene válasz-
          is közölték az újságban, de a nyereményt Endi azóta   tanunk. A compiler-eknek két csoportja létezik: integer
          sem kapta meg.                                      és real fordítók. Az integer fordítók csak egész számokkal
          A Zzzip magyar  nyelvű  leírása  régóta  rendelkezé-  tudnak dolgozni, cserébe viszont a lefordított program
          sünkre áll. Az angol nyelvű leírás létezéséről azonban   gyorsabban fut mint a real fordítókkal készített program. A
          2007-ig nem tudtunk, akkor John Fante fórumtár-     real fordítók nem csak egész számokkal tudnak dolgozni,
          sunk tette közzé.                                   ezért azonban a lassabb programfutásssal fizetünk.

                                                              2. A ZZZIP futtatása
        1. Bevezetés
                                                              A ZZZIP egyformán jól működtethető szalagon és leme-
        A ZZZIP egy Egész értékű BASIC Fordító. A BASIC-ben  zen. A 2.1 fejezet a szalagon történő használatot írja le, de a
        írt programot átalakítja gépi kódúra a gyorsabb futta-  lemezes használatra is alkalmazható a nyilvánvaló különb-
        tás  érdekében.  A  ZZZIP  a  nagyobb  sebességnöveke-  ségek (és a 2. 2 fejezet pontjainak) figyelembevételével.
        dést azáltal éri el és az „Egész értékű” elnevezés is arra
        utal, hogy a BASIC programban szereplő konstansok  2.1 Szalagos rendszerek
        és változók értékeit egész értékeknek tekinti (azaz a ti-
        zedespont utáni számjegyeket nem veszi figyelem-      Az indulás a BASIC képernyő-editorából történjék, miután
        be). Ennek következtében van néhány megkötés a  törölt belőle minden más programot. A ZZZIP futtatásá-
   1   2   3   4   5   6   7   8   9   10   11