Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

projekt u dr Roska
Idź do strony Poprzedni  1, 2
 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 3 rok / 5 semestr - Kompilatory
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dzendras
Germański oprawca



Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów

Skąd: Chorzów

PostWysłany: Pon 21:19, 28 Sty 2008    Temat postu:

pobieżnie na plik y, na tablicę symboli, kilka przykładowych outputów
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Sobek
pijak



Dołączył: 06 Lut 2006
Posty: 323
Przeczytał: 0 tematów

Skąd: Lubaczów / ds16

PostWysłany: Pon 21:46, 28 Sty 2008    Temat postu:

W tablicy mamy podobno trzymać poziom zagnieżdżenia.

Np dla:

{

int a;

}
// i ciag dalszy programu
{

int a2;

}


I niby zmienne a i a2 są na tym samym poziomie, ale w różnych blokach. Jak to jakoś rozróżnić w tablicy symboli?


Ostatnio zmieniony przez Sobek dnia Pon 21:47, 28 Sty 2008, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Hetman
pijak



Dołączył: 06 Gru 2005
Posty: 127
Przeczytał: 0 tematów

Skąd: Ustka/Kraków

PostWysłany: Wto 0:15, 29 Sty 2008    Temat postu:

czy ostateczny termin oddania to jutro?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
exeman
Mistrz grilla



Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów

Skąd: znienacka

PostWysłany: Wto 1:01, 29 Sty 2008    Temat postu:

Sobek: Ale mysmy chyba mieli robic Pascala. W Pascalu poziomy zagniezdzenia sa wyznaczane tylko przez funkcje/procedury, bo nie mozna deklarowac zmiennej miedzy instrukcjami, a jedynie w sekcji var.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
yuuu
alkoholik



Dołączył: 18 Cze 2007
Posty: 593
Przeczytał: 0 tematów


PostWysłany: Wto 1:11, 29 Sty 2008    Temat postu:

@dzendras: tablice symboli to na ten nasz koncept czy ta w yaccu ;>?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Sobek
pijak



Dołączył: 06 Lut 2006
Posty: 323
Przeczytał: 0 tematów

Skąd: Lubaczów / ds16

PostWysłany: Wto 1:14, 29 Sty 2008    Temat postu:

exe zgadza się. Ale analogiczny przykłąd:

procedure fist()
var
a : integer;
begin
// bla
end;

procedure second()
var
a2 : integer;
begin
// bla bla
end;


Jak tu określamy poziom zagnieżdżenia?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dzendras
Germański oprawca



Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów

Skąd: Chorzów

PostWysłany: Wto 1:37, 29 Sty 2008    Temat postu:

yuuu napisał:
@dzendras: tablice symboli to na ten nasz koncept czy ta w yaccu ;>?
w yaccu
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
exeman
Mistrz grilla



Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów

Skąd: znienacka

PostWysłany: Wto 1:41, 29 Sty 2008    Temat postu:

No to roznie mozna, my z yuuu to realizujemy przez dwie tablice haszujace (multi hashe). Jeden to tablica symboli dla blokow niezamknietych, druga to tablica symboli dla blokow juz zamknietych.

Wchodzac w blok (przy naglowku procedure/funcion) zwiekszamy licznik blokow o jeden i jak napotkamy jakies deklaracje zmiennych to wrzucamy je do tablicy symboli blokow niezamknietych z numerem bloku, czyli tym jaki uzyskalismy zwiekszajac licznik bloku przy wejsciu do bloku.

Po wyjsciu z bloku (end funkcji/procedury) przenosimy symbole utworzone na tablicy symboli blokow niezamknietych (ktore zostaly utworzone w tym bloku) do tablicy symboli dla blokow juz zamknietych.

Rosek o tym mowil na wykladzie, nie da sie tego jasno wytlumaczyc w paru zdaniach, ale mam nadzieje, ze cos pomoglem.

Zamiast podwojnej tablicy symboli, mozna tez stosowac drzewo, ale ja tej metody nie wybralem.

Pozdro.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
dzendras
Germański oprawca



Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów

Skąd: Chorzów

PostWysłany: Wto 1:43, 29 Sty 2008    Temat postu:

Sobek: to wszystko jest w wykładzie opisane - włącznie z pseudokodem, nawet w miarę przejrzyście....
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Sobek
pijak



Dołączył: 06 Lut 2006
Posty: 323
Przeczytał: 0 tematów

Skąd: Lubaczów / ds16

PostWysłany: Wto 4:16, 29 Sty 2008    Temat postu:

Ok dzieki :) Porozkminiam jutro.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
exeman
Mistrz grilla



Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów

Skąd: znienacka

PostWysłany: Pią 21:59, 01 Lut 2008    Temat postu:

Wielu pewnie stosuje w nazwach tokenów podkreślenie u dołu na początek. Nie wolno stosować _NEW, ja użyłem i z 10 godzin szukałem błędu, czemu mi STL wyrzuca kosmiczne błędy.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Robson
zielony żul



Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów

Skąd: Z Lasu :]

PostWysłany: Pią 23:39, 01 Lut 2008    Temat postu:

Trzeba bylo pascala robic...:P
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 3 rok / 5 semestr - Kompilatory Wszystkie czasy w strefie EET (Europa)
Idź do strony Poprzedni  1, 2
Strona 2 z 2

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin