Napravio sam u DELPHI-ju neki kompajler.
Postoje deklarisana imena (konstante, tipovi, varijable..) koja se nalaze u zapisu koji sadrzi pomenuto ime i niz drugih podataka koji definišu samo ime (tip, adresa, skup mogućih vrednosti tipa i t. d.).
Imam niz od ovih zapisa i ona se puni u deklaracijonoj sekciji, a koristi tokom daljeg kompajliranja.
Podaci o nekom imenu se nalaze u više zapisa. Na primer: varijabla sadrži mesto u nizu zapisa gde je definisan tip, sam tip je. recimo, složen, pa se njegova definicija nalazi u jednom ili više zapisa u nizu zapisa. Imena može biti i par hiljada, pa je dugačko pretraživanje niza zapisa da bi se pokupili svi potrebni podaci. Sortiranje zapisa po imenu bi napravilo konfuziju jer se menja redni broj svakog zapisa, a on je osnova za pristup određenom zapisu.
Da bih ubrzao pretraživanje, uradio sam ovo: napravio sam tabelu od 256 dinamičkih niziva. U dinamičke nizove upisujem redni broj zapisa određenog imena. Od samog imena preko neke kvazi heš funkcije generišem vrednost tipa byte koja određuje u koji dinamički niz će biti upisan redni broj njenog zapisa u nizu zapisa.
Pristup je sada brži: kada nađem dinamički niz (preko kvazi heš funkcije) onda pretražujem samo njega. U idealnom slučaju dinamički niz treba da ima 256-ti deo ukupnog broja imena.
Međutim, to nije baš tako. Kvazi heš funkcija (zovem je tako jer sam je ja pisao) ne daje ravnomernu raspodelu. Nisam radio statističku obradu da bih prezentirao kakvu sam raspodelu dobio.
Ako me neko razume, i ako mu je ova problematika bliska, bio bih vrlo zahvalan ako me uputi na neku heš funkciju koja bi bila primenljiva za ovo što mi treba.
Pozdrav.
Postoje deklarisana imena (konstante, tipovi, varijable..) koja se nalaze u zapisu koji sadrzi pomenuto ime i niz drugih podataka koji definišu samo ime (tip, adresa, skup mogućih vrednosti tipa i t. d.).
Imam niz od ovih zapisa i ona se puni u deklaracijonoj sekciji, a koristi tokom daljeg kompajliranja.
Podaci o nekom imenu se nalaze u više zapisa. Na primer: varijabla sadrži mesto u nizu zapisa gde je definisan tip, sam tip je. recimo, složen, pa se njegova definicija nalazi u jednom ili više zapisa u nizu zapisa. Imena može biti i par hiljada, pa je dugačko pretraživanje niza zapisa da bi se pokupili svi potrebni podaci. Sortiranje zapisa po imenu bi napravilo konfuziju jer se menja redni broj svakog zapisa, a on je osnova za pristup određenom zapisu.
Da bih ubrzao pretraživanje, uradio sam ovo: napravio sam tabelu od 256 dinamičkih niziva. U dinamičke nizove upisujem redni broj zapisa određenog imena. Od samog imena preko neke kvazi heš funkcije generišem vrednost tipa byte koja određuje u koji dinamički niz će biti upisan redni broj njenog zapisa u nizu zapisa.
Pristup je sada brži: kada nađem dinamički niz (preko kvazi heš funkcije) onda pretražujem samo njega. U idealnom slučaju dinamički niz treba da ima 256-ti deo ukupnog broja imena.
Međutim, to nije baš tako. Kvazi heš funkcija (zovem je tako jer sam je ja pisao) ne daje ravnomernu raspodelu. Nisam radio statističku obradu da bih prezentirao kakvu sam raspodelu dobio.
Ako me neko razume, i ako mu je ova problematika bliska, bio bih vrlo zahvalan ako me uputi na neku heš funkciju koja bi bila primenljiva za ovo što mi treba.
Pozdrav.