J'ai toujours mis les langues en 2 types ... celles qui vous permettent de faire référence à la mémoire "non définie" (non initialisée, libérée, etc.), comme comme C, C++, COBOL (?), Assembly, etc. et ceux que vous ne pouvez pas tels que Java, Perl, C# et Basic. Existe-t-il un terme «informatique» pour cette distinction? Pendant que nous y sommes, y a-t-il un terme informatique à ce que j'appelle «mémoire indéfinie»?terminologie pour distinguer les langues qui peuvent/ne peuvent pas faire référence à la mémoire indéfinie
Répondre
Sécurité du pointeur.
Je m'excuse de ne pouvoir pas attribuer l'auteur originel. Je sais que j'ai vu Erik Meijer et que je l'ai défini. La sécurité du pointeur (ou sécurité de la mémoire) est l'attribut d'un programme, ou de tous les programmes dans une langue particulière ou autre contrainte, où le programme ne peut pas adresser la mémoire autre que celle explicitement allouée et possédée, ou par un intermédiaire. comme OS.
La sécurité de type est également un attribut, mais elle est généralement plus stricte - si quelque chose est de type sécurisé, il est également sûr pour les pointeurs. Dans cet attribut, la mémoire est appelée "objets" qui ont un type, et le programme ne manipule jamais cette mémoire, sauf à travers des opérations sur ce type. Je vais laisser les différentes définitions conflictuelles de type pour le moment, car cela peut aussi être une grande question.
Ces attributs s'appliquent généralement et peuvent s'appliquer à diverses stratégies de gestion de la mémoire: allocations de tas dynamiques, allocateurs d'arène, piles et stockage «statique» ou «global». Ce ne sont pas seulement des tas. Wikipedia: pointer safety et type safety.
Pensez-vous à dynamic memory allocation et le tas?
Un bon travail qui amène ces mots dans ce fil, mais C, C++, Java et C# font tous les mêmes choses en mémoire, c'est juste que Java et C# en retirent la gestion à l'utilisateur. – TahoeWolverine
Pouvez-vous définir "se référer à"? Si vous voulez simplement dire que vous pouvez obtenir la mémoire des ordures sans avertissements ni erreurs, je ne pense pas qu'il y ait vraiment une distinction formelle là-bas. La distinction que je peux penser de ce qui pourrait être pertinent est «haut niveau» et «bas niveau». Des langages comme Java et C# High Level (plus loin de l'assemblage) éliminent généralement la possibilité de commencer à référencer les déchets pour des raisons évidentes. Les langages de niveau inférieur (proche de l'assemblage) ne sont pas simplement destinés à le laisser ouvert au développeur (ceci est similaire à la gestion de la mémoire). La mémoire non définie est normalement appelée inutilisée, poubelle ou mémoire libérée.
OK, mais je veux ajouter la mémoire "non initialisée" cette classification ... elle est allouée mais pas initialisée – JoelFan
Je crois que Falaina vous a battu à ce coup de poing ... – TahoeWolverine
Vous savez, j'ai toujours utilisé le terme Memory Safety pour discuter de ces sujets. Et je considère C/C++ "Memory Unsafe" langues. Je ne sais pas si c'est la terminologie acceptée, alors je serai intéressé à voir d'autres réponses.
En ce qui concerne les termes de « mémoire non définie », je crois que ce terme serait une combinaison de 2 autres termes:
mémoire non allouée: mémoire qui n'a pas été mis de côté pour une utilisation par un programme. Mémoire non initialisée: mémoire qui a été allouée mais n'a pas reçu de valeur significative par le programme.
- 1. Quelles sont les bibliothèques inter-langues pour les personnes qui connaissent d'autres langues (similaire à phpjs)
- 2. Langues qui autorisent les tuples nommés
- 3. Java, clarification de la terminologie
- 4. Référence indéfinie à un membre de classe statique
- 5. Charset pour les langues étrangères
- 6. Que peuvent faire les services sous Windows?
- 7. Manière indépendante de la langue de faire référence à "Feuille"?
- 8. Comment faire pour distinguer qu'un type est ValueType ou RefereceType?
- 9. Erreur de liaison de référence indéfinie de Cmake
- 10. "Conforme à" signifie dans la terminologie Iphone?
- 11. Quelles langues ont des propriétés qui peuvent avoir assigné des getters et des setters?
- 12. Clés et terminologie
- 13. Appel à la fonction indéfinie showfeeddialog() pour FB.Connect.showFeedDialog
- 14. Site qui montre des algos dans les langues populaires?
- 15. Discours au texte pour les langues de droite à gauche
- 16. Quels sont les outils qui peuvent analyser l'utilisation de la mémoire en dehors du tas dans Java?
- 17. Comment faire pour que MSBuild référence les bons assemblages?
- 18. Essayez d'inclure une bibliothèque, mais continuez à recevoir des messages de "référence indéfinie"
- 19. Mysql colation pour toutes les langues
- 20. JRuby/Windows et les extensions (natives) comment les distinguer?
- 21. Terminologie - parties d'une relation composite
- 22. Maven pour d'autres langues?
- 23. Problèmes de référence pour tester la concurence
- 24. Sys.ArgumentUndefinedException: La valeur ne peut pas être indéfinie
- 25. Fichiers de ressources pour les langues autres que ISO 8859
- 26. Fonction qui renvoie la référence à modifier dans C#
- 27. quelles langues inclure dans l'application iphone pour créer localisable pour les deux langues occidentales et orientales?
- 28. Comment testez-vous les classes dépendantes qui ne peuvent pas être testées ensemble?
- 29. Les formulaires IntraWeb peuvent-ils être synchronisés à la demande?
- 30. Est-ce que les tableaux PHP peuvent faire cela?
Etes-vous sûr que la "sécurité du pointeur" se réfère à la question de l'unitialized variables locales? – JoelFan
Je n'ai rien dit à propos des "locals non initialisés" en particulier, mais un langage "sans pointeur" traiterait nécessairement de l'utilisation de mémoire non initialisée lorsque cette mémoire doit être interprétée comme un pointeur. – Aaron
Ok, mais ce que je cherche, ce serait de m'assurer qu'il n'est pas possible de se référer à la mémoire non initialisée du tout, qu'il s'agisse d'un pointeur – JoelFan