Tudd Intuíció, előadás, szimbólumtáblákat

Kivonat: Ez az előadás vizsgálja a szimbólum táblázatokat. Rassmatrivayutsya néhány alapvető módon szimbólum táblázatok a fordító: egy asztal azonosítója, forgalomba asztalok, bináris fák, és végrehajtása a blokk felépítése. Is ad programkód-példákat és grafikus értelmezése szimbólum táblázatok és azonosítók.

A folyamat során a fordító információt tárol a program objektumokat a táblázat a speciális karakterek. Általános szabály, hogy az információkat az egyes telephely két fő elemből áll: az objektum nevét és leírását az objektumot. Információ programobjektumokat kell megszervezni oly módon, hogy megtalálják volt a lehető leghamarabb, és a szükséges memóriát a lehető legkevesebbet.

Ezen túlmenően a további követelmények a szervezet az információ lehet a része a programozási nyelv. A nevek egy bizonyos körét. Például, a mező bejegyzéseket egyedinek kell lennie a szerkezet (vagy struktúrák szinten), de eltérhet az objektum nevét rögzít (vagy más felvételi szint). Ugyanakkor, a mező nevét ki lehet nyitni, hogy a csatlakozás az üzemeltető, és akkor lehet, hogy a neve konfliktus (vagy félreérthető értelmezése a neve). Ha a nyelv egy blokk felépítése, szükség van egy olyan eljárás információ tárolására annak érdekében, hogy egyrészt tartóbiokk mechanizmus láthatóságát, másrészt - hatékonyan szabad memória a kilépő a blokk. Egyes nyelvek (pl Ada) ugyanabban az időben (egyben) látható több objektumot az azonos nevű, a másik, ez a helyzet elfogadhatatlan.

Nézzük meg néhány alapvető módja szimbólum táblázatok a fordító: egy asztal azonosítója, forgalomba asztalok, bináris fák, és a végrehajtás a blokk felépítése.

szimbólumtáblát

Mint már említettük, tájékoztatás a tárgy általában két részre oszlik: a nevet (ID) és leírását. Ha az azonosító korlátozódik a hossza (vagy név, amelyeket az első azonosítót egy korlátozott számú karakter), a karakter táblázatot lehet elrendezve, mint egy egyszerű tömböt a sorok a fix hosszúságú, ábrán látható. 7.1. Egyes bemenetek is lehet alkalmazni, néhány - ingyenes.

Egyértelmű, hogy egyrészt a tömb mérete kisebb legyen, mint ahány azonosítók, amelyek valóban előfordul a programban (egyébként az asztal túlcsordul); Másodszor, mint egy szabály, hogy a potenciális több különálló azonosítók lényegesen nagyobb méretű a táblázat.

Tudd Intuíció, előadás, szimbólumtáblákat

lehetőség - az első karakter azonosítója bekerül a tömb hossza.

egyengetőasztal

Az egyik leghatékonyabb módja szervezi a szimbólum olyan tábla elrendezés (vagy hash tábla). Keresés ebben a táblázatban lehet újra szervezésében elhelyezést. Ennek lényege a következő.

A szimbólum táblázat egy fix méretű tömbben N. Az azonosítók tárolható mind a szimbólum táblából, és egy külön asztalon azonosítók.

Tegyük fel, hogy meg akarjuk találni a táblázatban id azonosítót. Ha egy elem az asztal h1 (id) számú üres, az azt jelenti, hogy nincs azonosítója a táblázatban. Ha van elfoglalva, ez nem jelenti azt, hogy az id azonosítót a táblázatban szerepel (általában) egy csomó azonosítók lehetnek azonos értékű összehangolás funkciót. Annak meghatározásához, hogy mi vagyunk a megfelelő azonosító talált összehasonlítani h1 id táblázat bejegyzés (id). Ha ezek egyenlőek - az azonosító megtalálható, ha nem -, hogy folytatnunk kell keresni tovább.

A keresés folytatásához az alábbi függvény elrendezés h3 (h2), h4 (H3), stb Jellemzően, hi = h2 i> = 2. Az érv függvény h2 jelentése egész szám, az a [0, N - 1], és más módon elrendezettek. Íme három lehetőség.

  1. h2 (i) = (i + 1) mod N. Vegyük a következő (ciklikusan) tömb. Ez a lehetőség rossz, mert „csoportos” megszállt elemekkel. alkotnak egymást követő részei és részt ezen belül keresési terület válik lényegében lineáris.
  2. h2 (i) = (i + k) mod N., ahol k és n relatív prím. Alapvetően ez az előző kiviteli alak, de az elemek nem halmozódnak egymás sejtekben és „terjed”.
  3. h2 (i) = (a * i + C) mod N - "pszeudo-véletlen". Itt, c és N kell relatív prím, b = a-1 többszöröse p bármely p prímszám. egy osztója N. b többszöröse 4. Ha N többszöröse 4 [6].

Keresés elhelyezési táblázat leírható a következő függvényt:

IdComp (H, Id) függvény összehasonlítja egy táblázat elem bemenetén az azonosító H és generál 0, ha azok egyenlőek. Üres függvény (H) generál NULL. ha a bemeneti H üres. Keresés funkció kijelöli a paramétereket igen Pointer és a következő értékeket rendre:

hamis, NULL - ha szükséges azonosító nem található, az asztal nincs hely, és

hamis, P - ha a szükséges azonosító nem található, de a táblázat tartalmazza a belépés ingyenes P.

Bevitele elem lehet végezni az alábbi funkciók a táblázatban:

Kapcsolódó cikkek