• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

Konštrukcie preklada?ov

Started by ApokalypS, 14.10.2009, 01:40:52

« predchdzajce - alie »

K5

Tak s tymi %s pred getfield a putfield to je jedno, lebo getfield a putfield ma parametre za.
Konkretne v 7. cviku to malo vyzerat asi tak ze "get(put)field ahoj j I" a tieto 3. parametre sa doplnaju cez 3-krat "%s"
aload_0 a aload 0 robia to iste az na to ze prva moznost je pre pamat menej narocna lebo je to prikaz bez parametru. :)

kOsTi

to %s pred put/getfield je pre $1.kod (teda napr v: Vyraz BODKA ID INC ) co prave zabezpeci to aload 0 takze ho tam uz ty davat nemusis, cize tam kde ma ist aload 0 das ted kod vyrazu
:trestac:

Eghinka

no dobre a ked mam tych %s viac pred get(put)filed? to co znamena? napr. pri Vyraz BODKA ID  ROVNE Vyraz su dve %s pred putfield :-)

Eghinka

myslim tym preco musim mat aload 0 getfield aload 0 aload 0 getfield sipush 1 iadd putfield a nie iba aload 0 getfield sipush 1 iadd putfield ?

SSPPYY

#54
ZASOBNIK (nalavo je dno):
1.  %s                     - vlozenie mena instancie triedy
2.  %s getfield          - vlozenie operacie
3.  H                       - vykonanie operacie a vlozenie hodnoty
4.  H %s                  - vlozenie mena instancie triedy
5.  H %s %s             - vlozenie mena instancie triedy
6.  H %s %s getfield  - vlozenie operacie
7.  H %s H               - vykonanie operacie a vlozenie hodnoty
8.  H %s H sipush 1   - vlozenie operacie s atributom 1
9.  H %s H 1            - vykonanie operacie
10.  H %s H 1 iadd    - vlozenie operacie
11.  H %s HI            - vykonanie operacie a vlozenie vysledku suctu
12.  H %s HI putfield - vlozenie operacie
13.  H                     - vykonanie operacie

Teda na konci sa hodnota HI ulozila cez putfield do ID a na vrchole zasobnika ostala hodnota H este pred jej inkrementaciou co je podstatou operacie ID++.
(H - je hodnota ID, HI je inkrementovana hodnota ID)

Nutnost viacerych %s vypliva z formatu instrukcii getfield a putfield. Proste si treba poriadne nastudovat inst_jal.doc.


Eghinka

Quote from: SSPPYY on  08.11.2009, 22:01:24
ZASOBNIK (nalavo je dno):
1.  %s                     - vlozenie mena instancie triedy
2.  %s getfield          - vlozenie operacie
3.  H                       - vykonanie operacie a vlozenie hodnoty
4.  H %s                  - vlozenie mena instancie triedy
5.  H %s %s             - vlozenie mena instancie triedy
6.  H %s %s getfield  - vlozenie operacie
7.  H %s H               - vykonanie operacie a vlozenie hodnoty
8.  H %s H sipush 1   - vlozenie operacie s atributom 1
9.  H %s H 1            - vykonanie operacie
10.  H %s H 1 iadd    - vlozenie operacie
11.  H %s HI            - vykonanie operacie a vlozenie vysledku suctu
12.  H %s HI putfield - vlozenie operacie
13.  H                     - vykonanie operacie

Teda na konci sa hodnota HI ulozila cez putfield do ID a na vrchole zasobnika ostala hodnota H este pred jej inkrementaciou co je podstatou operacie ID++.
(H - je hodnota ID, HI je inkrementovana hodnota ID)

