Die Probleme bei der Analyse von C++ sind bekannt. Es kann nicht rein auf Syntax basierend analysiert werden, es kann nicht als LALR (was auch immer der Begriff ist, ich bin kein Sprachtheoretiker), die Sprachspezifikation ist eine Zillion Seiten, etc. Aus diesem und anderen Gründen ich Ich entscheide mich für eine alternative Sprache für meine persönlichen Projekte.Ist Vala eine vernünftige Sprache im Vergleich zu C++?
Vala sieht wie eine gute Sprache aus. Obwohl es viele Verbesserungen gegenüber C++ bietet, ist es genauso mühsam zu analysieren. Oder hat es eine formale Grammatik von ordentlicher Länge oder eine logische Beschreibung, die sich zum Erstellen von Parsern für Compiler, Quellanalysatoren und andere Tools eignet?
Wie auch immer die Antwort lautet, gilt das für die alternative Syntax von Genie?
(ich frage mich auch, wenn auch weniger intensiv über D und andere post-C++ nicht-VM Sprachen.)
Merkmale sind ein guter Grund, eine bestimmte Sprache für ein Projekt auszuwählen, aber was macht es aus, wie schwierig diese Sprache zu parsen ist? (Es sei denn, Ihr persönliches Projekt schreibt einen Compiler für diese Sprache). In diesem Sinne ist C++ keine LR (1) -Grammatik, wie Java und C#, und kann möglicherweise unendliches Lookahead beinhalten. – birryree
Vana 'sollte' besser als C++ sein. Ich weiß, Java ist wirklich gesund, ich habe einen Java-Parser in Java geschrieben und von einem Compiler-Compiler direkt aus der Grammatik in EBNF generiert. – Lagerbaer
Err .. it * kann * basierend auf Syntax syntaktisch analysiert werden, zumindest soweit jede Sprache auf diese Weise betrachtet werden kann (natürlich sind Dinge wie Kennungen technisch kontextsensitiv, aber sie sind in den meisten Sprachen üblich). Ja, die Grammatik ist nicht LALR (1), aber es ist natürlich parsabel. Auf der anderen Seite sollte die Schwierigkeit des Parsens wirklich nicht das Hauptkriterium für die Wahl einer Sprache sein - es gibt eine Menge über die Popularität (und daher die Leichtigkeit, Bibliotheken zu erwerben) für eine bestimmte Sprache. –