Question

Lire sur Wikipedia:

"Les termes de haut niveau et de bas niveau sont intrinsèquement relatifs. Il y a quelques décennies, le langage C et des langues similaires, était le plus souvent considéré comme" de haut niveau ", car il soutenait des concepts tels que l'évaluation de l'expression, les fonctions récursives paramétrées, et Types et structures de données, tandis que le langage d'assemblage était considéré comme "de bas niveau". De nombreux programmeurs pourraient aujourd'hui se qualifier Prend en main uniquement les opérations scalaires, et fournit une adresse de mémoire directe. Il se mélange donc facilement avec le langage d'assemblage et le niveau de machine des processeurs et des microcontrôleurs. "

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

Qu'est-ce que cela signifie exactement? Quelles opérations les autres langages de programmation fournissent-ils quel C ne fait pas?

Était-ce utile?

La solution

Compte tenu du contexte et du sujet de l'article, ce à quoi l'article fait référence est le terme "scalaire" tel qu'il est défini dans le langage C lui-même. En langue C arithmétique types et aiguille Les types ensemble sont appelés scalaire types (voir 6.2.5 / 21). Dans la langue quotidienne, nous voyons souvent ces types appelés de base types ou intégré types (tandis que le terme formel approprié est, encore une fois, scalaire). Le fait est que scalaire Les types sont destinés à être les types qui sont immédiatement (ou presque immédiatement) pris en charge par le matériel. La plupart des opérations non conceptuelles en C fonctionnent uniquement sur des types scalaires et des types scalaires.

Si vous jetez un œil à l'histoire de la langue C, vous verrez que les premières versions de C étaient de manière si restrictive scalaire, que vous ne pouviez même pas affecter un objet struct à un autre objet struct (ou le passer à une fonction / retour d'une fonction par valeur). La capacité de la copie de structure dans la langue centrale a été ajoutée à C plus tard. Et à ce jour, il reste essentiellement la seule opération non échelle dans toute la langue centrale.

C ++, en revanche, ainsi que d'autres langues de niveau supérieur, prend en charge les opérations sur défini par l'utilisateur types, qui ne sont pas par définition scalaire, ou sur d'autres types qui n'ont pas de support immédiat du matériel.

PS non, le point que l'article essaie de faire n'a rien à voir avec vecteur opérations, par opposition à scalaire opérations. Le soutien aux opérations vectorielles est, bien sûr, complètement orthogonal au niveau de la langue. Vous pouvez avoir des opérations vectorielles dans des langues de bas niveau ainsi que dans des langues de haut niveau. Le terme scalaire est utilisé dans un sens que j'ai décrit ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top