Nutnost viacerych %s vypliva z formatu instrukcii getfield a putfield. Proste si treba poriadne nastudovat inst_jal.doc.
pozri ked som si to doc-ko nepresla aspon 100krat tak ani raz ;-) ale proste som to nevedela pochopit, takze ti velmi pekne dakujem ;-)
este keby niekto nerozumel, tak tu je popis od Plocicu:
- putfield potrebuje zasobnik v tvare:
    |               |
    |---------------|
    | hodnota (j+1  |
    |---------------|
    | ref.na objekt |
    |---------------|
teda je potrebna ta instrukcia (alebo postupnost onstrukcii vseobecne),
ktora vlozi referenciu na aktualny objekt do zasobnika, pricom v kode
musi byt pred instrukciami, ktore vytvoria hodnotu => kvoli tomu je tam
to aload_0 dvakrat (presnejsie je ta postupnost instrukcii, kora
zodpoveda prekladu symbolu Vyraz ($1.kod) - v priklade je to "this",
co zodpoveda aktualnemu objektu  apreto je tam to aload_0.
- kedze vyznam operatora ++ je taky, ze sa ma inkrementovat hodnota
nejakej premennej (tu instancna premenna) - to je tam zatial urobene,
ale navyse vysledkom je povodna hodnota premennej - preto je potrebne
dat do zasobnika povodnu hodnotu - a to sa da urobit tak, ze sa ta
hodnota premennej da najskor do zasobnika, preto je na zaciatku
este "aload_0"+"getfield    ahoj j I"

maTo

hou ja zabudol poslat, to sa da dodatocne?

puq

Quote from: maTo on  10.11.2009, 01:18:23
hou ja zabudol poslat, to sa da dodatocne?
ta sme dvaja :D

Tanka

traja a kebyze si teraz neprecitam ani si nespomeniem :D

sri

nestresujte ... ja nemam od piateho poslane  8)  ;D

staninko

a to je povine toto posielat?

sri

Quote from: staninko on  10.11.2009, 05:32:01
a to je povine toto posielat?
:evica:  :evica:
ale ked mam pravdu povedat, tak ani neviem ;D

staninko

ta ked nam povedal zeby sme neposielali somariny len funkcne tote zadania , a ze to sa bodovat nebude

sri

no podla rozpisu bodov za tie ulohy nie je nic ... ale "oficialne" je to potrebne odovzdat na ziskanie zapoctu, tak neviem

Eghinka

odovzdavat sa to da v pohode aj po termine  8) myslim, ze je to iba 'donucovaci' prostriedok - aspon co to do toho pozriet aby sme mali sajnu o com bude rec vo velkom zadani  bv

antikleia

Caute, blizi sa druha zapoctovka, mame nejake vypracovane otazocky?

Dik :)

McLarenPP

Quote from: antikleia on  13.11.2009, 01:10:10
Caute, blizi sa druha zapoctovka, mame nejake vypracovane otazocky?

Dik :)
Este som nevypracoval, najneskor 3 dni pred zapoctovkou to tu hodim, aby sa nikto nestazoval na nedostatok casu na ucenie :)

Eghinka

lenivost nasa kazdodenna neopustaj nas  bv staci si precitat tych par slajdov z prednasok..tie otazky na zapoctovkach su do jednej vytahane iba z tych slajdov  8)

ApokalypS

80% mozgu človeka tvorí kvapalina, v mojom prípade brzdová..

CHCEM S5 :zuzka: STARY IS :zuzka: !!!!
http://www.tu-ke.com/forum/o-nicom/otvoreny-list-vedeniu-firmy-dupress-(dodavatel-mais)/

kOsTi

este sa nevie lebo odpadnu hodiny a chcu aby to bolo v jednom tyzdni vsetky skupiny
:trestac:

puq

Quote from: Eghinka on  13.11.2009, 17:04:18
lenivost nasa kazdodenna neopustaj nas  bv staci si precitat tych par slajdov z prednasok..tie otazky na zapoctovkach su do jednej vytahane iba z tych slajdov  8)

no tu nejde o lenivost ;) tu by som to skor nazval ze z tych super perfektne prehladnych prednasok sa to tak lahko neuci ;)

Payne

vie mi neikto povedat co ma vypisat applet z 7 cvika? lebo odovzdal som riesene ale ako tak pozeram tak celkom bludy vypisuje...

buhehe

#73
je to napisane v Ahoj.jmm v komentaroch, ak teda myslis toto

btw vie niekto co to je za chyba?
[KPI -YACC Chyba] zadanie.y(83): je nutne vratit hodnotu, kedze LHS ma typ

pepco

11. týždeň - zápočtový test č.2