Deepclone weitgehen eliminieren #174

Closed
opened 2015-07-09 02:10:45 +00:00 by pl · 3 comments
Owner

Idee: Man könnte viele Deepclone, deepcopy, selbst implementierte clone's
eliminieren, wenn man in Schritt 5: Einsetzen der Subst Regel folgende Zeile einfügt:

vecpair = vecpair.stream().map(x -> x.clone()).collect(Menge::new, Menge::add, Menge::addAll);

Damit wird sicher gestellt, dass beim Subst ein neues Element erzeugt wird.

Alle Deepclone, deepcopy, selbst implementierte clone's könnten möglicherweise elimiert werden. Ggf. müssten Hülsen neu erzeugt werden z.B. bei der Bildung des Kartesischen Produkts in Schritt 4, Teil 1 erzeugten Vektoren das Kartesische Produkt

//helpvp = copyMengePair(vecpair2);
//helpvp.addAll(copyMengePair(vecpair1));
//bigCartProductErg.addElement(helpvp);
helpvp = new Menge ();
helpvp.addAll(vecpair2);
helpvp.addAll(vecpair1);
bigCartProductErg.addElement(helpvp);

Idee: Man könnte viele Deepclone, deepcopy, selbst implementierte clone's eliminieren, wenn man in Schritt 5: Einsetzen der Subst Regel folgende Zeile einfügt: vecpair = vecpair.stream().map(x -> x.clone()).collect(Menge::new, Menge::add, Menge::addAll); Damit wird sicher gestellt, dass beim Subst ein neues Element erzeugt wird. Alle Deepclone, deepcopy, selbst implementierte clone's könnten möglicherweise elimiert werden. Ggf. müssten Hülsen neu erzeugt werden z.B. bei der Bildung des Kartesischen Produkts in Schritt 4, Teil 1 erzeugten Vektoren das Kartesische Produkt //helpvp = copyMengePair(vecpair2); //helpvp.addAll(copyMengePair(vecpair1)); //bigCartProductErg.addElement(helpvp); helpvp = new Menge<Pair> (); helpvp.addAll(vecpair2); helpvp.addAll(vecpair1); bigCartProductErg.addElement(helpvp);
Owner

Änderungen wurden implementiert. Es wird jetzt nur noch vor dem Substituieren geklont.

Allerdings Fehler im LambdaTest13: ( plugindevelopment.TypeInsertTests.LambdaTest13 )

class Matrix{
op(m){
return (f) -> f.apply(m,this);
}
}

Hier gibt es keine korrekte Lösung (Fehler in Typinferierung)

Änderungen wurden implementiert. Es wird jetzt nur noch vor dem Substituieren geklont. Allerdings Fehler im LambdaTest13: ( plugindevelopment.TypeInsertTests.LambdaTest13 ) class Matrix{ op(m){ return (f) -> f.apply(m,this); } } Hier gibt es keine korrekte Lösung (Fehler in Typinferierung)
Author
Owner

import com.rits.cloning.Cloner; eliminieren

An verschiedenen Stellen müssen die kartesischen Produkte überprüft werden, ob überall deepCopy nötig ist.

import com.rits.cloning.Cloner; eliminieren An verschiedenen Stellen müssen die kartesischen Produkte überprüft werden, ob überall deepCopy nötig ist.
Owner

Unify überarbeitet. Kein Deepclone mehr notwendig

Unify überarbeitet. Kein Deepclone mehr notwendig
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#174
No description provided.