Voir par exemple ici et là. Moi j'utilise ce site surtout pour connaître la syntaxe d'utilisation d'une commande ou la liste des commandes associées à un type de variable.
Si tu vas dans le répertoire où est installé l'IDE "Arduino" pour moi, qui est sous Linux, le chemin d'accès est :
arduino-1.8.10/hardware/arduino/avr/cores/arduino
Tu trouvera une liste de fichiers qui sont des sources en C et en C++ et des fichiers d'en tête (header soit extension *.h)
C'est cet ensemble de fichiers que l'on appelle à tord le langage Arduino : ce ne sont que des bibliothèques de fonctions (fichiers C) ou de classes (fichiers cpp) qui aident à gérer le microcontrôleur en facilitant la vie de l'utilisateur.
Exemple on peut gérer directement une entrée sortie en modifiant à chaque fois le contenu de 1 à 3 registres. Selon le micro concerné il peut y avoir entre 3, 4 ou 5 groupes de registres à déterminer à partir de la datasheet. Les fonctions pinMode(), digitalWrite ou digitalRead le font très simplement pour nous.
Que fait un IDE (Environnement de Développement Intégré).
Il existe bien d'autres IDE : Eclipse, codebloks, Netbeens, etc .. de qualité professionnelle qui peuvent gérer des très gros projets à plusieurs développeurs. Avec lesquelles on peut aussi programmer avec les bibliothèques Arduino. Comme tout logiciel professionnel elles sont très complètes mais lourdes à l'usage.
Celle livrée par Arduino est allégée par rapport aux précédentes ,elle offre moins de possibilité, mais c'est ce qui la rend simple d'emploi tout en étant efficace pour les développements visés.
L'IDE ne demande strictement l'écriture que d'une fonction setup() et d'une fonction loop(). A partir de ses deux fonctions et des supplémentaires écrites par les utilisateurs, l'IDE crée un vrai code source avec une fonction main() à l'intérieur de laquelle elle place setup() et crée une boucle infinie dans laquelle elle place la fonction loop().
Elle transmet ensuite ce fichier au compilateur.
L'IDE sait retrouver toute seule tous les programmes dont elle aura besoin.
C'est ça le "plus" de l'IDE : nous simplifier le travail, mais le fichier final est un pur fichier source cpp.