Naturalmente occorrono programmi ausiliari anche per risolvere problemi piu' squisitamente tecnici:
La soluzione e' data dall'architettura di Vun Neumann: un meta-programma che stia a monte del programma vero e proprio e che dal suo punto di vista consideri il programma come dati: il sistema operativo.
Alcuni concetti:
L'esistenza di un sistema operativo che si occupa dei dettagli di I/O e di uso memoria per uno hardware dato apre una possibilita': concepire linguaggi di programmazione ad alto livello e compilatori che producono codice adatto ad un certo sistema opeativo.
Notare la conseguenze:
Si parla di 'Generazioni di Linguaggi di Programmazione' col tacito consenso che un linguaggio di, p.es., terza generazione deve per forza essere migliore di uno di seconda:
Generalmente per linguaggi di programmazione si intendono oggi quelli di III generazione. Sembra che vi siano stati tre ambienti originanti, che hanno avuto pochi successi e molti fallimenti:
Non va sottovalutata l'importanza storica del COBOL (COmmon Business Oriented Language), per il fatto che e' stato un comitato a formalizzarlo, e questo ha stabilito un precedente per la formazione di comitati, ed anche per il fatto che, grazie al supporto della IBM e degli altri produttori di Mainframe, la diffusione e' stata globale e rapida.
Viene da notare, qui come in altri casi informatici, che a volte una standardizzazione favorisce la stagnazione e la mediocrita' e pone ipoteche impensabili sul futuro (legacy systems che piu' nessuno conosce, problema dell'anno 2000, ecc.).