2009-03-10 10 views
1

Heute habe ich angefangen, mir die kommende C++0x specification anzuschauen, und ich begann darüber nachzudenken, was die richtige Größe für ein Sprachvokabular ist. Anfangs war es für mich sehr ärgerlich, dass neue Keywords eingeführt wurden. Auf einer ungefähren Ebene ist die Anzahl der Schlüsselwörter in einer Sprache, denke ich, eine Schätzung ihrer Komplexität. Das heißt, im Fall von C++ würde das Hinzufügen neuer Konstrukte es noch schwieriger machen, die Sprache zu beherrschen. Das ist ein Grund, warum das Buch K & R so viel kleiner ist, dass das C++ äquivalent ist.Wie groß sollte ein Sprachvokabular sein?

Danach habe ich über natürliche Sprachen nachgedacht, deren Wortschatz linear mit der Zeit wächst, unabhängig von der Sprache (*). Die einzige Ausnahme ist natürlich Newspeak, was viel aussagt. Die Wortschatzgröße bezieht sich in diesem Fall auf die Ausdruckskraft der Sprache.

In Programmiersprachen können Sie jedoch sehr ausdrucksstarke Sprachen mit einer kleinen Wortschatzgröße (dh Lisp) haben.

Also, um dies zu formulieren ist eine Frage, was sollte Ihrer Meinung nach ein Sprachvokabular sein - groß und ausführlich oder klein und prägnant?

Antwort

2

Ich bin nicht davon überzeugt, dass es hier eine echte Antwort gibt. Kleiner ist meine Vorliebe, aber ich kann nicht quantifizieren, was klein wirklich ist. Ich würde lieber eine schlanke Gruppe von Operatoren sehen, in denen keine Redundanz vorhanden ist. Das ist wie und wie in C# nervt mich. Sie sind zu nah an der Funktionalität. Wenn und Wenn in vielen Sprachen der gleiche Weg ist. Man kann leicht von dem anderen konstruiert werden.

Ich bin ein großer Fan von Lisp, die ziemlich minimal ist, aber selbst dort gibt es syntaktischen Zucker (wie 'statt Zitat').

+0

LISP minimal? Es definiert fast 1000 Formen/Funktionen! R5RS Scheme hat etwa 250 im Gegensatz. – leppie

+0

Lisp hat 18 reservierte Wörter. http://www.scribd.com/doc/2150939/Reserved-Programming-Keywords-for-Assorted-Languages ​​ – Nifle

+0

Es macht es jedoch noch nicht nützlich. Wenn es um reservierte Schlüsselwörter geht, hat Scheme keine :) – leppie

5

Wie groß sollte ein Sprachvokabular sein?

42.

+0

Also DAS war die Frage! –

1

Ich mag kleine Sprachen mit klaren Möglichkeiten, es zu verlängern.

(jemand dieses Wiki)

1

Nun, lassen Sie sich zwei Sprachen vergleichen - C++ und Smalltalk

  • C++ - große Anzahl von reservierten Worten, komplexer Syntax, großes Standarddokument

  • Smalltalk - fast keine reservierten Wörter, unglaublich einfache Syntax, winzige Standards Dokument

Sehen Sie sich nun den relativen Erfolg dieser Sprachen an. Ich denke, die Schlussfolgerung ist offensichtlich - groß ist besser.

+1

Korrelation bedeutet nicht Kausalität. –

1

Ich würde sagen, so wenig wie möglich bei gleichzeitiger Maximierung der Funktionalität. Wo genau die Grenze zwischen Abwechslung und Komplexität gezogen wird, ist sehr subjektiv.

1

So groß wie nötig, aber nicht größer?

Wie auch immer, Ihre Frage vermisst einen offensichtlichen Punkt. Sprachen können schrecklich komplex sein, ohne viele Schlüsselwörter zu verwenden. Betrachten Sie als Beispiel das Schlüsselwort static in C++. Es hat was, 3, 4 verschiedene Bedeutungen?Macht das die Sprache weniger komplex als wenn sie 3 oder 4 verschiedene Schlüsselwörter verwendet hätten?

+0

Natürlich hast du recht. Deshalb habe ich gesagt, dass es bestenfalls eine grobe Äquivalenz ist. Es gibt auch das Problem, die Standard-Bibliothek oder nur die Kernsprache zu zählen, und viele andere Probleme ... –

+0

Die meisten Sprachen überladen Bedeutungen - das '*' Symbol in C hat mindestens drei, zum Beispiel. –

Verwandte Themen