Ursprünglich habe ich versucht, dies bei StackOverflow zu erfragen, aber es war zu subjektiv :-(. Ich interessiere mich für Methoden zur Definition der Leistungsfähigkeit von Programmiersprachen. Die Vollständigkeit ist eine, aber sie ist fast allgemein zufrieden Leistungsmaß, das zwischen den tatsächlich verwendeten Programmiersprachen unterscheidet: Kann zum Beispiel jemand eine nicht subjektive Methode vorschlagen, die zwischen Assembly und Java unterscheiden würde?
Vollständigkeit zu beurteilen bedeutet, dass eine Sprache in Bezug auf das, was sie ausgeben kann, maximal leistungsfähig ist (was so ziemlich bedeutet, dass sie in der realen Welt alles kann, was nicht auf Zeit basiert). Wenn wir also ein stärkeres Maß an Macht definieren wollen, müssen wir einen anderen Ansatz wählen. In der ursprünglichen Frage wurde eine Kürze vorgeschlagen, die jedoch nicht einfach zu definieren ist. Hat jemand noch andere Vorschläge?
quelle
Wenn ich Ihre Frage richtig verstehe, suchen Sie dennoch nach etwas, das relativ messbar ist und nicht nur ein subjektives Urteilsvermögen. In diesem Fall würde ich persönlich den Zeitaufwand für die Lösung eines bestimmten Problems begrüßen (gemittelt über alle Probleme und alle Programmierer). Bei dieser Maßnahme müssen Sie möglicherweise nicht nur die Sprache selbst, sondern auch das damit verwendete Framework / API berücksichtigen. Die prägnante Syntax ist ein sehr kleiner Faktor: Viel wichtiger ist, dass die am häufigsten benötigten Funktionen leicht zugänglich sind.
Wenn Sie etwas subjektiveres suchen, würde ich sagen, wie viel Spaß es macht . Programmierer sind in der Regel Leute, die wollen, dass Probleme gelöst werden. Eine Programmiersprache, die den Programmierern Spaß macht, wird daher unweigerlich diejenige sein, die die meisten Probleme löst. Diese Maßnahme berücksichtigt, dass unterschiedliche Personen unterschiedliche Vorlieben in Bezug auf den Umgang mit Dingen haben, sodass die „beste“ Programmiersprache diejenige ist, die die meisten Programmierer anspricht. Möglicherweise müssen Sie jedoch nicht nur die Programmiersprache und die API berücksichtigen, sondern auch die Umgebung (IDE), mit der der Programmierer natürlich tatsächlich interagiert.
quelle
Ich würde definieren, wie mächtig eine Sprache ist, indem Sie festlegen, wie produktiv Sie damit sein können. Viele Leute neigen dazu, schnell über Produktivität beim Schreiben von Code zu sprechen, aber da der größte Teil des Lebenszyklus eines Programms aus Wartung und nicht aus Entwicklung besteht, ist es besser, wie einfach Sie den Code lesen und debuggen können, insbesondere wenn er von jemandem geschrieben wurde sonst. Die mächtigsten Sprachen sind diejenigen, die am einfachsten zu lesen und zu pflegen sind.
quelle
Sie müssen Ihre Terminologie besser definieren.
Bei der Vollständigkeit von Turing geht es nicht um "Macht" in dem Sinne, wie Sie es wahrscheinlich meinen. Es geht vielmehr um Berechenbarkeit; dh ob eine bestimmte Sprache ein Programm ausdrücken kann, das mit einer Turing-Maschine implementiert werden kann. Es stellt sich heraus, dass nahezu jede Programmiersprache Turing vollständig ist.
Was Sie wahrscheinlich suchen, ist ein Maß für die so genannte Programmiersprache "Ausdruckskraft". Ich bin mir nicht sicher, ob es eine solche Maßnahme gibt oder ob sie sinnvoll ist. Grundsätzlich sind verschiedene Programmiersprachen besser in der Lage, Lösungen für verschiedene Arten von Problemen auszudrücken.
BEARBEITEN
Nur um es auszudrücken, Programmiersprachen haben keine Eigenschaft, die als "Macht" bekannt ist. Es gibt ein Konzept, das allgemein als "Ausdruckskraft" oder "Ausdruckskraft" einer Programmiersprache bekannt ist. Bei Expressivität geht es zum Teil darum, wie einfach es ist, prägnante Programme zu schreiben, um bestimmte Probleme anzugehen. Es gibt aber auch ein beträchtliches Maß dafür, wie einfach es ist, die Programme zu lesen und zu schreiben. Es ist eine Art "Schönheit". Ich werde es wissen, wenn ich es sehe, aber bitte mich nicht, es zu definieren.
Ein einfacher Vergleich der Zeichenanzahl gibt Ihnen kein ausreichendes Maß an Ausdruckskraft. Andernfalls könnten Sie eine Sprache ausdrucksvoller machen, indem Sie den Quellcode komprimieren ... und das ist Unsinn. Tatsächlich kenne ich kein objektives Maß für Ausdruckskraft, und ich vermute stark, dass keines existiert. Wodurch das Merkmal effektiv unbrauchbar und ziemlich uninteressant wird.
quelle