|
|
|
|
| Zitat von Kambfhase
| Zitat von WeGi
Swag Overflow kann mir gerade nicht weiterhelfen, vielleicht hat hier ja jemand eine brilliante Idee.
Ich habe den kompletten AST eines Programms. Ich möchte jetzt herausfinden ob eine gewisse Methode foo als letztes aufgerufen wird.
Jemand Ideen, wie man das zuverlässig realisieren könnte?
Einfach nur gucken welchen Namen die zuletzt aufgerufene Methode hat ist nicht ausreichend.
| | Warum reicht das nicht aus? Wenn du wissen willst, ob das letzte Element in einer Liste foo ist, guckt man sich das letzte Element an.
| | Wahrscheinlich, weil die Aufgabenstellung das fordert.
|
|
|
|
|
|
|
{Menge aller Leaves des AST} → rückwärts nach oben gehen bis Methodenanfang auftaucht. Done?
|
|
|
|
|
|
|
| Zitat von cms
| Zitat von Kambfhase
| Zitat von WeGi
Swag Overflow kann mir gerade nicht weiterhelfen, vielleicht hat hier ja jemand eine brilliante Idee.
Ich habe den kompletten AST eines Programms. Ich möchte jetzt herausfinden ob eine gewisse Methode foo als letztes aufgerufen wird.
Jemand Ideen, wie man das zuverlässig realisieren könnte?
Einfach nur gucken welchen Namen die zuletzt aufgerufene Methode hat ist nicht ausreichend.
| | Warum reicht das nicht aus? Wenn du wissen willst, ob das letzte Element in einer Liste foo ist, guckt man sich das letzte Element an.
| | Wahrscheinlich, weil die Aufgabenstellung das fordert.
| |
Dann mach eine Tiefensuche über den AST. Immer wenn du einen Funktionsaufruf betrittst, legst du den Namen der Methode auf einen Stack. Verlässt du den Kontext wieder, entfernst du das Symbol und merkst dir, ob du damit den Stack geleert hast. Falls dem so ist, pusht du es wiederum in eine Queue. Nach der Breitensuche musst du nur noch die Queue abarbeiten und gucken, ob das letzte Element foo ist.
|
|
|
|
|
|
|
| Zitat von WeGi
Swag Overflow kann mir gerade nicht weiterhelfen, vielleicht hat hier ja jemand eine Brilliante Idee.
Ich habe den kompletten ast eines Programms. Ich möchte jetzt herausfinden ob eine gewisse Methode foo als letztes aufgerufen wird.
Jemand ideen, wie man das zuverlässig realisieren könnte?
Einfahc nur gucken welchen namen die zuletzt aufgerufene Methode hat ist nicht ausreichend.
| |
Entweder verstehe ich nicht was du willst oder die Aufgabe ist nicht lösbar: Um festzustellen welche Methode als letztes aufgerufen wird (um dann zu schauen ob es 'foo' ist) musst du zunächst feststellen ob das Programm überhaupt eine letzte Methode hat, also ob es terminiert. Da wir wissen das das Halteproblem nicht entscheidbar ist und dein Problem das Halteproblem als Subproblem enthält, ist dein Problem somit ebenfalls nicht entscheidbar.
|
|
|
|
|
|
|
Ich musste mir jetzt eh was anderes überlegen, da noch teilbereiche hinzugekommen sind, welche ich mitbehandeln muss. Danke für die Hilfe an alle.
Und es ist nicht exakt ein Subproblem des Halteproblems, da es mir mehr um statische Analyse ging, hätte ich wohl hinschreiben müssen.
Ging Übrigens nicht um eine Übungsaufgabe, sondern um ein konretes Projekt.
|
|
|
|
|
|
|
Danke für Dota2, Achsel!
Hab vor 2 Jahren ganz gerne league of legends mit nem Kumpel gespielt. Mal gucken wie dota so is
|
|
|
|
|
|
|
Hach, circa einmal im Quartal passiert es mir, dass ich auf der Straße einem Mädel begegne, wo mir auf Anhieb das Herz stockt, so interessant finde ich sie. Heute war es mal wieder soweit. Und mal wieder hab ich nix unternommen, um den Menschen kennenzulernen
Ist aber irgendwie in dem Fall gar nicht so einfach. Wer will schon auf der Straße angelabert werden. Ich jedenfalls nicht. Und womit überhaupt.
Wobei mir in dem Fall sogar etwas eingefallen ist... allerdings erst 10 Fahrradfahr-Minuten später
|
|
|
|
|
|
|
Schlagfertigkeit ist das, was einem auf dem Nachhauseweg einfällt.
|
|
|
|
|
|
|
Vor ihr theatralisch mit dem Fahrrad umfallen, Beschützerinstinkt wecken.
|
|
|
|
|
|
|
Bug der Woche, weil ich mich entschiede habe die zuständigen Admins damit zu nerven bis es funktioniert: Dieses Script, ausgeführt ohne Änderungen heute um 8:45, 9:45 und 10:05, bringt diese Ausgabe:
$ python imaptest.py
Login successful.
$ python imaptest.py
LOGIN failed.
$ python imaptest.py
Login successful.
|
|
|
|
|
|
|
rückwirkende Gehaltserhöhung \o/
|
|
|
|
|
|
|
| Zitat von TriggerTG
Hach, circa einmal im Quartal passiert es mir, dass ich auf der Straße einem Mädel begegne, wo mir auf Anhieb das Herz stockt, so interessant finde ich sie. Heute war es mal wieder soweit. Und mal wieder hab ich nix unternommen, um den Menschen kennenzulernen
Ist aber irgendwie in dem Fall gar nicht so einfach. Wer will schon auf der Straße angelabert werden. Ich jedenfalls nicht. Und womit überhaupt.
Wobei mir in dem Fall sogar etwas eingefallen ist... allerdings erst 10 Fahrradfahr-Minuten später
| |
Riecht dieses Tuch nach Chloroform?
|
|
|
|
|
|
|
| Zitat von TriggerTG
Danke für Dota2, Achsel!
Hab vor 2 Jahren ganz gerne league of legends mit nem Kumpel gespielt. Mal gucken wie dota so is
| |
Gerne. Ich habe irgendwie 12 oder 13 Freikeys in meinem Account und es werden gefühlt immer mehr.
Falls also noch jemand möchte: Added mich bei Steam.
Und nicht von den Russen nerven lassen, die sind nunmal so wie sie sind
Dota ist irgendwie eines der wenigen Spiele die mich mal auf längere Zeit fesseln können. Ich glaube ich mag dieses "Coop gegen andere Teams" sehr gerne.
|
|
|
|
|
|
|
-
| Zitat von WeGi Swag Overflow | |
-
| Zitat von SirSiggi Schlagfertigkeit ist das, was einem auf dem Nachhauseweg einfällt. | |
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
| Zitat von TriggerTG
Danke für Dota2, Achsel!
Hab vor 2 Jahren ganz gerne league of legends mit nem Kumpel gespielt. Mal gucken wie dota so is
| |
Gerne. Ich habe irgendwie 12 oder 13 Freikeys in meinem Account und es werden gefühlt immer mehr.
Falls also noch jemand möchte: Added mich bei Steam.
Und nicht von den Russen nerven lassen, die sind nunmal so wie sie sind
Dota ist irgendwie eines der wenigen Spiele die mich mal auf längere Zeit fesseln können. Ich glaube ich mag dieses "Coop gegen andere Teams" sehr gerne.
| |
Oder man nutzt einfach den Dota 2 Dispenser
http://steamcommunity.com/id/dota2bot/
|
|
|
|
|
|
|
Ja, aber so ist das doch viel persönlicher!
|
|
|
|
|
|
|
Die Freundeliste von dem Bot ist voll.
Deswegen muss ich dich persönlich anflehen.
Bitte bitte gib mir Dota 2. Hab dir eben eine Nachricht geschickt.
|
|
|
|
|
|
|
| Zitat von wuSel
Riecht dieses Tuch nach Chloroform?
| |
Warum liegt denn hier Stroh rum?
(falls man welches dabei hat...)
|
|
|
|
|
|
|
Meine Frau ist heute scheinbar die erste Kundin im Münchener Apple Store gewesen die ihr iPhone 5 für 230 ¤ umtauschen musste.
Kurzgeschichte:
Handy, Gesäßtasche, Toilette, Rage
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von DeineOmi am 14.05.2013 22:10]
|
|
|
|
|
|
|
Code: |
print(bin(scanline)[2:-1][::-1].replace("1", "*").ljust(charattrs["width"]*2, "-").replace("-", " ").replace("0", "")[::-1]) |
|
Herr, vergib mir.
|
|
|
|
|
|
|
| Zitat von csde_rats
|
Code: |
print(bin(scanline)[2:-1][::-1].replace("1", "*").ljust(charattrs["width"]*2, "-").replace("-", " ").replace("0", "")[::-1]) |
|
Herr, vergib mir.
| |
Ist .ljust(charattrs["width"]*2, "-").replace("-", " ") nicht das selbe wie .ljust(charattrs["width"]*2, " ")
Und könntest du statt umdrehen, ljust, umdrehen nicht einfach rjust verwenden?
|
|
|
|
|
|
|
Jup, das passiert mir, wenn ich so längere Statements durch trial n error zusammenbastle...
|
|
|
|
|
|
|
Python ist zu einfach, ich sollte ein Programm (zu zweit) bis nächste Woche schreiben und war nach einer halben Stunde schon fertig
|
|
|
|
|
|
|
Ya life is too short to not use Python :-)
|
Code: |
print(list(map(lambda segments: "0x" + "".join(segments), zip(*[iter(scanline)]*2)))) |
|
a.k.a. "nehme je zwei (Hexziffern-)buchstaben aus scanline und stelle ein 0x davor.
Bastel gerade nen Parser für Adobes BDF um daraus direkt Schriften für Mikrocontroller zu erzeugen...
|
|
|
|
|
|
|
| Zitat von DeineOmi
Die Freundeliste von dem Bot ist voll.
Deswegen muss ich dich persönlich anflehen.
Bitte bitte gib mir Dota 2. Hab dir eben eine Nachricht geschickt.
| |
'ledigt
|
|
|
|
|
|
|
| Zitat von csde_rats
Ya life is too short to not use Python :-)
| |
Programmers who like Python also like:
- Scala
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
| Zitat von DeineOmi
Die Freundeliste von dem Bot ist voll.
Deswegen muss ich dich persönlich anflehen.
Bitte bitte gib mir Dota 2. Hab dir eben eine Nachricht geschickt.
| |
'ledigt
| |
Danke
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
| Zitat von csde_rats
Ya life is too short to not use Python :-)
| |
Programmers who like Python also like:
- Scala
| | Ich war einmal in einer Vorlesung drüber, aber nicht die erste zum Thema also war ich zu sehr damit beschäftigt verwirrt zu sein wann man jetzt Punkt und wann Leerzeichen als Operator nutzt um etwas von der Sprache zu verstehen
|
|
|
|
|
|
|
Punkte kann man bei Aufrufen und Zugriffen immer weglassen und durch ein Leerzeichen ersetzen, wenn der Compiler zweifelsfrei die Ausdrücke erkennen kann. Wann das ist, sagt einem der Compiler
|
|
|
|
|
|
|
Elvis has left the building
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |