Concetti Chiave
- Le prime generazioni di calcolatori usavano istruzioni assembly semplici, che richiedevano conoscenze dettagliate del sistema per la programmazione.
- Negli anni '60, l'avvento dei linguaggi ad alto livello ha reso la programmazione più accessibile e comprensibile, aumentando il livello di astrazione.
- L'introduzione dei linguaggi ad alto livello ha complicato le architetture, poiché i processori dovevano gestire la traduzione dei linguaggi di programmazione.
- Per supportare la programmazione avanzata, sono stati introdotti più metodi di indirizzamento e istruzioni simili a quelle dei linguaggi ad alto livello.
- Il termine CISC (Complex Instruction Set Computer) si riferisce a processori complessi con un set di istruzioni altrettanto complesso.
Durante le prime due generazioni i calcolatori erano accessibili in programmazione solamente a livello di macchina assembly;ogni processore aveva a disposizione mediamente una decina di istruzione del tipo load ,add,jump,che operavano attraverso un paio di metodi di indirizzamento.
Ogni istruzione era implementata in logica cablata,vale a dire che per ogni istruzione esisteva un circuito in grado di risolverla. Ne deriva che che le architetture dell'epoca erano piuttosto semplici e le macchine ,compatibilmente con la tecnologia impiegata, relativamente veloci. Per contro,il lavoro dei programmatori era tutt'altro che scorrevole,sia per il fatto di dover lavorare con linguaggi piuttosto ostici sia per la precisa conoscenza del sistema richiesta a chi doveva programmare a questo livello. Questo modo di progettare le architetture comincio ad essere messo in discussione all'inizio degli anni 60 quando cioè iniziarono ad affermarsi i primi linguaggi ad alto livello. Tali linguaggi erano in grado di offrire nuove potenzialità ai programmatori,che si trovarono a poter accedere al sistema a un maggiore livello di astrazione dalla macchina fisica sfruttando un linguaggio che oltre a essere decisamente più comprensibile,si slegava a un finora indispensabile visibilità verso i livelli inferiori. Il prezzo pagato a fronte di tali vantaggi fu un inevitabile appesantimento delle architetture ,le quali dovevano ora farsi carico anche dei processi di traduzione dei linguaggi di programmazione di istruzioni e di metodi di indirizzamento era ora una grassa limitazione: per tradurre costrutti come il case in sequenze di confronti e jump,o per realizzare le funzioni più complicate era indispensabile programmare compilatori estremante complessi.
Ecco dunque che inizio a delinearsi la tendenza ad aumentare le funzionalità del livello assemblativo,incrementando notevolmente il numero di istruzioni sopportabili e il numero di metodi di indirizzamento,e a rendere le istruzioni più simili a quelle ad altro livello. Questo approccio e noto come CISC(Complex Instruction Set Computer),per indicare la realizzazione di processori complessi con un set di istruzioni a sua volta complesso.
Domande da interrogazione
- Quali erano le limitazioni dei primi calcolatori in termini di programmazione?
- Come hanno influenzato i linguaggi ad alto livello lo sviluppo delle architetture dei calcolatori?
- Cosa caratterizza l'approccio CISC nelle architetture dei processori?
I primi calcolatori erano programmabili solo a livello di macchina assembly, con un numero limitato di istruzioni e metodi di indirizzamento, rendendo il lavoro dei programmatori complesso e richiedendo una conoscenza approfondita del sistema.
I linguaggi ad alto livello hanno permesso ai programmatori di lavorare a un livello di astrazione maggiore, rendendo le architetture più complesse per gestire la traduzione dei linguaggi di programmazione, ma facilitando la comprensione e l'accesso al sistema.
L'approccio CISC si caratterizza per l'aumento delle funzionalità a livello assemblativo, incrementando il numero di istruzioni e metodi di indirizzamento, rendendo le istruzioni più simili a quelle dei linguaggi ad alto livello, e creando processori complessi con set di istruzioni complessi.