Frage

Lesen über Wikipedia:

"Die Begriffe hochrangiger und niedriger Ebene sind von Natur aus relativ. Vor einigen Jahrzehnten wurde die C-Sprache und ähnliche Sprachen am häufigsten als" hochrangiger "als„ hochrangige “als Konzepte wie Expressionsbewertung, parametrisierte rekursive Funktionen und unterstützte und unterstützt. Datentypen und -strukturen, während die Montagesprache als "niedrigem Niveau" angesehen wurde. Viele Programmierer können sich heute mit C als niedrigem Niveau bezeichnen, da es ein großes Laufzeitsystem fehlt (keine Müllsammlung usw.). unterstützt im Grunde nur skalare Operationen, und bietet direkte Speicheradressierung. Es mischt sich daher leicht in die Montagesprache und den Maschinenniveau von CPUs und Mikrocontrollern ein. "

http://en.wikipedia.org/wiki/high_level_glanguage

Was bedeutet das genau? Welche Operationen bieten andere Programmiersprachen, welche C nicht?

War es hilfreich?

Lösung

Angesichts des Kontextes und des Themas des Artikels ist der Begriff "Skalar", wie der Artikel in der C -Sprache selbst definiert ist. In C -Sprache Arithmetik Typen und Zeiger Typen zusammen werden genannt Skalar Typen (siehe 6.2.5/21). In der Alltagssprache sehen wir oft diese Typen als als Basic Typen oder eingebaut Typen (während der richtige formale Begriff wiederum ist, Skalar). Der Punkt ist, dass Skalar Typen sind die Typen, die sofort (oder fast sofort) von Hardware unterstützt werden. Die meisten nicht konzeptuellen Operationen in C arbeiten nur auf Skalartypen und Skalartypen.

Wenn Sie sich die Geschichte der C -Sprache ansehen, werden Sie sehen, dass frühe Versionen von C so restriktiv waren Skalar, dass Sie einem anderen Strukturobjekt nicht einmal ein Strukturobjekt zuweisen konnten (oder es an eine Funktion/Rückgabe von einer Funktion nach Wert übergeben konnten). Die Fähigkeit, die Struktur in der Kernsprache zu kopieren, wurde später C zu C hinzugefügt. Und bis heute bleibt es im Wesentlichen die einzige nicht-scalare Operation in der gesamten Kernsprache.

C ++ unterstützt dagegen sowie andere höhere Sprachen Operationen auf benutzerdefinierten Typen, die per Definition nicht sind Skalar, oder auf anderen Typen, die keine sofortige Unterstützung durch Hardware haben.

PS Nein, der Punkt, den der Artikel versucht zu machen, hat nichts damit zu tun Vektor Operationen im Gegensatz zu Skalar Operationen. Die Unterstützung für Vektoroperationen ist natürlich vollständig orthogonal auf das Sprachniveau. Sie können Vektoroperationen in Sprachen auf niedriger Ebene sowie in hochrangigen Sprachen durchführen. Der Begriff Skalar wird in gewissem Sinne verwendet, dass ich oben beschrieben habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top