[QUIZ #18] Reguläre Ausdrücke - Reverse Engineered


DrMueller

Erfahrenes Mitglied
Ich habe leider sehr wenig Ahnung von RegExp, und ich denke die Aufgaben hier sind auch für erfahrerene Entwickler und nicht C#-Bastler wie mich :D
Aber ich lese immer mit und folge dem Thema sehr gespannt
 

sheel

I love Asm
@alxy: Keine Ahnung :suspekt:

...Sagen wir so:
* Es hat niemand etwas dagegen, im Gegenteil.
* Alles bezüglich Organisation und jede Art von Hilfestellung mach ich gern.
* Was mir fehlt sind gut geeignete Aufgaben(-ideen)
(zumindest hab ich nicht genug, um alle paar Wochen fix etwas zu machen)

Daher...es wäre sehr schön, wenn sich (wie bei den ersten Durchgängen vor ein paar Jahren)
auch andere User Aufgaben überlegen, die gemacht werden können :)


Zur Aufgabe: Ja, das war wohl übers Ziel hinausgeschossen.
...wenn schon sonst nichts bringt es wenigstens Erfahrungswerte für die Zukunft :)

@DrMueller: Wenn die Sache (hoffentlich) nicht untergeht
wird sicher auch für dich was Interessantes dabei sein :)
 

ComFreek

Mod | @comfreek
Moderator
Stimme sheel völlig zu.

Für die, die vllt. Ideen einbringen wollen, beachtet bitte folgende 2 Punkte:

- Nicht zu sehr mathematisch angelehnt. Das Programmieren sollte im Vordergrund stehen.

- Einteilbar in Level/Schritte (a, b, c, d)
 

Spyke

Premium-User
Ganz ehrlich, arbeit hatte mich zu sehr "gestresst". Die letzten Wochen waren ziemlich wichtig/stressig.

Ansonsten schrieb ich ja eh eher das ich ev. eher pseudocodemäßig mitmachen würde und hab auch beim Vote mit "vielleicht" oder so gevotet.

Hatte mir auch den RegEx Contest angesehen, aber konnte mich nicht reinfinden.
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

wie wäre es, ein RFC soweit möglich zu implementieren? So als Grundgedanke mein ich. In der Programmierung sind die RFC's immer mal wieder wichtig, da hilft ein grobes Verständnis von dem Aufbau dieser schon sehr weiter.
Was haltet ihr davon?

Grüße,
BK
 

ComFreek

Mod | @comfreek
Moderator
Hallo BK und die anderen Antworter,

Danke auf jeden Fall für die Kommentare und Ansichten!

Speziell an BK:

Ich persönlich mag RFC-Dokumente eher nicht so gern. Sie sind oftmals lang, weil sie auch immer sehr formell aufgebaut sind wie ein juristischer Text.
Man muss auch beachten, dass allein das Durchlesen viel Zeit in Anspruch nimmt.

Allerdings sind Meinungen andere Leute definitiv gewünscht!
 

sheel

I love Asm
@BK:
An sich eine gute Sache,
aber man muss wirklich auch die Menge beachten.

RFCs sind ja ein weites Gebiet.
An was denkst du da zB.?
Wenn man sowas wie HTTP1.1 hernimmt ist das eher suboptimal...
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi sheel und ComFreak,

habe da jetzt noch nichts spezielles im Sinn, aber da gibts sicher das eine oder andere RFC das nicht so lang ist. Kann ja mal auf die Suche gehen.

Ausm Kopf heraus hätte ich da an so einen Contest gedacht:
- Server Anwendung (Client optional)
- Wird mit Protokoll X angesprochen
- Berechnet was
- Antwortet mit Protokoll X

X kann auch schon was Fertiges sein (Stufe 1?) oder selbst implementiert (Stufe 2/3?)

Muss ja auch nicht unbedingt ein komplettes RFC sein, eine Angabe in Augmented BNF Syntax wäre ja auch schon mal ein Schritt zum Verständnis von RFCs. Weiß ja nicht wie es euch dabei gegangen ist, aber die haben mich bei meinen ersten RFCs am meisten verwirrt.

Sowas in der Art halt ;)

Grüße,
BK
 

alxy

Erfahrenes Mitglied
Hört sich interessant, aber sehr abstrakt an.
Kannst du vielleicht mal ein konkretes Beispiel raussuchen?
 

sheel

