La risposta è sì e no.
Sì, i compilatori segnaleranno le posizioni con errori
Un compilatore memorizza una parte di dati che rappresenta il programma che hai scritto. Ricorda, un compilatore non è magico, è solo un altro programma che funziona come quello che hai scritto! Questo pezzo di dati "taggherà" le aree rilevanti del codice con le posizioni. Durante la compilazione, se il compilatore incontra un errore, è molto facile sputare fuori la posizione taggata e praticamente tutti lo fanno.
Se il tuo programma fa cose veramente pazze, come generare codice o lasciare che il compilatore deduca e generi parti del tuo programma, a volte i numeri di riga sono completamente inutili, ma sono ancora lì!
In realtà, i compilatori di solito danno molto più del semplice numero di riga. Cercano di dirti cosa è andato storto e perché è successo. Il loro successo varia molto. Un compilatore con cui ho lavorato, ad esempio, a volte barf
Error:some line: internal failure
Gli algoritmi di gestione degli errori sono stati un po 'dubbia a dir poco. La maggior parte è molto buona però.
No, non tutte le lingue ricevono il maggior controllo degli errori
In realtà questa è una specie di guerra religiosa nel mondo della programmazione. Quanto controllo dovrebbe fare il tuo compilatore? Un compilatore non può rilevare magicamente tutti gli errori, quindi in realtà ti costringe solo a seguire un gruppo di regole su cui decide. L'obiettivo è che queste regole ti limitino a scrivere programmi "buoni". Il problema è che quelle regole taglieranno sempre un sacco di programmi perfettamente ragionevoli!
Alcuni sviluppatori di software vogliono che i compilatori si interrompano e lasciano che si occupino di correggere i loro programmi. Ciò significa che è più semplice scrivere un programma legale, ma devi lavorare molto più duramente per assicurarti che sia corretto.
Alcuni sviluppatori di software vogliono che i loro compilatori controllino il più possibile. Devono lavorare molto più duramente per scrivere il programma originale in modo che segua tutte le regole del compilatore. Una volta compilato, però, non è necessario testarlo (se non del tutto) perché il compilatore ha verificato molte cose prima della mano.
Decidere dove finisce questo spettro richiede tempo. Molto tempo. Ti porta anche a sperimentare con linguaggi diversi per capire cosa vuoi da un compilatore. Molte persone cambiano idea quando passa il tempo. Tuttavia, puoi trovare professionisti praticamente in tutto lo spettro.
TLDR
Sì, tutti i compilatori ti daranno informazioni sul tuo errore. Ciò che i compilatori degli errori catturano varia molto.