Há muita confusão e mau uso desses termos. Muitas vezes, um é usado para significar outro. Aqui está o que esses termos realmente significam.
"Nativo" refere-se a tipos incorporados ao idioma, em vez de serem fornecidos por uma biblioteca (mesmo uma biblioteca padrão), independentemente de como eles são implementados. As seqüências de caracteres Perl fazem parte do idioma Perl, portanto, são nativas no Perl. C fornece semântica de strings sobre ponteiros para chars usando uma biblioteca; portanto, o ponteiro para char é nativo, mas as strings não são.
"Atômico" refere-se a um tipo que não pode mais ser decomposto. É o oposto de "composto" . Os compostos podem ser decompostos em uma combinação de valores atômicos ou outros compostos. Inteiros nativos e números de ponto flutuante são atômicos. Frações, números complexos, contêineres / coleções e seqüências de caracteres são compostos.
"Escalar" - e esse é o que confunde a maioria das pessoas - refere-se a valores que podem expressar escala (daí o nome), como tamanho, volume, contagens, etc. Inteiros, números de ponto flutuante e frações são escalares. Números complexos, booleanos e seqüências de caracteres NÃO são escalares. Algo que é atômico não é necessariamente escalar e algo que é escalar não é necessariamente atômico. Os escalares podem ser nativos ou fornecidos por bibliotecas.
Alguns tipos têm classificações ímpares. Os tipos BigNumber, geralmente implementados como uma matriz de dígitos ou números inteiros, são escalares, mas tecnicamente não são atômicos. Eles podem parecer atômicos se a implementação estiver oculta e você não puder acessar os componentes internos. Mas os componentes estão apenas ocultos, então a atomicidade é uma ilusão. Eles são quase sempre fornecidos em bibliotecas, portanto não são nativos, mas poderiam ser. Na linguagem de programação do Mathematica, por exemplo, grandes números são nativos e, como não há como um programa do Mathematica os decompor em seus blocos de construção, eles também são atômicos nesse contexto, apesar do fato de serem compostos sob a capas (onde você não está mais no mundo da linguagem Mathematica).
Essas definições são independentes do idioma que está sendo usado.