I love Asm
Weiterer Vorschlag:
Wie würdet ihr finden, einen Interpreter für eine beliebige (beliebig einfache) Sprache zu schreiben,
und zwar in irgendeiner Sprache und dann in sich selbst?
Wobei man die langwierige Vorverarbeitung des Inputs nicht machen muss,
sondern Syntaxprüfung, Zerlegung in Token etc. als gegeben nehmen kann.
 

sheel

I love Asm
Es muss ja wirklich keine komplizierte Sprache sein.
zB. ein Brainf***-Interpreter ist doch schnell mal gemacht :suspekt:
Dafür tut man sich dann beim Eigeninterpreter schwerer :D
(falls man den macht. Abgeben kann man nur mit Teil 1 ja natürlich auch)

Etwas Richtung C-Sytnax oder ganz was Anderes ist dann zwar bei a) schwerer,
aber b) geht dafür leichter...
 

DrMueller

Erfahrenes Mitglied
Wäre die Aufgabe nicht interessanter, wenn alle die gleiche Ausgangssprache nehmen und diese dann entsprechend umformieren?
Also Ausgangssprache --> C# --> Ausgangssprache --> C++ etc.

Damit wären auch die lustigen Google-Translate Effekte schon eingebaut :D
 

DrMueller

Erfahrenes Mitglied
Wenn ich es richtig sehe, ist ja die Idee, dass man eine Programmier-Sprache nimmt und diese in eine Andere formatiert resp. umgekehrt.
Wenn alle die gleiche Ausgangssprache verwenden, hat man a) viel mehr Beispiele und b) Interessante Effekte, wenn es nicht klappt.
Google-Translate Effekt: Deutsch --> Japanisch --> Chinesisch --> xxx --> Deutsch.
 

ComFreek

Mod | @comfreek
Moderator
Wenn ich es richtig sehe, ist ja die Idee, dass man eine Programmier-Sprache nimmt und diese in eine Andere formatiert resp. umgekehrt.
Nein, ich hatte mir die Idee anders vorgestellt (war ja auch meine). Dies war der Originaltext:
ComFreek hat gesagt.:
Entwickle einen Interpreter welche eine eigens-konstruierte Sprache X ausführen kann. Es muss möglich sein, in der Sprache X selbst einen Interpreter für die Sprache X zu schreiben.

Noch ein paar Restriktionen bzgl. der Sprache einfügen (keine 0-Byte-Sprache :D, etc.).
Bei BF kann man locker mit 75 Zeilen sauberem PHP-Code arbeiten.

An was für eine Ausgangssprache hast du gedacht, DrMueller?
 

sheel

I love Asm
Ich glaub, ComFreek hat etwas gepostet, dass schon überholt ist.
Der aktuelle Stand war tatsächlich (schon, als der Vorschlag hier öffentlich wurde),
dass es eine beides sein kann; eine bestehende oder selbst erfundene Sprache

Voraussetzungen eben, dass es eine Sprache ist, die
*tatsächlich eine Sprache ist, also nicht nur Leerdateien gültig sind (die einfach nichts tun)
*Turingvollständig
*Interpreter für die Sprache in der Sprache selbst ist möglich
 

CookieBuster

Erfahrenes Mitglied
Ich würde da gerne etwas einwerfen. Wie wäre es mit einer einheitlichen Sprache?
Hier würde sich z.B. das Lambda-Kalkül anbieten.

Das Lambda-Kalkül ist eine Formale Sprache, mit welcher grundlegende Strukturen von Funktionen untersucht werden können. Außerdem fördert es stark das abstrahierende denken, was jeder Programmierer besitzten sollte.

Es lässt sich hier leicht in mehrere Schwierigkeitsstufen unterteilen, da es zum einen das untypisierte und das typisierte Lambda-Kalkül gibt (unterschied in der komplexität) und es lassen sich Regeln unabhängig voneinander implementieren. So sind die verschiedenen Reduktionsarten unterschiedlich schwer zu implementieren.

Natürlich müsste hierfür ein Interpreter der Sprache implementiert werden, bzw. die Möglichkeit solche Ausdrücke auswerten zu können.

Um einmal einen Vorschlag in den Raum zu werfen.. :)


edit: Um Sucharbeit zu ersparen hier Links zum Artikel in Wikipedia auf Englisch (ausführlicher) und zum Artikel in Wikipedia auf Deutsch (nicht lesenswert imo)
 
Zuletzt bearbeitet: