La sintassi astratta è un modo per i programmatori di computer di mappare la struttura del programma che vogliono creare senza preoccuparsi del codice effettivo necessario per implementarlo. Consente al programmatore di concentrarsi su ciò che il programma deve fare prima di concentrarsi su come far sì che il computer esegua effettivamente le funzioni desiderate. La sintassi astratta delinea le attività specifiche del programma, come l’aggiunta di due numeri insieme, e mostra quali tipi di dati possono essere utilizzati all’interno di quel programma. Una volta completata la mappatura astratta, viene disegnato un albero di sintassi astratto, che abbina i concetti astratti con la sintassi concreta: i simboli effettivi che un programmatore deve digitare per eseguire il programma che sta creando.
L’idea per la sintassi astratta è di concentrarsi sui tipi di dati e sulle loro relazioni senza farsi prendere dai dettagli su come codificarli. Il codice del computer è molto diverso dal linguaggio umano e cercare di pensare in questi termini è difficile. Invece, i programmatori stilano un elenco dei passaggi che il programma deve completare e quindi utilizzano la sintassi concreta per abbinare i termini astratti ai termini del codice del computer che eseguono tali passaggi. Spesso, il programmatore includerà i tipi di dati nel suo markup astratto per mostrare con quali tipi di dati, che si tratti di numeri, lettere o decimali, il programma può funzionare. Tuttavia, in questa fase della programmazione non sono richiesti tipi di dati specifici e il programmatore può scegliere di utilizzare tipi di dati astratti, che sono puramente teorici e verranno sostituiti con tipi di dati specifici quando il programma viene scritto.
Questa sorta di idea astratta di programmazione è spesso usata nella teoria dei compilatori. I computer possono comprendere solo due valori: 1 e 0. Questo è noto come codice binario. Affinché il computer possa comprendere un programma scritto in un linguaggio di programmazione, deve compilare o tradurre le parole e le lettere in un flusso di 1 e 0. I compilatori sono complessi da creare e mappare un’idea vaga o astratta di ciò che devono fare aiuta un programmatore a pianificare un codice privo di errori.
Quando il programmatore vuole mappare la sintassi astratta alla sintassi concreta e iniziare a codificare il programma o il compilatore, crea un albero di sintassi astratto. Questo è semplicemente un elenco di tutte le istruzioni astratte che ha scritto, come “aggiungi 2 variabili”, con una linea tracciata da ciascun termine astratto alla specifica riga di codice necessaria per eseguire quell’istruzione. Il programmatore può utilizzare tutti i termini astratti che desidera, ma è più comune utilizzare termini di codice noti come “var” per variabile e “int” per intero.