19 Stimmen

Haben theoretische Informatik-Themen "reale" Anwendungen in der Entwicklung?

Mit "theoretischen Informatik-Themen" meine ich Dinge wie reguläre und nicht-reguläre Sprachen, das Pumping-Lemma und Grammatiken.

Ich bin mit den realen Anwendungen von endlichen Automaten und regulären Ausdrücken vertraut, aber Themen wie diese anderen bereiten mir mehr Probleme, da ich keine realen Anwendungen sehe.

18voto

Welbog Punkte 57431

Diese Dinge sind nützlich, wenn Sie wissen wollen, ob der Versuch, etwas mit regulären Ausdrücken zu tun, sinnlos ist. Zum Beispiel ist das Wissen, dass XML nicht-regulär ist, nützlich, wenn man auf die Idee kommt, XML mit Regex zu parsen. Und wenn Sie nicht aus dem Stegreif wissen, dass XML nicht-regulär ist, können Sie es mit dem Pump-Lemma trivial beweisen.

Und dann gibt es noch Compiler, bei denen man, wenn man sich nicht auskennt, aufgeschmissen ist. Es kommt einfach auf die Anwendung an.

9voto

Yuval F Punkte 20547

Hier ist Steve Yegge's Meinung über die Nützlichkeit von Compilern, zusammenfassend wie folgt:

Meiner bescheidenen und wahrscheinlich peinlich falschen Meinung nach ist Compilerbau der zweitwichtigste CS-Kurs, den man in einem Informatik-Studium belegen kann.

Grammatiken sind unerlässlich für das Parsen rekursiver Strukturen, die in Programmiersprachen, natürlichen Sprachen und komplexen Datenstrukturen vorkommen. Ich glaube, dass einige Programmierer ihnen überhaupt nicht begegnen, aber die Personen, die Compiler, IDEs, Serialisierung usw. schreiben, begegnen ihnen sehr häufig.

6voto

Matthew Olenik Punkte 3547

Wie Yuval F. betonte, sind Grammatiken für das Parsing von Sprachen von entscheidender Bedeutung. Wenn Sie einen Blick auf Parsergeneratoren wie ANTLR werfen, werden Sie feststellen, dass die Struktur von Grammatiken dem, was Sie in der Schule gelernt haben, erstaunlich ähnlich ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X