EssaysForStudent.com - Free Essays, Term Papers & Book Notes
Search

Implementation of Macroprocessors Using Java

By:   •  Study Guide  •  1,213 Words  •  January 22, 2010  •  1,013 Views

Page 1 of 5

Join now to read essay Implementation of Macroprocessors Using Java

SISTEMSKO PROGRAMIRANJE

Sadrzaj:

1. Opis problema

2. Opis resenja i uputstvo za pokretanje

3. Listing programa

4. Karakteristicni ulazi i dobijeni izlazi

1. OPIS PROBLEMA

Implementira se makroprocesor sa ugnezdavanjem makropoziva, po sledecem algoritmu:

d := false (* definition mode switch *)

e := 0 (* expansion-level counter *)

read line from input

while line != empty do

if d then (* in definition mode *)

case opcode of

prototype: prepare formal parameter list

'MCEND': d:=false

other: replace i-th formal parameter by ’#i’

write line to new macro definition

else (* in copy mode or expansion mode *)

case opcode of

prototype:

macro name: e:=e+1

prepare actual parameter list

push actual parameter list on actual parameter stack

'MCDEFN' : d:=true

allocate new macro definition

'MCEND': pop actual parameter list (level e) from actual parameter stack

e:= e-1

other: write line to output

if (e>0) (* in expansion mode *)

read line from old macro definition named in current macro call

replace ’#i’ by actual parameter list(i) from actual parameter stack

else read line from input

Na steku stvarnih parametara je potrebno cuvati i povratnu liniju odakle treba nastaviti citanje ulaza po zavrsetku ekspanzije ugnezdenog poziva (nije precizirano u algoritmu).

2. OPIS RESENJA I UPUTSTVO ZA POKRETANJE

Opis Resenja

Implementacija je radjena u Javi.

Od nestandardnih struktura podataka koriscena je struktura Element, koja predstavlja element na steku stvarnih parametara, broj linije odakle treba nastaviti citanje po zavrsetku ekspanzije ugnezdenog poziva.

Obradjene greske u ulazu:

• MCEND bez MCDEFN

• MCDEFN bez MCEND

• Ulaz ne pocinje sa MCDEFN

• Na mestu prototipa je rezervisana rec

• Makro nije definisan

• Neusaglasen broj parametara u pozivu i definiciji makroa

Po nailasku na gresku , informacija o njoj se ispisuje , i program se prekida!

Napomena: Postoji spisak instrukcija koje se prihvataju. On se nalazi u okviru funkcije jeRezervisanaRec. Ako ulazni fajl sadrzi neku instrukciju koja se ne nalazi u datom spisku smatra se da dati makro nije definisan.

Uputstvo za pokretanje

Duplim klikom na PrimerSaPredavanja.bat , pokrece se glavni program za tekstualni ulaz iz primera sa predavanja (Ulaz.txt).

Program se moze pokrenuti i iz komandne linije naredbom oblika:

java Main BiloKojiUlaz.txt

3. LISTING PROGRAMA

import java.io.*;

import java.util.*;

import

Download as (for upgraded members)  txt (15.6 Kb)   pdf (309.3 Kb)   docx (18.7 Kb)  
Continue for 4 more pages »