 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Progetto] 15/05/2006 Clicca QUI per vedere il messaggio nel forum |
Reaper |
Qualkuno olte a me lo deve fare? :(
speriamo sia un po + facile del precedente... :x |
Drowne |
Speriamo non abbia robaccia tipo file e roba simile piuttosto.
Il vecchio non era impossibile |
soak |
pure io lo devo fare..sapete se i voti dei tre compitini valgono anche per il secondo semestre? |
Reaper |
oggi dovrebbe uscire... dov'è? |
*°§_-??? |
Non lo so, non riesco a trovarlo da nessuna parte. |
Skioda86 |
Per me manco si ricorda che oggi è la data di pubblicazione!!!!!
:D
:D
Diciamo che x me SARA' RINVIATO A DATA DA DEFINIRSI..!!!!:-D:-D
Anche perchè spero sia facile. Magari un pò più del primo!! Che anche se sono riuscito a farlo, mi è stato bocciato per non so quale motivo.
Non ho voglia di risbattermi a scervellarmi come ho fatto in passato!
:twisted: |
Drowne |
ma non è ancora uscito??? |
Reaper |
no...
sul sito del prof nn ce ne traccia... |
black.jack |
Boooooooh!!! o si è dimenticato o cosa molto molto improbabile l'ha pubblicato altrove -_-'
Ovviamente la data di consegna scalerà in base al ritardo di uscita, no??? :pensa: |
soak |
finalmente è uscito il nuovo progetto..che fantasia..MyAssembler..:(
.. |
Drowne |
Uscito... molto simile a quello vecchio per alcune cose.
Sembra fattibile ma decisamente MOLTO + lungo del precedente...
Vabbè stanotte o domani mattina inizio e vediamo cosa c'è di veramente bastardo :D
Buon lavoro a tutti ^_^ |
soak |
maledetta astrazione..:sbocco: |
Drowne |
Prime quattro classi fatte, ora ho fame :D
il resto mi sa che è bello complicato... |
manuel86 |
C'è per caso qualcuno che mi può spiegare a cosa servono queste parentesi graffe che il professore ha scritto nel suo programma???
Sequence ss0 = new Sequence(new Statement[2]){msg1, new Assign("b", seven)});
l1 = new Loop(new GreaterThan(rb, zero), new Sequence(new Statement[2]{a3, a2});
new Statement[6]{
new Assign("b", new Constant(-1)),
s1,
d2,
a1,
l1,
new PrintExpression(new ReadVariable("ab"))
}
catch(ExecutionException e) {e.printStackTrace();}
perchè il mio compilatore mi da 1 errore...non è che il professore ha sbagliato qualcosa??? |
soak |
anche a me le graffe non quadrano..:?
F:\Java\JCreator\MyAssembler\Program.java:32: ')' expected
Sequence ss0 = new Sequence( new Statement[2] { msg1, new Assign("b", seven)}); ^
F:\Java\JCreator\MyAssembler\Program.java:40: ')' expected
l1 = new Loop( new GreaterThan(rb, zero), new Sequence( new Statement[2]{ a3, a2}));
^
F:\Java\JCreator\MyAssembler\Program.java:40: ')' expected
l1 = new Loop( new GreaterThan(rb, zero), new Sequence( new Statement[2]{ a3, a2}));
^
F:\Java\JCreator\MyAssembler\Program.java:42: ')' expected
Sequence ss1 = new Sequence( new Statement[6]{ new Assign("b", new Constant(-1)), s1, d2, a1, l1, new ^ PrintExpression(new ReadVariable("ab"))});
4 errors
Process completed. |
soak |
F:\Java\JCreator\MyAssembler\Program.java:32: ')' expected
Sequence ss0 = new Sequence( new Statement[2] { msg1, new Assign("b", seven)});
^ |
zyx |
ma che c**** hanno combinato cos'è quella roba qua adesso come facciamo????? |
zyx |
Ma a qualcuno funziona il tutto? Almeno l'ultimo run senza contatre la stampa a video??? |
Skioda86 |
:D:D:D:D
Allora....
Sequence ss0 = new Sequence( new Statement[2] { msg1, new Assign("b", seven)});
l1 = new Loop( new GreaterThan(rb, zero), new Sequence( new Statement[2]{ a3, a2}));
l1 = new Loop( new GreaterThan(rb, zero), new Sequence( new Statement[2]{ a3, a2}));
Sequence ss1 = new Sequence( new Statement[6]{ new Assign("b", new Constant(-1)), s1, d2, a1, l1, new ^ PrintExpression(new ReadVariable("ab"))});
Strippandomi sul mio caro lettino, guardando il soffitto e sonnecchiando un pò...:cool:Mi sono letteralmente accorto di essere difronte ad una cosa che non avevo mai visto fino ad ora.
Mi sono accorto che non fa altro che indicare il contenuto dell'array come abbiamo sempre fatto:
int array[] = {1,2,3,4,5}
E lui in questo caso, DA COME HO CAPITO IO, ovviamente, non fa altro che spiegare cosa contiene l'array.
Sequence ss0 = new Sequence( new Statement[2] { msg1, new Assign("b", seven)});
In questo caso dice che creeiamo un array di 2 Statement e lo riempiamo nella cella 1 con un msg, e nella cella 2 con un assegnamento a b.
SEMPLICE
Premetto che ho svolto il progetto con la jdk 5, ma anche a me, come a voi da lo stesso errore..!!
Diciamo che il progetto l'ho fatto, ma....Il programma.java del profe non mi funge perchè mi dà gli stessi errori di soak.
Ora che ho dato un pò di mio agli altri vediamo se qualcuno (magari ancora il sottoscritto...) trova la soluzione per aggirare o correggere l'errore.
:D
GOOD WORK A TUTTI |
zyx |
ma guarda io la storia degli array l'ho modificata e l'ho costruita come ce l'ahnno insegnata anoi |
soak |
come hai risolto? ..elargisci un po' di codice |
zyx |
ma niente ho fatto così guarda:
Statement[] stat=new Statement[2];
stat[0]=msg1;
stat[1]=new Assign("b",seven);
Sequence sso=new Sequence(stat);
e così anche per gli altri e funziona ma nonso se il prof lo accetta... |
zyx |
ma poi se in quest codice assembler che dobbiamo fare se posso utilizzare solo l'operando presente sul top dello stack come faccio a fare la somma tra l'operando sul top dello stack e il suo successivo?????????????????????????????????? |
tyrdrummer |
io sono solo.. c'è qualche anima che lo vuole fare con me?? Tu Drowne?? |
hchiaf |
Se vuoi facciamo il progetto insieme! ancj'io sono da solo ! |
zyx |
ma qual'è il risultato del vostro programma?? |
Reaper |
Originally posted by hchiaf
Se vuoi facciamo il progetto insieme! ancj'io sono da solo !
pure io! :( |
manuel86 |
C'è x caso qualcuno che sa come si fa a far comunicare più hashtable tra di loro??? |
zyx |
sia nella classe expression che nella classe statement all'inizione metti protected static Hashtable state=Program.state |
paul85 |
Non so voi... ma a me no è chiarissimo come/dove inserire le "etichette" L1, L2 ecc.... |
zyx |
L1:istruzione1
L2:Istruzione 2
L3:JZERO:L5
L4:istruzione 4
L5:istruzione5
io ho fatto così |
paul85 |
Sì ma non ho ancora capito bene come organizzare tutte le stampe e come mantenere le etichette in ordine.
Riguardo alla classe PrintExpression:
L’implementazione del metodo toString() dovrà ritornare una stringa contenente il codice assembler necessario per valutare l’espressione sul top dello stack e stamparlo.
Come lo ricavo il codice assembler necessario per valutare l'espressione? |
zyx |
io l'ho pensato così LOAD(variabile che devi stampare) e poi PRINT perchè c'è scritto che LOAD mette la variabile sul top dello stack e PRINT stampa la variabile sul top dello stack. Ma a te che risultato di da? A me questo dopo tutto il codice assempbler mi scrive "a must be greater than 0 e 56. Giusto??? |
trygun82 |
Originally posted by manuel86
C'è x caso qualcuno che sa come si fa a far comunicare più hashtable tra di loro???
La hashtable è 1 sola dichiarata statica nel metodo principale. Questo xè se nn la crei statica ogni volta che la richiami nelle classi ne va a creare una nuova e questo impedisce di memorizzare insieme tt i dati. |
black.jack |
scusate...qualcuno di voi avrebbe modo di postare qualcosa che parli dell'hashtable....giusto x capire che è e come funziona...magari anche un esempio del libro!
Io ho la vecchia edizione e purtroppo non ne parla!!! :( |
trygun82 |
Per vedere come funziona una hashtable ti consiglio di guardarti la soluzione del prof del vecchio progetto,li la trovi.
Nel progetto quando il prof parla della 5 colonna, secondo voi cosa intende? x me dovrebbe essere che si lasciato 5 spazi prima di stampare la stringa della istruzione assembly. |
marcuss884 |
Qualcuno mi sa spiegare come va fatto il metodo toString() della classe Selection?? :? |
paul85 |
In effetti anke io non ho ben compreso la parte che parla della "quinta colonna".
E la spiegazione di alcuni metodi toString() la trovo poco chiara... |
marcuss884 |
Per "colonna" credo che intenda quanti spazi di tabulazione (tab)devi lasciare prima di scrivere qualcosa,il resto è poco chiaro.Io cercherò di guardare l'assembler e vedere come si scrivono le varie istruzioni |
paul85 |
Le etichette in ordine che metodo le stampa? |
zyx |
il toString solo che ho fatto un altro metodo che conta la lunghezza di ogni blocco di istruzioni. cmq secondo i miei calcoli e ne ho fatti un cifro le etichette dovrebbero essere nella posizione giusta |
Reaper |
ma nn ce il vecchio progetto risolto? |
soak |
ma scusate per quanto riguarda le parentesi graffe della classe Program:
("Sequence ss0 = new Sequence( new Statement[2] { msg1, new Assign("b", seven) } );")
come avete risolto? a me continua a dare lo stesso errore..:pensa:
("F:\Java\JCreator\MyAssembler\Program.java:32: ')' expected
Sequence ss0 = new Sequence( new Statement[2] { msg1, new Assign("b", seven)});")
è sbagliato il testo del profe?!:wall: |
soak |
te come l'hai risolto zyx? hai modificato la classe Program? |
Brk |
Qualche anima pia può postare il Program.java corretto???
Pare la settimana enigmistica quel listato... |
zyx |
si ma ragazzi non potete fidarvi cecamente di me. Magari bisogna perforza usare quello del prof e raflo funzionare in qualche modo |
Brk |
Al massimo diamo la colpa a te ^^
eheeeheheh
Brk |
Lazor |
Noi abbiamo già provato a scrivere un email al cazzola chiedendo chiarimenti sul main che non funziona...ma lui non ci ha risposto niente ancora. Ora gli abbiamo pure spedito il main postato qua per vedere se va bene usare quello o no.....
Vediamo cosa risponde... |
LiJay |
ciao a tutti:-D...una domanda...voi i dati li estraete dalla hashtable per poi inserirli sullo stack?alltrimenti non ho proprio capito a che mi serve l'hashtable....:?
grazie:D |
paul85 |
Mah... la storia dello stack non è un pò astratta? |
LiJay |
non so...ho trovato i lucidi della prof maria alberta alberti e so che c'è il metodo push(object o) che aggiunge gli elementi sullo stack;pop()che elimina il nodo in cima memorizzando quello che c'era prima;il boolean empty()che restituisce true se è vuoto,false altrimenti;stack()che costruisce uno stack vuoto....solo che me li utilizza con gli array...quindi pensavo di poterlo utilizzar anche con le hahtable...ma sono un pò in alto mare:(... |
zyx |
ma secondo me lo stack serve solo nella traduzione scritta del codice assembler ad esempio se io devo assegnare una costante ad una variabile allora farò così
load <valore della costante> questa istruzione mi permette di caricare sul top dello stack la costante e poi
store < nome con cui si vuole chiamere la costante> che salva nella variabile indicata lelemento sul top dello stack appunto il load he abbiamo fatto prima.... io l'ho inteso così |
LiJay |
a questa soluzione non avevo pensato...vuol dire che ho perso un'intera giornata a ragionare sulla stack...:evil::evil::evil:
pensando il progetto solo con le hashtable mi sembra più semplice...bah...:? |
zyx |
si ma io spero sia così perche se no devo buttare via tutto quello che ho fatto e a questo punto però dopo potrbbe succedere di tutto..... |
LiJay |
la tua soluzione sarebbe la più logica...ma nessuno sa se quest'anno il profe ha spiegato le stack?già le hashtable l'anno scorso non c'erano,mi pare... |
marcolino85 |
chi è di voi ha gia trattato le sezioni espressioni booleane e aritmetiche?
scusate nel main potrò fare ADD [3,5]
quindi se uso and (moltiplicazione) sarà 3*5 se uso or (addizione) sarà 8 se uso NOT (?)(?) che faccio l'opposto?
mentre a livello di espress booleane (???) ADD [3,5] come viene valutato?? |
Drowne |
Abbiamo appurato qualcosa sul program.java di malchiodi?
E' sbagliato il suo? |
soak |
io ancora non ho capito come dovrebbe essere il codice prodotto: !?
LOAD A , var1
LOAD B , var2
L1:ADD A , B |
soak |
io ancora non ho capito come dovrebbe essere il codice prodotto::shock:!?
LOAD A , var1
LOAD B , var2
L1:ADD A , B
STORE A
le virgole ci sono?
A e B sono TOP e TOP-1 o ho frainteso di brutto?! |
marcolino85 |
credo poi ci sia anche alla fine delle tue istruzioni
LOAD A , var1
LOAD B , var2
L1:ADD A , B
STORE A
magari ci sia un JZERO o un JUMP... |
soak |
cosa?:shock:!
è così?
// incondizionato
JUMP L1
// e non
0 JZERO L1
1 |
marcolino85 |
se non ricordo male quando facevo assembler JZERO ritorna alla label che hai fatto finchè il tuo contatore è zero, una volta raggiunto zero esce dal ciclo... |
paul85 |
Da quanto ho capito io... le Espressioni Booleane devono ritornare 1 se sono vere oppure 0 se sono false (anche se non ho capito benissimissimo come render il true o false se l'argomento passato non è già un'espressione booleana).
Mentre le operazioni aritmetiche ritornano il risultato dell'operazione. |
paul85 |
Un'altra cosa: secondo voi i metodi toString() sono tutti descritti bene?
Io non ho ben chari come x esempio dovrà esser la stringa ritornata dal toString di Constant (come molti altri....prendo questa x esempio.).
Dice: dovrà ritornare una stringa contenente il codice assembler necessario per mettere la costante sul top dello stack.
Come questo anche gli altri che sono spiegati allo stesso modo praticamente |
soak |
a questo punto direi che si può chiedere al profe di posticipare la data di consegna..cioè è già il 26 maggio:evil:!!! ..protesto.. |
soak |
..un altra cosa:
quando si usa la classe java.util.Hashtable senza specificare i tipi di dati ( Hashtable<String,Integer> ) il compilatore mi dà queste due linee:
--------------------Configuration: MyAssembler - J2SE 5.0 <Default> - <Default>--------------------
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Process completed.
+++++++++++++++++
anche con il progetto MyLanguage mi era sorto il dubbio..
la cosa si può ignorare?
+++++++++++++++++ |
zyx |
si ma quello mio modificato sarà pure sbagliato ma fa le stesse cose di quello che ci ha dato ora il prof |
soak |
sia fatta la sua volontà:D
cmq resta un bel casino..:( |
zyx |
ma quindi voi la storia degli stack come l'avete pensata? |
soak |
guarda nn ne ho idea :?
su wiki c'è la seguente definizione:
In informatica, il termine stack o pila viene usato in diversi contesti per riferirsi a strutture dati le cui modalità d'accesso seguono una politica LIFO (Last In First Out), ovvero tale per cui i dati vengono estratti (letti) in ordine rigorosamente inverso rispetto a quello in cui sono stati inseriti (scritti). Il nome di questa struttura dati è infatti la stessa parola inglese usata, per esempio, per indicare una "pila di piatti" o una "pila di giornali", e sottende per l'appunto l'idea che quando si pone un piatto nella pila lo si metta in cima, e che quando si preleva un piatto si prelevi, analogamente, quello in cima (da cui la dinamica LIFO), anche se è possibile inserire o prelevare elementi anche dalla coda, infatti più in generale la pila è un particolare tipo di lista in cui le operazioni di inserimento ed estrazione si compiono dallo stesso estremo.
--------------------------------------------------------------------------------------
cmq oggi finalmente ho ottenuto un primo risultato utile ed è uguale al tuo (etichette a parte):
--------------------Configuration: MyAssembler - J2SE 5.0 <Default> - <Default>--------------------
DECLARE a
DECLARE b
LOAD 7
STORE a
Variabile a gia' dichiarata
at Declare.run(Declare.java:15)
at Sequence.run(Sequence.java:17)
at Program.main(Program.java:59)
Process completed. |
zyx |
è vedi io la penso così con Declare il testo del progetto dice ch eviene assegnata un po di memoria alla variabile a inizializzandola a 0 e ce l'hai messa nell'hashtable con load carica la costante sul top dello stack e store salva la costante che è sul top dello stack in a. Dai è giusto così |
soak |
si in teoria lo stack è astratto..e non va implementato..nel senso che serve per comprendere il passaggio che hai spiegato..:birrozza: |
zyx |
se anche tu la pensi così allora io incomincio a fare la documentazione che l'altra volta mi ha segato perchè non ho consegnato documentazione e sorgenti su carta... vedi te |
soak |
sei molto più avanti io sono ancora alle prese con etichette e jump vari..è un macello..:pccrash: speriamo che il profe ci dia un po' di tempo in più se no è merda..
come hai fatto a gestire le espressioni sBooleane? |
zyx |
ma ho guardato un po il program.java e ho notato che le espressioni che vengono inserite nei costruttori delle espressioni booleane sono sempre espressioni che valgono o zero o uno quindi L'AND è la moltiplicazione L'OR controlli se tutte e due le op sono uguali a 1 ritorni 1 se no fai la somma, L'EQUAL se le espressioni sono uguali ritorni 1 se no 0 e il GT uguali, Il NOT se l'espressione è uguale a 1 torni zero se no torni 1. Tanto in AND OR e NOT nei costruttori vengono inserite solo espressioni booleane o variabili che valgono o uno o zero. anche perchè io non ho mai visto un AND tra 7 e 5. |
soak |
buono..così sembra ragionevole..certo che potrebbe spiegarsi meglio il sommo profe:malmust:.. poi bocciare per la documentazione!!!
..sono un po' in para.. |
zyx |
ma sono giuste le tichette no?? |
soak |
si ma non riesco ad andare avanti...non coapisco come impostare JUMP e JZERO!!!:x |
zyx |
si è per questo che io ho fatto un metodo che mi conta il numero di istruzioni del blocco ifStatement, quindi dopo JZERO ci piazzo quel numero... così anche per il jump |
Drowne |
Soak anche a me da un errore simile al tuo:
code: Exception in thread "main" java.lang.ClassCastException: Not
at Selection.run(Selection.java:14)
at Sequence.run(Sequence.java:12)
at Program.main(Program.java:54)
Come hai risolto? Dov'era il problema? |
Lazor |
Giusto per segnalare qualche novità...cè un nuovo errore nel testo del progetto! Stamattina ho ricevuto un e-mail dal prof. Cazzola che ora vi incollo qua.
Salve,
vi scrivo per segnalare che nel testo mancava la specifica di
un'istruzione assembler (EQN). Ho fatto l'upload del testo corretto sul
mio sito (reperibile anche da quello di Boldi).
Dovresti segnalarlo anche sul dsy visto che lo frequenti.
A proposito dando un occhio al DSY ho notato che state etichettando
tutte le istruzioni questo è sbagliato solo le istruzioni oggetto di un
salto vanno etichettate.
Grazie. |
soak |
in effetti mi sembrava strana sta cosa delle etichette!!!
a me dava un errore diverso dal tuo drowne.. il tuo sembra un errore di cast..
qualcuno può postare la nuova classe Program per fare chiarezza?! |
zyx |
Si am non è possiblie non è stato molto chiaro il testo del progetto |
zyx |
comè il vostro output |
Drowne |
Originally posted by soak
in effetti mi sembrava strana sta cosa delle etichette!!!
a me dava un errore diverso dal tuo drowne.. il tuo sembra un errore di cast..
qualcuno può postare la nuova classe Program per fare chiarezza?!
Bah ormai mi sono bloccato :(
Hai un PM, se mi aiuti ti sarò debitore a vita :D
Smack :oops: |
teolino85 |
Scusate ma non è abbastanza scandaloso che per la seconda volta nel secondo progetto dello stesso anno il prof sbaglia, se ne accorge a neanke una settimana di tempo! E comunque poi chi la prende in quel posto siamo noi che dobbiamo sclerare per gli sbagli del prof e poi magari veniamo anche segati per delle cose da poco!Io sarò anche troppo ribelle ma non mi va tanto questa cosa!Terrò comunque la testa bassa ma nel caso dovessi passarlo vado a Lurdes ad accendere un CERO!:evil: |
marcuss884 |
in effetti io avevo finito,mi mancava solo da fare la documentazione. Poi leggo che le etichette non vanno poste su tutte le istruzioni e ora mi tocca rivedere quasi tutto :wall: |
LiJay |
scusate un attimo...quando fa il primo loop
Loopl1=new Loop(new Or(new Equal(rb,zero),new GreaterThan(rb,zero)),a1);
perchè mette due argomenti nell'or?mica è unario e quindi ha un solo operando? |
marcolino85 |
oh ragazzi si raccolgono firme e si va dal prof!!! e si fa posticipare la data di consegna no?!?! |
Lazor |
Ma per curiosità a tutti voi come risultato finale viene fuori 56?? |
zyx |
a me viene fuori "a must be grater than 0" e "56" |
LiJay |
io sono ancora lontana dal compilare il main... |
zyx |
io l'ho finito però se volete posticipare a me va benissimo |
LiJay |
Originally posted by LiJay
scusate un attimo...quando fa il primo loop
Loopl1=new Loop(new Or(new Equal(rb,zero),new GreaterThan(rb,zero)),a1);
perchè mette due argomenti nell'or?mica è unario e quindi ha un solo operando?
ritratto è il not...scusate:cool: |
teolino85 |
Originally posted by marcolino85
oh ragazzi si raccolgono firme e si va dal prof!!! e si fa posticipare la data di consegna no?!?!
:roargh: Sarebbe la prima volta che lo vedo ascoltare qualcuno! |
|
|
|
|