Molti libri di testo sul linguaggio di programmazione C dicono che C è un linguaggio di programmazione di alto livello, ma molti dei tutor online dicono che C è anche un linguaggio di programmazione di medio livello. Perché è così?
Storicamente, tutto ciò che riassume il codice assembly è stato chiamato di alto livello. C certamente lo fa. Questa definizione è anche relativamente chiara, al contrario di quanto segue.
Nel tempo, abbiamo creato sempre più linguaggi di programmazione e inventato sempre più astrazioni e strumenti. Rispetto a, diciamo, Python, il linguaggio C è positivamente primitivo nella ricchezza semantica e nel livello di astrazione sull'hardware. Con questo in mente, molte persone trovano fuorviante chiamare C di alto livello, quando c'è una ricchezza di lingue che sono molto più alte rispetto all'hardware.
Quindi ora "alto livello" di solito significa "astratti molto sull'hardware" e "basso livello" significa "astratti poco". Questa è la definizione utilizzata dai tuoi tutor. Non tutti sono d'accordo, però, e i vecchi testi non adottano magicamente la nuova terminologia, quindi si vede ancora il vecchio uso di "alto livello" (sotto il quale C è di alto livello) fluttuante. Tieni presente che molti buoni libri C sono fondamentalmente più recenti edizioni di libri pubblicati venti anni fa.
È un linguaggio di livello superiore rispetto al codice macchina (assembly), che è il punto di vista dal quale provengono i libri di programmazione C e le esercitazioni.
A tale riguardo è un linguaggio di programmazione di alto livello.
Tuttavia, è ancora molto vicino all'hardware - molto più di altri, più moderni linguaggi (Java, C # e simili) - se visto da questo punto di vista, è un mezzo linguaggio di programmazione a livello.
Leggi altre domande sui tag programming-languages c high-level