La domanda non ha senso.
Intanto,
PERCHE' 50 cicli annidati?
non serve rispondere!
Ma, ovviamente, serve un RAGIONAMENTO per capire come mai ci sia la necessita' di annidare 50 cicli.
Esiste SICURAMENTE una soluzione alternativa, ma per trovarla serve affrontare il problema da un'altro punto di vista.
Il secondo punto e' che NON ESISTE IL MIGLIOR LINGUAGGIO DI PROGRAMMAZIONE:
ogni linguaggio e' nato/e' stato progettato, per risolvere specifiche categorie di problemi usando specifici paradigmi di programmazione.
Se e' vero che tutti i linguaggi hanno la STESSA espressivita' (TUTTI si possono usare per fare le STESSE cose), e' anche vero che alcuni sono piu' facili da usare di altri.
ORA, anche SUPPONENDO che non ci sia modo di ovviare al problema dei 50 cicli annidati (MA ESISTE CERAMENTE), entra in gioco il problema su CHE COSA si cicla, e CHE COSA viene manipolato all'interno di ogni ciclo.
Anche SUPPONENDO che il ciclo sia fatto un un indice numerico (in cui l'Assembler non ha nessunissimo problema), se, all'interno del ciclo, si manipolano strutture dati COMPLESSE, lavorare in assembler sarebbe un suicidio.
Ma non solo: nel 99.999% dei casi, il tempo impiegato dal codice che implementa il ciclo, e' (NON dovrebbe essere, se uno ha fatto le cose per bene) assolutamente infinitesimo rispetto al tempo necessario ad eseguire il PASSO del ciclo.
Infine, dopo tutta questa elucubrazione mentale, facciamo una stima:
1) cicli di 2 elementi ogn'uno, per 50 livelli, vuol dire 2^50 passi = 1.13*10^15 passi. Sono UN MILIONE DI MILIARDI di passi.
2) supponiamo un pc di fasci alta, con CPU a 4Ghz, ed un'op per ogni ciclo (4*10^9 operazioni/secondo). Servono circa 281500secodi, pari a 3 giorni e 6 ore di calcolo.
SOLO PER CICLARE!
Il che vuol dire, che per fare qualcosa di VAGAMENTE intelligente, si passa dai 6 giorni a MESI (semplicemente passando da UN CICLO di clock per operazione, a 4 CICLI di clock, si passa da UNA a QUATTRO settimane), oppure serve un bel po' di potenza di calcolo.