Le CPU VAX disponevano di un sistema di gestione delle eccezioni basato su stack. In ogni frame di chiamata, una cella a 32 bit è stata allocata e riempita con uno zero. Se la subroutine che si chiamava voleva gestire le eccezioni, tutto quello che doveva fare era riempire quella cella con l'indirizzo della routine di gestione delle eccezioni.
Quando si è verificata un'eccezione, si è verificata una ricerca di stack. Questo è stato facile, dal momento che i telai dello stack erano tutti incatenati insieme. Il primo frame dello stack con una voce diversa da zero determinerebbe lo svolgimento di uno stack a quel punto e il gestore di eccezioni verrebbe chiamato.
Ricordo che questa era una delle caratteristiche del processore che erano indirizzate ai linguaggi di livello superiore, ma non so se esistesse un linguaggio di livello superiore che sfruttasse la funzionalità. Credo che sia stato usato dal codice della libreria, che probabilmente sarebbe stato scritto in assembler.
fonte
2009-12-14 01:28:49
In un modo un po 'riconfezionato, questo è principalmente un duplicato di http://stackoverflow.com/questions/1449951/what-language-was-the-first-to-implement-exception-handling – mjv
Grazie! Ma apprezzerei anche le risposte alle domande 3 e 4. – Frunsi
+1 per il bel post .. –