Hay mucha confusión y el mal uso de estos términos. A menudo, uno se usa para significar otro. Esto es lo que esos términos realmente significan.
"Nativo" se refiere a los tipos que están integrados en el idioma, en lugar de ser proporcionados por una biblioteca (incluso una biblioteca estándar), independientemente de cómo se implementen. Las cadenas Perl son parte del lenguaje Perl, por lo que son nativas en Perl. C proporciona semántica de cadena sobre punteros a caracteres mediante una biblioteca, por lo que el puntero a char es nativo, pero las cadenas no lo son.
"Atomic" se refiere a un tipo que ya no se puede descomponer. Es lo contrario de "compuesto". Los compuestos pueden descomponerse en una combinación de valores atómicos u otros materiales compuestos. Los enteros nativos y los números de coma flotante son atómicos. Las fracciones, los números complejos, los contenedores/colecciones y las cadenas son compuestos.
"escalar" - y este es el que confunde la mayoría de las personas - se refiere a los valores que pueden expresar escala (de ahí el nombre), tales como el tamaño, volumen, recuentos, etc. números enteros, números de punto flotante y las fracciones son escalares. Los números complejos, booleanos y cadenas son NOT escalares. Algo que es atómico no es necesariamente escalar y algo que es escalar no es necesariamente atómico. Los escalares pueden ser nativos o proporcionados por bibliotecas.
Algunos tipos tienen clasificaciones impares. Los tipos de BigNumber, generalmente implementados como una matriz de dígitos o enteros, son escalares, pero técnicamente no son atómicos. Pueden parecer atómicos si la implementación está oculta y no puede acceder a los componentes internos. Pero los componentes solo están ocultos, entonces la atomicidad es una ilusión. Casi siempre se proporcionan en bibliotecas, por lo que no son nativas, pero podrían serlo.En el lenguaje de programación de Mathematica, por ejemplo, los números grandes son nativos y, dado que no hay forma de que un programa de Mathematica los descomponga en sus componentes básicos, también son atómicos en ese contexto, a pesar de que son compuestos bajo el covers (donde ya no estás en el mundo del lenguaje Mathematica).
Estas definiciones son independientes del idioma que se utiliza.
También se debe considerar en una discusión de tipos de referencia y tipos primitivos los tipos de "valor". En cuanto a la equivalencia de escalares y primitivos, depende del idioma. De acuerdo con el manual de PHP, por ejemplo, solo la mitad de sus tipos primitivos son escalares: http://php.net/manual/en/language.types.intro.php –