Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++ (auch C++0x und C++11) ::  brainfuck-Compiler TMP style  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Unregistrierter





Beitrag Unregistrierter 20:54:23 22.05.2012   Titel:              Zitieren

314159265358979 schrieb:
Zeig doch mal her den Matheparser.


Wenn du sicher bist, dass dein Magen das aushält... ich mach grad nen neuen Post.
Unregistrierter





Beitrag Unregistrierter 21:13:18 22.05.2012   Titel:              Zitieren

http://ideone.com/O77pp

Den Dingensda am Anfang hab ich gebastelt, da mir die Reihenfolge der Speicherfreigabe (und der Destruktor-aufrufe) herzlich egal ist und ich keine lust hab es selbst zu machen... (boost::ptr_set o. ä. hab ich ja nicht ^^)


Zuletzt bearbeitet von Unregistrierter am 21:17:30 22.05.2012, insgesamt 2-mal bearbeitet
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
Beitrag 314159265358979 Mitglied 21:16:39 22.05.2012   Titel:              Zitieren

Mal abgesehen, dass man da jetzt noch viel verbessern kann: Was hat das mit TMP zu tun? :confused:
Unregistrierter





Beitrag Unregistrierter 21:18:25 22.05.2012   Titel:              Zitieren

314159265358979 schrieb:
Mal abgesehen, dass man da jetzt noch viel verbessern kann: Was hat das mit TMP zu tun? :confused:


Nein, es ist ein normaler Parser. Aber TMP werd ich jetzt auch mal versuchen :D Ich wusste nicht, dass du einen TMP wolltest ^^


Zuletzt bearbeitet von Unregistrierter am 21:22:10 22.05.2012, insgesamt 1-mal bearbeitet
Unregistrierter





Beitrag Unregistrierter 21:21:59 22.05.2012   Titel:              Zitieren

Aber wie soll ich output zur Compile-Zeit machen? Ein static_assert(0, "..."); oder wie...? :confused:
Unregistrierter





Beitrag Unregistrierter 21:25:45 22.05.2012   Titel:              Zitieren

Ah nee, ich werd mich wohl mit boost::mpl auseinandersetzen müssen...
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
Beitrag 314159265358979 Mitglied 21:29:04 22.05.2012   Titel:              Zitieren

Was willst du denn da ausgeben? Du brauchst doch nur eine Zahl als Ergebnis.
C++:
std::cout << eval<'2', '+', '2'>::value;

Oder so ähnlich.
Unregistrierter





Beitrag Unregistrierter 21:35:29 22.05.2012   Titel:              Zitieren

314159265358979 schrieb:
Was willst du denn da ausgeben? Du brauchst doch nur eine Zahl als Ergebnis.
C++:
std::cout << eval<'2', '+', '2'>::value;

Oder so ähnlich.


Hmm, gut :) neues Ziel für die nächsten eineinhalb Stunden.

Tja, schon ein wenig weitergekommen. Aber eigentlich sehe ich so etwas wie temp-programmierung als unnötig - ich mein', wozu brauchst du es in Applikationen? :p Oder es ist einfach lustig, sich in sowas auszukennen :D


Zuletzt bearbeitet von Unregistrierter am 22:41:35 22.05.2012, insgesamt 2-mal bearbeitet
otze
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.01.2004
Beiträge: 7177
Beitrag otze Mitglied 00:11:57 23.05.2012   Titel:              Zitieren

Hacker schrieb:

Tja, schon ein wenig weitergekommen. Aber eigentlich sehe ich so etwas wie temp-programmierung als unnötig - ich mein', wozu brauchst du es in Applikationen? :p Oder es ist einfach lustig, sich in sowas auszukennen :D

Vielleicht sollte man sich vorher klar sein, warum man etwas tut, bevor man es tut. TMP in dieser Form hat vielleicht eine Handvoll Anwendungen. Hauptsächlich geht es darum, das es geht und das man damit unglaublich schlimme Bugs in einem Code verstecken kann. Dass das hier relativ sinnlos ist, wurde aber schon an anderer Stelle angemerkt.

Die Frage ist: warum machst du es? Von dem was ich bislang so von dir gelesen habe, hab ich nicht den Eindruck, dass das etwas ist was a) in deinem Kerninteressenbereich liegt (im Gegensatz zu Pi) und b) dich in deiner Entwicklung als Programmierer weiter bringt.


Was TMP angeht tüftel ich gerade etwas an einem intelligenteren Ansatz für expression templates rum. Es geht darum, Regeln zu definieren, um ein expression template in eine Normalform zu bringen. Das heißt, anstatt den Ausdruck 1:1 in sein (dummes) expression template umzuformen suche ich eine möglichst einfache Darstellung, die es zum einen dem Compiler einfach macht zu optimieren und zum anderen mir es einfacher macht, die richtigen Algorithmen zu wählen. Anwendung ist lineare Algebra, insbesondere elementweise Transformationen von Vektoren/Matrizen. Long Term überlege ich, ob es nicht sogar möglich ist, aus so einer Normalform einen Kern für GPU-Programmierung zu generieren. Aber wie gesagt: das ist hauptsächlich im Planungsstadium. Ich habe leider kaum Zeit, um das zu Programmieren.

_________________
Jesus Christus! Da blickt ja kein Mensch mehr durch.
cooky451
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 6869
Beitrag cooky451 Mitglied 07:44:33 23.05.2012   Titel:              Zitieren

Hacker schrieb:

Tja, schon ein wenig weitergekommen. Aber eigentlich sehe ich so etwas wie temp-programmierung als unnötig - ich mein', wozu brauchst du es in Applikationen? :p Oder es ist einfach lustig, sich in sowas auszukennen :D

TMP an sich würde ich nicht als unnötig sehen. Der größte Vorteil ist wohl, dass man mit etwas Getrickse und Operatorüberladungen Dinge bauen kann, die man in der Sprache sonst nur schwer ausdrücken konnte. (Lambdas, Expression Templates, ...)
Aber die Reinform die hier präsentiert wird ist natürlich völlig sinnlos, abgesehen vom Lerneffekt vielleicht, aber erstmal ist es nur Spaß an den vielen <<<<...>...>...>...> ;)

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Keksverteilungsbeauftragter
c++.de :: C++ (auch C++0x und C++11) ::  brainfuck-Compiler TMP style  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.